如何为ADFS的声明提供方登出调用添加wtrealm/wres参数
ADFS WSFed登出请求携带wtrealm/wres参数配置方案
可以通过以下两种方式配置ADFS,让WS-Fed登出请求携带wtrealm或wres参数,满足Identity Server 4的客户端身份识别需求:
方案1:添加自定义声明传递规则
该方案适用于需要统一控制参数取值的场景:
- 打开ADFS管理控制台,定位到对接Identity Server 4的对应信赖方信任条目
- 右键选择「编辑声明颁发策略」,点击「添加规则」
- 规则模板选择「使用自定义规则发送声明」,点击下一步
- 自定义规则框输入如下内容,将
你的信赖方标识符替换为实际的wtrealm取值:
c:[Type == "http://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork"] => issue(Type = "wtrealm", Value = "你的信赖方标识符", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified");
- 保存规则后执行
net stop adfssrv && net start adfssrv重启ADFS服务即可生效,登出请求会自动携带配置的wtrealm参数
如果你需要携带的是
wres参数,只需要把规则里的Type值改成wres,Value替换为对应的wres取值即可。
方案2:修改信赖方登出端点配置
该方案适用于需要快速验证、参数固定的场景:
- 在ADFS管理控制台找到对应信赖方信任条目,右键选择「属性」
- 切换到「端点」选项卡,找到类型为「WS-Federation」的登出响应端点
- 修改端点的URL,直接将需要携带的参数作为查询参数拼接在末尾,示例:
https://你的IS4服务地址/wsfed?wtrealm=你的信赖方标识符 - 保存配置后无需重启服务,ADFS触发登出重定向时会自动携带拼接的参数。
内容的提问来源于stack exchange,提问作者domiSchenk
相关产品推荐
相关产品推荐

