使用ITfoxtec库对接ADFS跳转报Invalid URI错误咨询
核心错误定位
错误信息:Invalid URI: The format of the URI could not be determined
该错误是ADFS校验SAML2认证请求内的URI字段格式不合法导致的,不属于请求签名、元数据匹配类错误。
可能的产生原因
- 应用侧ITfoxtec.Identity.Saml2配置的
EntityID(即SAML请求中的Issuer字段)未使用完整URI格式,仅填写了纯字符串标识,缺失http/https等协议前缀 - 配置的断言消费服务地址(ACS URL)未使用完整URI格式,ADFS无法识别回调地址
- 读取ADFS元数据时解析出的单点登录服务地址存在格式错误,或者手动配置的IDP SSO地址不符合URI规范
修复方案
- 校验应用侧SAML2配置,确保以下两个参数为带协议的完整URI:
- EntityID配置示例:
https://你的应用域名/Saml2,禁止仅填写WebApp、Saml2Service这类无协议的纯字符串 - ACS地址配置示例:
https://你的应用域名/Saml2/Acs,需和后续ADFS依赖方信任中配置的回调地址完全一致
- EntityID配置示例:
- 登录ADFS服务器,打开ADFS管理控制台,找到对应依赖方信任条目,检查「标识符」标签下的配置值,和应用侧填写的EntityID完全匹配,且同样为完整URI格式
- 可自行解码SAMLRequest确认字段正确性:将URL中
SAMLRequest参数的值先做URL解码,再进行Base64解码,最后用DEFLATE算法解压即可查看原始XML内容,确认其中的Issuer、AssertionConsumerServiceURL字段无格式错误 - 若以上配置无问题,检查代码中构建跳转链接时是否存在重复编码、参数拼接错误的问题,确保最终生成的SSO地址域名、路径格式正确
内容的提问来源于stack exchange,提问作者Brice SnowIbo
相关产品推荐
相关产品推荐

