gpt4 book ai didi

azure - 服务主体(Azure 应用程序 Multi-Tenancy )是否可以使用 AZ CLI 向租户中的应用程序授予管理员同意?

转载 作者:行者123 更新时间:2023-12-02 03:29:20 25 4
gpt4 key购买 nike

上下文

我们在 Azure 上使用多个目录(TENANT_ATENANT_B)。目标是在 TENANT_A 内创建一个服务主体(应用程序)_SP_APP,并授予其访问 TENANT_B 的权限。我们希望在脚本中使用此服务主体来轻松管理这两个目录。其中一个脚本是在 TENANT_B 内进行新的应用程序注册,并为这些应用程序授予管理员同意

做了什么

_SP_APP

  • 两个目录的全局管理员
  • 授予对 TENANT_B 的访问权限(在企业应用程序中可见)
  • Api 权限已获得管理员同意(TENANT_ATENANT_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登录并执行脚本时,它工作正常。

问题

我们是否错过了一些东西来允许该服务主体能够授予管理员同意,或者这是只有“用户”才能做的事情? (我在microsoft azure文档中没有找到任何回应)。

谢谢

最佳答案

我已与 Azure 支持工程师确认。我们不能使用服务主体来授予管理员同意。

如果必须使用服务主体来执行此操作,则可以使用 Microsoft Graph api。它会自动同意权限。

POST https://graph.microsoft.com/beta/xx.onmicrosoft.com/oauth2PermissionGrants

{
"clientId": "clientId-value",
"consentType": "consentType-value",
"expiryTime": "2016-10-19T10:37:00Z",
"id": "id-value",
"principalId": "principalId-value",
"resourceId": "resourceId-value"
}

调用此api,需要提供访问 token ,引用this document了解更多详情。

关于azure - 服务主体(Azure 应用程序 Multi-Tenancy )是否可以使用 AZ CLI 向租户中的应用程序授予管理员同意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58607463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com