Microsoft Graph API-AADSTS90094: для предоставления требуется разрешение администратора
я создал приложение в https://apps.dev.microsoft.com
(Платформах: Web)
это приложение требует согласия администратора для определенных разрешений. Я помню, в прошлом, доступ https://login.microsoftonline.com/{tenant name}/adminconsent?client_id={application id}&state={some state data}&redirect_uri={redirect uri}
с учетной записью администратора, чтобы дать разрешение на доступ к ресурсам в нашей организации, которые может предоставить только администратор. Оттуда пользователи должны были дать согласие на уровне пользователя, чтобы использовать приложение.
теперь я могу успешно войти в систему с учетной записью администратора, и приложение работает так, как ожидалось Но я все равно получаю приглашение для пользователей со следующим сообщением:
You can't access this application
APP NAME needs permission to access resources in your organization that only an admin can grant. Please ask an admin to grant permission to this app before you can use it.
Have an admin account? Sign in with that account
Return to the application without granting consent
сообщение об ошибке: AADSTS90094: The grant requires admin permission.
который, похоже, нигде не документирован..
если я нажму на Have an admin account? Sign in with that account
и войдите в систему с учетной записью администратора, она работает, но с учетной записи обычного пользователя, я получаю выше сообщение снова.
EDIT:
Поэтому я сократил разрешения до минимума.
Области в моем приложении теперь:openid
, profile
, user.read
И разрешения Microsoft Graph теперь, для Делегированные Разрешения: Mail.Send
, User.Read
. Ничего Разрешения Приложений и я все еще получаю вышеуказанное сообщение для обычных пользователей!
У кого-нибудь из Microsoft есть информация об ошибке AADSTS90094 код?
3 ответов
OK, поэтому я обратился в службу поддержки Microsoft для этого, так как на эту дату нет информации об этом сообщении об ошибке.
короче говоря, Microsoft внесла некоторые последние изменения в отношении разрешений. В прошлом, если ваше приложение требует каких-либо openid
, profile
или offline_access
, вы можете просто разместить их в своем приложении в качестве областей, они не были доступны на https://apps.dev.microsoft.com
. Администратор дала бы согласие и ваше приложение будет функционировать должным образом.
что вы должен теперь сделать это зеркала области вашего приложения с разрешениями, которые у вас есть на https://apps.dev.microsoft.com
иначе вы будете продолжать получать это сообщение об ошибке, поэтому убедитесь, что у вас есть то же самое с обеих сторон, особенно если вы привыкли к старому поведению.
эти три области / разрешения (openid
, profile
и offline_access
) теперь можно выбрать для вашего приложения на портале dev.
конечная точка согласия администратора не помогает в динамической области и сценарии динамического согласия .
использование конечной точки согласия администратора предоставит разрешения, зарегистрированные на портале регистрации приложений . Можно найти раздел Разрешения Microsoft Graph, а затем добавить разрешения, необходимые приложению. После получения согласия администратора с помощью конечной точки согласия администратора приложение может собирать разрешения для всех пользователей в арендаторе, включая области с ограничениями администратора .
Я использую MSAL
и 2.0
конечная точка (логин.Microsoft...), Я разрабатываю Multi-Tenant
приложение.
моя организация имеет 2 жильцов
один из них, по сути, наш Dev
экземпляр (и у меня есть права администратора). Я зарегистрировал свое приложение в Tenant
что у меня нет прав администратора и выполнено согласие администратора для указанного приложения в арендаторе, где я могу выполнить согласие сам. Мои пользователи могут успешно войти в систему и получить согласие на ресурсы им нужно.
однако, когда я создал регистрацию приложения (все конвергентные приложения на apps.dev.mic
) из учетной записи, где у меня есть глобальные права администратора, логин для моих пользователей получает AADSTS90094 Error
.
единственный способ, которым я пришел, чтобы "решить" эту ошибку,
при первоначальном входе в приложение область будет openid
пользователь затем соглашается на это, когда это будет завершено, я должен сделать еще один вход в систему с областью, определенной для приложения и всего завод. Очевидно, что UX
шаткий, мягко говоря.