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

如何在FoxIDs生成的SAML AuthnRequest中添加AppSwitch属性?

在FoxIDs中为SAML请求添加NemLog-in AppSwitch扩展

要在FoxIDs生成的SAML AuthnRequest中添加NemLog-in要求的AppSwitch扩展,可通过以下几种方式实现:

1. 静态配置自定义SAML扩展

直接在FoxIDs管理后台的SAML IdP连接中配置固定的扩展内容:

  • 登录FoxIDs管理界面,找到对接NemLog-in的SAML IdP连接
  • 进入该连接的配置页面,找到「SAML请求设置」区域的「自定义扩展」选项
  • 将以下XML片段填入扩展配置框:
    <nl:AppSwitch xmlns:nl="https://data.gov.dk/eid/saml/extensions">
      <nl:Platform>Android</nl:Platform>
      <nl:ReturnURL>dk.serviceprovider.test</nl:ReturnURL>
    </nl:AppSwitch>
    
  • 保存配置后,FoxIDs后续生成的所有SAML AuthnRequest都会自动包含这个AppSwitch扩展节点

2. 动态生成扩展(支持多平台/动态ReturnURL)

如果需要根据前端请求的参数动态调整Platform或ReturnURL,可以使用FoxIDs的**规则(Rules)**功能实现:

  • 在FoxIDs管理界面创建一条新规则,选择关联到对应的OIDC客户端或SAML IdP连接
  • 编写C#规则脚本,从OIDC请求的自定义参数中取值,动态构建AppSwitch扩展:
    // 从OIDC请求的查询参数中获取平台和返回地址(可根据实际传参方式调整)
    var platform = Context.Request.GetQueryParam("platform") ?? "Android";
    var returnUrl = Context.Request.GetQueryParam("return_url") ?? "dk.serviceprovider.test";
    
    // 构建符合NemLog-in要求的AppSwitch XML
    var appSwitchExtension = $@"
    <nl:AppSwitch xmlns:nl=""https://data.gov.dk/eid/saml/extensions"">
      <nl:Platform>{platform}</nl:Platform>
      <nl:ReturnURL>{returnUrl}</nl:ReturnURL>
    </nl:AppSwitch>";
    
    // 将扩展添加到SAML认证请求的Extensions节点中
    Context.SamlAuthnRequest.Extensions.Add(appSwitchExtension);
    
  • 保存规则并启用,之后FoxIDs会根据请求参数动态生成对应的AppSwitch扩展

3. 验证配置效果

配置完成后,可通过以下方式验证:

  • 发起认证流程,使用抓包工具(如Fiddler、Charles)捕获SAML AuthnRequest,确认<samlp:Extensions>节点下存在完整的AppSwitch内容
  • 查看FoxIDs的日志记录,在「SAML请求」日志中检查扩展节点是否正确添加

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 05:02:21