Контекст
Мы используем несколько каталогов ( TENANT_A , TENANT_B ) в Azure. Цель состоит в том, чтобы создать субъект-службу (Приложение), _SP_APP , внутри TENANT_A , которому предоставляется доступ к TENANT_B . Мы хотим использовать этого участника службы в скрипте, чтобы легко управлять обоими каталогами. Один из сценариев заключается в создании новой регистрации приложения внутри TENANT_B AND и предоставлении ADMIN CONSENT для этих приложений.
Что сделано
_SP_APP
- Глобальный администратор в обоих каталогах
- Предоставлен доступ к TENANT_B (Доступен в корпоративном приложении)
- Разрешения API предоставлены Согласие администратора ( TENANT_A и TENANT_B )
- Microsoft Graph (делегированный и полный доступ к приложению)
- Azure Active Directory Graph (делегированный и полный доступ к приложению)
Шаги
Работает правильно
# Login with service principal of multiple tenants application
az login --service-principal -u _SP_APP -p <PASSWORD> --tenant TENANT_B
# Creating application and fetching ID
_OBJECT_ID=`az ad app create ...`
Не работает
# Granting Admin Consent
az ad app permission admin-consent --id $_OBJECT_ID
# ERROR
Bad Request({"ClassName":"Microsoft.Portal.Framework.Exceptions.ClientException","Message":"AADSTS50058: A silent sign-in request was sent but no user is signed in.\r\nTrace ID: 9c9bd004-a97a-4543-8ff0-e314de77a700\r\nCorrelation ID: 44c79409-2f3e-43de-a84b-1e5a42e382e7\r\nTimestamp: 2019-10-28 15:54:20Z" ...
Что странно, когда мы az login
с глобальным пользователем-администратором и запустите сценарий, он работает нормально.
Вопрос
Мы что-то упустили, чтобы дать возможность этому принципалу службы предоставлять согласие администратора или это только что-то "пользователь "может сделать? (Я не нашел ответа в документации Microsoft Azure).
Спасибо