You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过ADFS声明/转换规则修改SAML 2.0令牌的Audience属性?

没问题,完全可以通过ADFS 4.0的声明转换规则来修改SAML 2.0令牌里的<AudienceRestriction>中的<Audience>字段,不管是基于你已经发送的环境识别码动态切换,还是固定配置多受众都能实现。下面给你一步步说具体操作:

一、核心可行性说明

ADFS 4.0支持通过自定义声明规则语言(Claims Rule Language)直接控制Audience属性的生成,这完全覆盖你的需求——不管是替换原有Audience,还是根据环境识别码动态生成对应供应商环境的Audience都没问题。

二、具体配置步骤

1. 进入RP信任的声明规则界面

打开ADFS管理控制台,找到你配置的标识符为https://SP1/app的RP信任,右键选择属性,切换到声明规则标签页。

2. 处理默认Audience规则(可选但推荐)

默认情况下,ADFS会自动生成一条“颁发RP信任的标识符作为受众声明”的规则,这条规则会输出你当初配置的https://SP1/app作为Audience。如果要完全替换成供应商的环境地址,建议禁用或删除这条默认规则;如果要保留原有Audience同时添加供应商的地址,可以跳过这一步。

3. 添加自定义声明规则

点击添加规则,在弹出的向导中选择模板使用自定义规则发送声明,然后点击下一步:

  • 给规则起个清晰的名字,比如“动态生成供应商Audience”
  • 在“自定义规则”文本框中,根据你的需求选择对应的规则代码:

场景1:基于现有环境识别码动态切换Audience

假设你已经发送的环境识别码声明类型是http://schemas.yourcompany.com/claims/environment,值为prod(生产)或training(训练),规则代码如下:

// 匹配环境识别码声明
c:[Type == "http://schemas.yourcompany.com/claims/environment"]
// 根据环境值动态生成对应供应商的Audience
=> issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/audience", Value = c.Value == "prod" ? "https://vendor-prod.com/sp" : "https://vendor-training.com/sp");

注意:把代码里的声明类型、供应商地址替换成你实际使用的值。

场景2:固定添加多个Audience(同时支持原地址+供应商环境)

如果需要令牌里同时包含原Audience和两个供应商环境的地址,可以用多条issue语句:

// 保留原Audience
=> issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/audience", Value = "https://SP1/app");
// 添加生产环境Audience
=> issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/audience", Value = "https://vendor-prod.com/sp");
// 添加训练环境Audience
=> issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/audience", Value = "https://vendor-training.com/sp");

4. 验证配置效果

配置完成后,你可以用以下方式验证:

  • 使用ADFS自带的Claims X-Ray工具(在ADFS服务器上运行Get-AdfsEndpoint找到对应的URL,访问后进行身份验证)查看生成的声明
  • 用浏览器的SAML tracer插件捕获SAML响应,检查<AudienceRestriction>节点下的<Audience>值是否符合预期
三、关键注意事项
  • 必须使用标准的Audience声明类型:http://schemas.microsoft.com/ws/2008/06/identity/claims/audience,ADFS只会识别这个类型的声明来生成SAML令牌里的<Audience>元素
  • 确保供应商的SP端已经将你设置的Audience地址添加到他们的信任配置中,否则令牌会因受众验证失败被拒绝

内容的提问来源于stack exchange,提问作者itismeap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:50:56