【发布时间】: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 绑定到我的服务主体。要了解我需要授予的权限,我正在关注此页面:
使用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