Azure应用开发者角色用户如何通过API设置企业应用所有者
问题根因
- 权限不足:应用开发者 内置角色默认仅支持管理你本人创建的应用注册、企业应用(服务主体),没有租户全量企业应用的所有者修改权限。Graph API针对该场景会返回204成功状态码,但实际会静默拒绝权限不足的操作,不会抛出明确错误提示。
- 调用对象错误:企业应用对应的Azure AD资源是服务主体(Service Principal),如果你调用的是应用注册对象的所有者更新接口
/applications/{id}/owners/$ref,而非服务主体的所有者更新接口,也会出现请求返回成功但企业应用侧无变更的情况。
解决方案
可申请租户管理员授权的场景
- 向租户全局管理员、应用管理员申请以下任一权限即可实现批量更新所有企业应用所有者:
- 授予内置应用管理员或云应用管理员角色,两个角色均具备租户内所有应用相关资源的全量管理权限
- 为你调用Graph API使用的身份(用户账号或服务主体)授予
Application.ReadWrite.All或Directory.ReadWrite.All的Graph API权限,应用类权限需要管理员完成同意操作
- 操作完成后再调用对应接口即可实际生效。
无法申请租户级权限的场景
- 你仅能针对自己创建的企业应用执行所有者添加操作,可先调用
GET /servicePrincipals接口过滤你为创建者的服务主体列表,再针对这批资源调用所有者添加接口即可。
正确调用示例
调用POST请求到https://graph.microsoft.com/v1.0/servicePrincipals/{企业应用服务主体ID}/owners/$ref,请求体格式如下:
{ "@odata.id": "https://graph.microsoft.com/v1.0/users/{你的用户对象ID}" }
如果使用用户委托权限调用,需要确保权限范围包含Directory.AccessAsUser.All或Application.ReadWrite.All。
内容的提问来源于stack exchange,提问作者hashim vayalar
相关产品推荐
相关产品推荐

