如何通过ADF管道Web活动调用Graph API获取Azure AD安全组成员?
通过ADF管道调用Microsoft Graph API获取Azure AD安全组成员
一、前置权限与访问要求
- Microsoft Graph API权限:需为ADF对应的服务主体分配Application类型的权限,推荐最小权限原则:
GroupMember.Read.All:仅读取组成员信息Group.Read.All:读取组及组成员信息
注:这些权限需由全局管理员或权限管理员完成管理员同意,不能使用用户委托权限(ADF为后台服务调用)。
- ADF服务主体配置:在Azure AD企业应用中找到ADF对应的服务主体,确认已成功授予上述Graph API权限。
二、ADF管道配置步骤
1. 创建Graph API链接服务
在ADF管理面板中新建Web类型链接服务,配置参数:
- Base URL:
https://graph.microsoft.com/v1.0/ - Authentication type:选择
Service Principal - Tenant:填写你的Azure AD租户ID
- Service Principal ID:ADF服务主体的客户端ID
- Service Principal Key:服务主体的客户端密钥
- Resource:必须填写
https://graph.microsoft.com/(用于认证身份范围)
2. 构建管道实现成员获取
基础单页调用(成员≤100条)
在管道中添加Web活动,配置:
- Linked Service:选择刚创建的Graph API链接服务
- Method:
GET - URL:
groups/{your-group-id}/members(替换{your-group-id}为目标安全组ID) - Headers:添加
Accept: application/json确保返回JSON格式
分页处理(成员>100条)
Graph API默认每页返回100条数据,需通过循环获取全部成员:
- 添加Until活动,设置终止条件:
@empty(activity('Web_Get_Members').output['@odata.nextLink']) - 在Until活动内添加Web活动,动态设置URL:
- 首次调用用初始URL:
groups/{your-group-id}/members - 后续调用用分页链接:
@activity('Web_Get_Members').output['@odata.nextLink']
- 首次调用用初始URL:
- 搭配Append Variable活动,将每次返回的
value数组追加到全局数组变量中,最终得到完整成员列表
三、额外注意事项
- 定期轮换服务主体密钥,避免因密钥过期导致调用失败
- 如需获取成员特定属性(如邮箱、部门),可在URL中添加
$select参数,示例:groups/{your-group-id}/members?$select=id,displayName,mail,department - 测试阶段可先在Graph Explorer中验证API调用有效性,确认权限配置正确
内容的提问来源于stack exchange,提问作者jitender singh
相关产品推荐
相关产品推荐

