【问题标题】:Create Azure AD group with Group.Create Permission使用 Group.Create 权限创建 Azure AD 组
【发布时间】:2021-02-15 05:30:40
【问题描述】:

我正在尝试使用服务主体通过 Graph API 创建 Azure AD 组。目的是服务主体将在 Pipelines 运行中创建组。

我用来尝试创建组的调用是

az rest --method post \
  --uri 'https://graph.microsoft.com/v1.0/groups' \
  --body '{"description": "A description", "displayName": "MyAppGroup", "mailEnabled": false, "mailNickname": "test", "securityEnabled": true, "owners@odata.bind": ["https://graph.microsoft.com/v1.0/users/oooooooo-oooo-oooo-oooo-oooooooooooo"]}' \
  --headers "Content-Type=application/json"

为了绘制权限,我已将 API 权限 Group.Create 绑定到我的服务主体。要了解我需要授予的权限,我正在关注此页面:

https://docs.microsoft.com/en-us/graph/api/group-post-groups?view=graph-rest-1.0&tabs=http#permissions

使用Group.Create 权限,当我对上面的 Graph API 运行其余调用时,我收到以下权限错误

Forbidden({
  "error": {
    "code": "Authorization_RequestDenied",
    "message": "Insufficient privileges to complete the operation.",
    "innerError": {
      "date": "2020-11-02T13:31:35",
      "request-id": "...",
      "client-request-id": "..."
    }
  }
})

我完全明白,如果我要添加 Directory.ReadWrite.All,我可以创建组并拥有所有必需的权限。但是,此权限范围过大,将允许我的服务主体禁用 Active Directory 租户中的用户 - 我的组织现在将允许这样做。因此,我无法授予我的服务主体此权限。

我上面链接的文档向我暗示Group.Create 是允许服务主体创建组的足够权限。

我的问题是我做错了什么,或者我缺少什么权限才能创建群组? Directory.ReadWrite.All 显然超出了简单创建 AD 安全组的范围,因此使用它不是我的选择。

【问题讨论】:

    标签: azure active-directory azure-active-directory


    【解决方案1】:

    希望这对其他人有所帮助 - 我在发布此内容后立即意识到了答案。

    我已经添加了属性

    "owners@odata.bind": ["https://graph.microsoft.com/v1.0/users/oooooooo-oooo-oooo-oooo-oooooooooooo"]
    

    json 发布数据。

    删除此属性后,我可以仅使用 Group.Create 权限创建组。

    添加权限User.Read.All 允许服务主体读取所有者的用户数据,因此足以创建具有任何必要所有者的组。

    添加此 API 权限后,我的服务主体能够按预期创建组(与所有者)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 2021-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多