Я работаю над веб-API .net, реагирую на проекты приложений и зарегистрирован в другом клиенте Azure; Azure Active Directory B2C (ADB2C)
Tenant A:
Проект веб-API
Tenant B:
Клиентское приложение React1 (для этого необходимо использовать API от Тенанта А)
Tenant C:
Клиентское приложение React2 (для этого необходимо использовать API от Тенанта А)
Я не могу видеть API в Tenant B/C с разрешением API и застрял здесь..
В Tenant A
: у меня scope
https://MyMachine.onmicrosoft.com/api/xxx/Core.API.All
а затем под Арендатором А; Разрешение API -> Я добавил «Разрешение приложения» для API.
In Manifest
я вижу
"signInAudience": "AzureADMultipleOrgs",
У меня такой же owner
у всех жильцов
что еще мне нужно сделать, чтобы API от арендатора A был доступен для арендаторов B и C
я создал URL-адрес согласия, который просит меня авторизоваться, но я все еще не могу видеть Core.API.All в клиенте B/C с разрешением API
https://login.microsoftonline.com/{TenantA TenantID}/adminconsent?client_id = {TenantB : ClientID}&redirect_uri=http://localhost:3000/auth-callback
Подробные инструкции по сценариям мультитенантного доступа к API см. в официальной документации Azure AD B2C: Learn.microsoft.com/en-us/azure/active-directory-b2c
В B2C TenantA
я создал мультитенантное приложение, предоставил API и добавил область видимости:
Предоставленные разрешения API:
Чтобы получить это TenantA
как корпоративное приложение в TenantB
, выполните приведенную ниже команду и войдите в систему с пользователем TenantB
:
https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?client_id=TenantAWebProjecttAppID&response_type=code&redirect_uri=https://jwt.ms&response_mode=fragment&scope=https://b2caadtenant.onmicrosoft.com/xxx/Core.API.All&state=12345
Приложение Enterprise будет создано в TenantB
. Чтобы предоставить разрешения API корпоративному приложению в TenantB
, выполните приведенную ниже команду и войдите в систему TenantB
пользователя:
https://login.microsoftonline.com/organizations/adminconsent?client_id=TenantAWebProjecttAppID
В TenantB
приложению Enterprise теперь предоставлены разрешения:
Теперь создайте приложение в TenantB
и добавьте разрешение API TenantAWebProjectt
, как показано ниже:
Теперь клиентское приложение TenantB
сможет использовать API-интерфейсы TenantA
и делать то же самое с TenantC
.
спасибо за подробный ответ .. я пробую это, так как получаю другую ошибку, которую пытаюсь разобраться
появляется ошибка после ввода URL-адреса согласия. Войдите. Извините, но у нас возникли проблемы со входом в систему. xxDSTS500xxx: субъект ресурса с именем MyMachine.onmicrosoft.com/api не найден в клиенте с именем Mymachine.onmicrosoft.com. Это может произойти, если приложение не было установлено администратором клиента или не было получено согласие какого-либо пользователя в клиенте. Возможно, вы отправили запрос на аутентификацию не тому клиенту.
Приложение Enterprise создано в TenantB?
У меня есть вопрос по обновлению с изображением разрешения API арендатора, который содержит зарегистрированное приложение веб-API
Для какого URL-адреса вы получаете эту ошибку?
У арендатора A есть проект веб-API. У арендатора B зарегистрировано клиентское приложение. Не уверен, что вы имеете в виду, когда говорите, что корпоративное приложение создано в TenantB? да, приложение зарегистрировано
@K.Z вам необходимо создать корпоративное приложение приложения tenantA в TenantB, для этого вам необходимо создать URL-адрес авторизации и войти в систему с пользователем TenantB, а также создать URL-адрес согласия администратора. Проверьте мой ответ, это третье изображение
Давайте продолжим обсуждение в чате.
мне удалось отсортировать согласно вашим рекомендациям
Проверьте это Learn.microsoft.com/en-us/answers/questions/25329/…