如何为Azure应用配置权限,使其可通过Microsoft Graph API增删AD组成员
为Azure应用配置Microsoft Graph特定AD组成员管理权限
1. 注册Azure AD应用
- 登录Azure门户,进入「Azure Active Directory」→「应用注册」→点击「新注册」
- 填写应用名称,选择账户类型(推荐「仅限此组织目录中的账户」),完成注册后记录客户端ID和租户ID
2. 添加Microsoft Graph应用权限
- 在已注册的应用详情页,进入「API权限」→「添加权限」→选择「Microsoft Graph」→切换到「应用权限」
- 搜索并勾选
GroupMember.ReadWrite.All权限,点击「添加权限」 - 点击「授予管理员同意」(需全局管理员或权限管理员权限完成此操作)
3. 限定权限到特定AD组
默认权限会允许应用操作所有组,需通过条件规则限定范围:
- 回到Azure AD主页,进入「企业应用」→找到你的注册应用→「权限」→「权限范围」
- 点击「添加权限范围」,选择「Microsoft Graph」,目标资源选你的应用
- 权限下拉框选
GroupMember.ReadWrite.All,点击「添加条件」 - 设置条件规则:「组」→「等于」→选择需要授权的特定AD组(支持多选)
- 保存配置,此时应用仅能对选定组执行成员增删操作
4. 配置身份验证凭据
应用调用Graph API需身份凭据,二选一即可:
- 客户端密码:进入应用注册页「证书和密码」→「客户端密码」→「新建客户端密码」,填写描述和过期时间,创建后立即记录密码值(仅显示一次)
- 证书:上传已有的公钥证书,或生成自签名证书并上传
5. 权限测试示例
使用客户端凭据流获取令牌后调用Graph API:
获取访问令牌
POST https://login.microsoftonline.com/{租户ID}/oauth2/v2.0/token Content-Type: application/x-www-form-urlencoded client_id={客户端ID}&scope=https://graph.microsoft.com/.default&client_secret={客户端密码}&grant_type=client_credentials
添加组成员
POST https://graph.microsoft.com/v1.0/groups/{组ID}/members/$ref Content-Type: application/json Authorization: Bearer {访问令牌} { "@odata.id": "https://graph.microsoft.com/v1.0/users/{用户ID}" }
移除组成员
DELETE https://graph.microsoft.com/v1.0/groups/{组ID}/members/{用户ID}/$ref Authorization: Bearer {访问令牌}
内容的提问来源于stack exchange,提问作者Vijay VSTO
相关产品推荐
相关产品推荐

