Вызовы защищенного веб-API Azure AD завершились неудачно с ошибкой согласия

У меня есть приложение (WebApp), которое вызывает внешний API (WebApi1), а WebApi1 вызывает другой внешний Api WebApi2.

Я дал разрешение на приложение для WebApi1 из WebApp. Аналогично разрешение на приложение для WebApi2 из WebApi1.

Я получил страницу согласия для WebApi1 и принял ее, она отлично работает для WebApi1. Но когда я пытался вызвать WebApi2 от имени пользователя из WebApi1, он выдает ошибку страницы согласия.

AADSTS65001: пользователь или администратор не дали согласия на использование приложения с идентификатором.


person malay mandal    schedule 21.12.2016    source источник
comment
Чтобы подтвердить, интегрируете ли вы AAD в свои приложения веб-API в свою собственную логику кода? Или конфиг в портале? И пробовали ли вы настроить knownClientApplications в манифесте приложения AAD, как указано в docs.microsoft.com/en-us/azure/active-directory/   -  person Gary Liu    schedule 22.12.2016
comment
Я пробовал использовать KnownClientApplications, но все еще проблема с блогом кода. Спасибо, Гэри, я пробовал использовать KnownClientApplications в манифесте. Когда я попробовал блог с приведенным ниже кодом, он выдал это исключение - AuthenticationContext authContext = new AuthenticationContext (author); var result = authContext.AcquireTokenAsync (webApi2ResourceId, clientCred, userAssertion) .Result;   -  person malay mandal    schedule 22.12.2016
comment
Кроме того, все приложения Azure являются одним клиентом.   -  person malay mandal    schedule 22.12.2016
comment
Вы устранили эту проблему?   -  person Fei Xue - MSFT    schedule 29.12.2016
comment
Не исправлено, один и тот же код работал на одной машине, но на моей и некоторых других. не уверен, что пошло не так!   -  person malay mandal    schedule 29.12.2016
comment
Полезно ли добавлять prompt=consent к запросу на вход в веб-приложение?   -  person Fei Xue - MSFT    schedule 09.01.2017


Ответы (1)


Если вы регистрируете приложение на портале Azure, нет необходимости настраивать knownClientApplications, поскольку он уже дает согласие когда мы регистрируем приложение.

И если вы регистрируетесь с другого портала, после настройки KnownClientApplications вам необходимо снова предоставить разрешение на использование параметра prompt=consent. В это время веб-приложение также потребует от вас согласия веб-api2. После того, как вы дадите согласие, проблема должна быть исправлена.

person Fei Xue - MSFT    schedule 23.12.2016