У меня есть регистрация приложения в Azure со следующими настроенными разрешениями:
Из моего приложения я запускаю поток oauth с следующий URL (отредактированные параметры с XXXXXXX):
https://login.microsoftonline.com/common/oauth2/authorize
?client_id=XXXXXXX
&grant_type=client_credentials
&redirect_uri=XXXXXXX
&resource=https%3A%2F%2Foutlook.office365.com
&response_type=code&scope=openid+email+profile+full_access_as_app
&state=XXXXXXX
Мой пользователь дважды получает один и тот же экран согласия (обратите внимание на разные URL):
, а затем:
Затем они перенаправляются на redirect_url
.
В обратном вызове большинство я получаю:
access_denied | AADSTS650051: Claim is invalid: User.Read does not exist in client application's RequiredResourceAccess.
И приложение не добавляется в список авторизованных приложений для пользователя в Azure Portal.
Однако иногда поток работает.
Что, по-видимому, является важной частью манифеста приложения:
"oauth2Permissions": [
{
"adminConsentDescription": "Allow the application to access XXXXXX on behalf of the signed-in user.",
"adminConsentDisplayName": "Access XXXXXX",
"id": "XXXXXX",
"isEnabled": true,
"lang": null,
"origin": "Application",
"type": "User",
"userConsentDescription": "Allow the application to access XXXXXX on your behalf.",
"userConsentDisplayName": "Access XXXXXX",
"value": "user_impersonation"
}
],
Вопросы:
- Почему они дважды получают один и тот же диалог согласия? Могу ли я избежать этого?
- Есть идеи, что может быть не так с моей установкой, и поток работает недетерминированно?