如何设置应用主体为所有者以使用Application.ReadWrite.OwnedBy管理其他应用密钥
操作说明
你没有遗漏操作步骤,目前Azure Portal的应用注册所有者管理界面仅支持添加用户主体作为所有者,不支持直接添加服务主体(应用主体),需要通过PowerShell或者Microsoft Graph API完成配置,具体操作方法如下:
方法1:使用Microsoft Graph PowerShell模块操作
- 以管理员身份打开PowerShell终端,安装Graph PowerShell模块:
Install-Module Microsoft.Graph -Scope CurrentUser - 连接Microsoft Graph,操作账号需要持有Application.ReadWrite.All或Directory.ReadWrite.All权限:
Connect-MgGraph -Scopes "Application.ReadWrite.All" - 获取应用A对应的服务主体对象ID(注意此处取企业应用列表内的服务主体ID,而非应用注册页的客户端ID):
$appA_SP = Get-MgServicePrincipal -Filter "displayName eq '替换为应用A的显示名称'" - 获取应用B的应用注册对象ID:
$appB = Get-MgApplication -Filter "displayName eq '替换为应用B的显示名称'" - 执行添加所有者操作:
New-MgApplicationOwnerByRef -ApplicationId $appB.Id -BodyParameter @{"@odata.id" = "https://graph.microsoft.com/v1.0/directoryObjects/$($appA_SP.Id)"} - 验证配置是否生效:
Get-MgApplicationOwner -ApplicationId $appB.Id,返回结果包含应用A的主体信息即为配置成功。
方法2:调用Microsoft Graph API操作
- 调用接口地址:
POST https://graph.microsoft.com/v1.0/applications/{替换为应用B的对象ID}/owners/$ref - 请求头需携带授权凭证:
Authorization: Bearer {替换为持有Application.ReadWrite.All权限的访问令牌} - 请求体内容:
{ "@odata.id": "https://graph.microsoft.com/v1.0/directoryObjects/{替换为应用A的服务主体对象ID}" }
- 接口返回204状态码即为添加成功。
注意:配置完成后请确认已为应用A授予Application.ReadWrite.OwnedBy的应用程序类型权限,且完成管理员同意操作,之后应用A即可正常管理应用B的客户端密钥、凭据等配置。
内容的提问来源于stack exchange,提问作者Zefferno
相关产品推荐
相关产品推荐

