Azure active directory Can';t使用所有者服务原则在管道中创建角色分配

Azure active directory Can';t使用所有者服务原则在管道中创建角色分配,azure-active-directory,azure-ad-graph-api,service-principal,Azure Active Directory,Azure Ad Graph Api,Service Principal,我有一个构建管道,它部署了一些ARM模板。其中一些资源需要为RBAC分配角色 管道用于连接到订阅的服务原则是所有者,但如果模板尝试创建角色分配资源,或者我尝试在管道中运行az cli来创建分配,则权限不足 需要所有者以上的哪些权限才能允许此操作 我想你误解了全局管理员和所有者。全局管理员是Azure广告中的一个,而所有者是订阅中的一个。它们是不同的东西 当您使用下面类似的azure cli创建角色分配时,它会将服务主体joydestsp作为所有者添加到存储帐户中。您登录的服务主体需要调用AAD图

我有一个构建管道,它部署了一些ARM模板。其中一些资源需要为RBAC分配角色

管道用于连接到订阅的服务原则是所有者,但如果模板尝试创建角色分配资源,或者我尝试在管道中运行az cli来创建分配,则权限不足


需要所有者以上的哪些权限才能允许此操作

我想你误解了
全局管理员和
所有者。
全局管理员
是Azure广告中的一个,而
所有者
是订阅中的一个。它们是不同的东西

当您使用下面类似的azure cli创建角色分配时,它会将服务主体
joydestsp
作为
所有者添加到存储帐户中。您登录的服务主体需要调用AAD图以首先获取对象,然后调用azure mangement rest api将其添加到存储帐户

az role assignment create --assignee 'joytestsp' --role 'Owner' --scope '/subscriptions/xxxxxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/joyfunction'
因此,要解决此问题,您可以导航到门户中的
Azure Active Directory
角色和管理员
->单击
全局管理员
->
添加分配
->添加用于以
全局管理员
身份登录的服务主体。那么它应该会起作用


除了,如果不想将
全局管理员
交给服务主体,还可以在命令中指定服务主体/用户的
对象id
,那么它也可以工作

az role assignment create --assignee 'b4d3c922-xxxxxxx-3ab785333011' --role 'Owner' --scope '/subscriptions/xxxxxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/joyfunction'

服务原则是,您的登录可能没有权限,您可以检查,您也可以尝试以全局管理员身份登录以执行assignmentNope。服务主体是订阅的所有者-全局管理员。有关于此问题的更新吗?