如何通过Graph API创建Azure AD组并将服务主体(SP)设为所有者
两次操作失败的原因
- 第一次403权限不足报错:
Group.Create权限仅支持创建无额外所有者配置的基础AAD组,不包含创建组时同步添加所有者的操作权限,因此触发权限校验失败。 - 第二次404资源不存在报错:你在
owners@odata.bind配置中错误使用了/users/<ID>的路径前缀,你要添加的所有者是服务主体,不属于用户资源集,正确的资源路径前缀应为/servicePrincipals/<ID>,路径匹配不到对应资源才会报资源不存在。
权限要求说明
创建组时指定所有者不是必须配置Group.ReadWrite.All,以下两种应用权限组合(均需要管理员同意)都可以满足需求:
Group.Create+Directory.ReadWrite.All- 直接配置
Group.ReadWrite.All
所有者ID选择要求
需要使用Enterprise App(企业应用)对应的对象ID,也就是服务主体的对象ID,不要使用App Registration(应用注册)页面展示的对象ID。
修改后的代码参考:
client.api("/groups").post({ displayName: "aad-mgmt-group", mailEnabled: false, mailNickname: "aad-mgmt-group", securityEnabled: true, "owners@odata.bind": [ "https://graph.microsoft.com/v1.0/servicePrincipals/<你的企业应用对象ID>" ] }).then((x) => console.log(x))
内容的提问来源于stack exchange,提问作者Gerrit
相关产品推荐
相关产品推荐

