【发布时间】:2020-02-24 16:41:09
【问题描述】:
上下文
我们在 Azure 上使用多个目录(TENANT_A、TENANT_B)。目标是在 TENANT_A 内创建一个服务主体(应用程序)_SP_APP,授予对 TENANT_B 的访问权限。我们想在脚本中使用这个服务主体来轻松管理这两个目录。 其中一个脚本是在 TENANT_B 内进行新的应用程序注册,并为这些应用程序授予 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 文档中没有找到任何响应)。
谢谢
【问题讨论】:
标签: azure azure-active-directory azure-cli