Многопользовательский API - ОШИБКА согласия администратора https://login.microsoftonline.com/organizations/v2.0/adminconsent AADSTS90009

Используя следующую конечную точку, действующую в качестве администратора на tenantB, я хочу зарегистрировать многопользовательское приложение API, определенное в другом tenantA:

https://login.microsoftonline.com/{tenantB}/v2.0/adminconsent?
client_id={GUIDAppIDInTenantA}
&redirect_uri=http://localhost:8080/myredirecturi
&scope=api://{GUIDAppIDInTenantA}/.default

Я получаю эту ошибку:

AADSTS90009 Приложение запрашивает токен для себя. Этот сценарий поддерживается, только если ресурс указан с помощью идентификатора приложения на основе GUID.

Я использую идентификатор приложения на основе GUID от TenantA. Я получаю страницу входа, и после входа в систему я сразу же перенаправляюсь на redirect_uri с указанной выше ошибкой.

Сообщение OAuth 2.0 и Azure Active Directory - ошибка AADSTS90009 использует другую конечную точку и упоминает об использовании GUID, которые я уже использую


person iamnicoj    schedule 15.10.2020    source источник


Ответы (2)


Заменять

&scope=api://{GUIDAppIDInTenantA}/.default

с участием

&scope={GUIDAppIDInTenantA}/.default

person Alfredo R    schedule 15.10.2020
comment
Следуя вашему совету, я получаю эту ошибку: приложению требуется доступ к службе (многопользовательское приложение AppID), на которую ваша организация {tenantB} не подписана или не активирована. Обратитесь к своему ИТ-администратору, чтобы проверить конфигурацию ваших подписок на услуги. Я являюсь администратором в TenantB, использую конечную точку adminconsent. Приложение настроено как мультиарендное с помощью signInAudience: AzureADMultipleOrgs, что еще нужно настроить? - person iamnicoj; 15.10.2020
comment
Попробуйте подготовить приложение MT в клиенте b: New-AzureADServicePrincipal -AppId <tenant a app id> - person Alfredo R; 15.10.2020
comment
У меня была еще одна открытая проблема, так как подход PowerShell у меня не работает - person iamnicoj; 16.10.2020

Сначала добавьте область «профиль openid», как это
https://login.microsoftonline.com/secondTenandID/v2.0/adminconsent?client_id={APP_IP}&redirect_uri={redirect_URI}&scope=openid+profile

Это зарегистрирует приложение (и будет доверять основному арендатору)

Во-вторых, отправьте еще один запрос с фактической областью действия Multitenant API, используя этот формат.

 https://login.microsoftonline.com/secondTenandID/v2.0/adminconsent?client_id={APP_IP}&redirect_uri={redirect_URI}&scope={APP ID}/.default

таким образом приложение будет зарегистрировано со всем объемом разрешений от основного арендатора во вторичном арендаторе.

person iamnicoj    schedule 15.10.2020