Я работаю над веб-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/…