如何在Azure AD的自定义声明中添加Windows AD组
将本地Windows AD组添加到Azure AD自定义声明实操指南
前置条件
- 本地Windows AD的目标组已经通过Azure AD Connect同步到Azure AD,没有被同步过滤规则拦截
- 你持有Azure AD全局管理员、应用管理员或云应用管理员权限,可修改应用的令牌配置
操作步骤
1. 为目标应用添加组声明
- 进入Azure AD应用注册页面,找到你需要配置的目标应用
- 左侧导航栏选择「令牌配置」,点击「添加组声明」
- 组类型勾选「安全组」(本地AD同步的组默认属于安全组类型,可按需额外勾选其他组类型)
- 按需选择声明返回的内容:
- 如果你需要适配应用的
role-claims规范,选择「角色」选项,组值会直接返回到roles声明字段中 - 如果你需要自定义声明名称,选择「自定义声明」,自行填写应用要求的声明字段名
- 若要返回本地AD组的
sAMAccountName而不是Azure AD组的对象ID,勾选*将组名称作为源属性(仅限同步组)*选项即可
- 如果你需要适配应用的
2. 配置组过滤(适配应用单独授权需求)
如果应用只需要识别特定AD组,不需要返回用户所有所属组,可按以下配置避免声明过长:
- 编辑刚才创建的组声明,开启仅发放分配给应用的组开关
- 回到应用的「企业应用」配置页,进入「用户和组」菜单,添加需要对该应用放行的本地同步AD组
- 配置完成后,只有属于你添加的AD组的用户,令牌中才会出现对应组的声明值,完全适配单独配置访问组的需求
3. 验证配置是否生效
- 使用属于目标AD组的测试账号登录应用,解析返回的ID令牌/访问令牌
- 确认令牌中存在你配置的角色或自定义声明字段,值为对应用户所属的AD组ID/名称
注意:如果选择返回组名,只有同步自本地AD的组会返回
sAMAccountName,云端原生创建的组默认返回对象ID,需要额外配置属性映射才能返回云端组名
常见问题排查
- 本地AD组未出现在声明中:先到Azure AD「组」页面搜索对应组名,确认组已经同步成功,再确认用户的组成员关系在Azure AD侧已经更新
- 声明中同时出现了不需要的组:确认你已经开启「仅发放分配给应用的组」开关,且没有额外添加无关的组到应用的「用户和组」列表中
- 应用无法识别声明:确认你配置的声明字段名和应用要求的
role-claims/自定义声明名称完全一致,注意区分大小写
内容的提问来源于stack exchange,提问作者aupadhy7
相关产品推荐
相关产品推荐

