SAML(Ws-Fed)认证需获取AD组和角色:请求配置还是IdP设置?
获取SAML/Ws-Fed响应里的AD组和角色信息
要拿到AD组和角色信息,IdP端配置和SP端请求设置都得做,缺一不可,具体操作如下:
一、IdP(以ADFS为例)端配置
- 先给ADFS的声明规则加上AD组/角色属性:
- 打开ADFS管理控制台,找到你的应用对应的信赖方信任
- 进入「编辑声明规则」,点击「添加规则」
- 选择「发送LDAP属性作为声明」模板,点击下一步
- 属性存储选「Active Directory」,然后添加映射关系:
- LDAP属性选「令牌组 - 合格名称」或「令牌组 - 不包含合格名称」(根据你需要的格式选择),出站声明类型设为「Group」或自定义标识,比如「http://schemas.xmlsoap.org/claims/Group」
- 如果要获取角色,可映射AD里的「职务」等属性,出站声明类型设为「Role」
- 保存规则,确保这些声明会被包含在SAML响应中
- 检查信赖方信任的「属性释放」设置,确认ADFS允许将这些组/角色属性发送给你的SP应用
二、SP端AuthnRequest配置
- 生成AuthnRequest时,需要明确请求这些属性:
- 如果是SAML 2.0,在AuthnRequest的
<samlp:RequestedAuthnContext>或<saml:AttributeConsumingService>节点中添加需要的属性声明:<saml:AttributeConsumingService> <saml:RequestedAttribute Name="http://schemas.xmlsoap.org/claims/Group" /> <saml:RequestedAttribute Name="http://schemas.xmlsoap.org/claims/Role" /> </saml:AttributeConsumingService> - 如果是Ws-Fed,在请求的wreq参数里包含属性请求,或者在RP信任配置中指定需要的属性(部分IdP会根据RP配置自动返回对应属性)
- 如果是SAML 2.0,在AuthnRequest的
三、排查小技巧
- 先确认IdP端的声明规则配置正确,可通过ADFS的「追踪」功能查看是否生成了对应的声明
- 检查AuthnRequest里是否正确包含属性请求,有些IdP会忽略未明确请求的属性(但也有部分IdP会按配置自动返回所有允许的属性)
- 直接查看SAML响应的XML内容,确认是否存在组/角色的属性节点,如果没有,优先排查IdP端的声明规则是否生效
内容的提问来源于stack exchange,提问作者Abyssian
相关产品推荐
相关产品推荐

