API сведений об использовании Azure отображает сообщение «Ошибка аутентификации» после входа в систему с помощью активного подключения Azure v1 - PullRequest
1 голос
/ 26 июня 2019

Я полностью перешел по этой ссылке https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-authentication?view=azure-bot-service-4.0&tabs=aadv1%2Ccsharp%2Cbot-oauth, создал регистрацию приложения Azure AD и использовал Azure Active Directory v1 для своего бота веб-приложения.

После входа я просматриваю токен, но с этим токеном я не могу получить доступ к API Azure, как показано в ответе Почтальона ниже:

{
"error": {
    "code": "AuthenticationFailed",
    "message": "Authentication failed."
}

Я вызвал API Azure ниже:

https://management.azure.com/subscriptions/${subscriptionId}/providers/Microsoft.Consumption/usageDetailsapi-version=2018-10-01

При регистрации моего приложения в Azure AD я дал эти разрешения на доступ к API Azure:

enter image description here

enter image description here

В моем боте веб-приложения -> Настройки -> Настройки подключения OAuth я выбираю:

ClientId -> My application client id
ClinetSecret -> My application client secret 
GrantType -> I does not know what to give so I just typed "authorization_code" (If this wrong then Where I need to find my grantType) 
LoginURL -> https://login.microsoftonline.com 
TenantId -> common (To allow any user) 
ResourceURL -> https://graph.microsoft.com/ 
Scopes -> I just left blank

Почему я не могу получить доступ к API Azure с этим токеном?

Любая помощь. Спасибо

1 Ответ

1 голос
/ 26 июня 2019

Токен доступа, выданный Azure AD, всегда будет для определенного ресурса. Для какой службы предназначен токен, указывается в «аудитории» токена (в заявке aud). При использовании конечной точки v1 ресурс, для которого приложение запрашивает токен доступа, указывается в параметре resource запроса авторизации. В конечной точке v2 ресурс определяется как часть параметра scope.

В вашем случае ресурс, для которого вы настроили своего бота, - это Microsoft Graph (https://graph.microsoft.com), но затем вы пытаетесь использовать полученный токен для вызова API управления Azure. Первое, что делает API управления Azure, - это проверяет, действительно ли полученный им токен доступа предназначен для него. Если аудитория не совпадает, она немедленно ответит ошибкой.

Вместо того, чтобы пытаться получить токен для Microsoft Graph, вам нужно настроить своего бота на получение токена для API управления Azure. Вам следует использовать https://management.azure.com, который является URI ресурса для API управления Azure, вместо https://graph.microsoft.com, который является URI ресурса для Microsoft Graph.

...