如何通过REST API/az CLI/PowerShell添加AAD企业应用所有者
为企业应用添加所有者的实现方式
企业应用(Enterprise Application)在Azure AD中对应的对象类型为servicePrincipal(服务主体),和你之前操作的应用注册(application对象)是相互独立的Azure AD资源,添加所有者需针对服务主体对象执行。
注意:应用注册的Object ID和其对应企业应用(服务主体)的Object ID是两个不同的值,操作时需从企业应用的概览页复制对应服务主体的Object ID,不要误用应用注册的Object ID。
以下是三种常用实现方式:
PowerShell 方式
如果你使用旧版AzureAD模块,直接调用服务主体对应的所有者添加命令即可,和你之前使用的应用注册加所有者命令逻辑一致:
Add-AzureADServicePrincipalOwner -ObjectId "企业应用对应的服务主体Object ID" -RefObjectId "待添加用户的Object ID"
如果你使用已正式替代AzureAD模块的Microsoft Graph PowerShell模块,可使用以下命令,执行前需确保已通过Connect-MgGraph -Scopes "Application.ReadWrite.All"完成授权:
$spObjectId = "企业应用对应的服务主体Object ID" $userId = "待添加用户的Object ID" $ownerRef = @{ "@odata.id" = "https://graph.microsoft.com/v1.0/directoryObjects/$userId" } New-MgServicePrincipalOwnerByRef -ServicePrincipalId $spObjectId -BodyParameter $ownerRef
Azure CLI 方式
使用az ad sp系列命令即可完成操作,--id参数既支持传入服务主体的Object ID,也支持传入关联应用注册的客户端ID(Application ID),CLI会自动匹配对应的企业应用:
az ad sp owner add --id "企业应用服务主体Object ID/应用客户端ID" --owner-object-id "待添加用户的Object ID"
REST API 方式
调用Microsoft Graph v1.0版本接口即可,接口需要Application.ReadWrite.All或Directory.ReadWrite.All权限:
POST https://graph.microsoft.com/v1.0/servicePrincipals/{替换为企业应用服务主体Object ID}/owners/$ref Content-Type: application/json { "@odata.id": "https://graph.microsoft.com/v1.0/directoryObjects/{替换为待添加用户的Object ID}" }
内容的提问来源于stack exchange,提问作者michasaucer
相关产品推荐
相关产品推荐

