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

ADFS单点登录SAML错误排查:MSIS0038签名不符问题

解决ADFS + Passport-SAML的MSIS0038签名错误问题

这个MSIS0038: SAML Message has wrong signature错误是ADFS在验证SAML消息(请求或响应)签名时失败导致的——虽然你提到实际认证已经完成,但签名验证不通过会让ADFS拒绝重定向回你的网站,所以用户才会卡在登录页。下面是我踩过坑后总结的常见原因和解决办法:

1. 证书不匹配或格式错误

这是最大概率的问题,要么是你Passport-SAML配置的证书和ADFS的令牌签名证书不一致,要么是证书格式不对:

  • 获取正确的ADFS签名证书:打开ADFS管理控制台,进入「服务」→「证书」,找到「令牌签名」证书,导出为Base64编码的CER格式(别选DER格式)。
  • 转成PEM格式:导出的CER文件需要加上标准PEM头部和尾部,也就是在证书内容前后分别加上-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----,每行保持64字符左右(可以用openssl命令或在线工具转换)。
  • 核对Passport-SAML配置:确保cert字段填的是这个正确的PEM格式证书,别搞混令牌签名和令牌加密证书(ADFS有两种不同的证书,签名证书才是用来验证消息的)。

示例配置片段:

const samlStrategy = new SamlStrategy({
  entryPoint: 'https://your-adfs-domain/adfs/ls/',
  issuer: 'www.myClient.myCompany.com',
  callbackUrl: 'https://www.myClient.myCompany.com/login/callback',
  // 正确的PEM格式签名证书
  cert: '-----BEGIN CERTIFICATE-----\nMIIDBTCCAe2gAwIBAgI...省略证书内容...\n-----END CERTIFICATE-----',
  // 其他必要配置
}, (profile, done) => {
  // 用户逻辑处理
  return done(null, profile);
});

2. 签名算法不匹配

ADFS默认可能用SHA256,但如果你的Passport-SAML配置的算法和ADFS不一致,也会触发这个错误:

  • 查看ADFS的签名算法:在ADFS管理控制台的信赖方信任属性里,进入「高级」选项卡,确认签名算法是SHA1还是SHA256(现在推荐用SHA256)。
  • 同步Passport-SAML配置:在策略配置里添加signatureAlgorithm字段,值和ADFS保持一致,比如signatureAlgorithm: 'sha256'。

3. ADFS信赖方信任配置错误

除了你的应用配置,ADFS这边的信赖方信任也可能出问题:

  • 检查ACS URL:确保ADFS里信赖方信任的「终结点」中,断言消费者服务(ACS)的URL和你Passport-SAML的callbackUrl完全一致,绑定方式必须是POST。
  • 验证签名设置:在信赖方信任的「签名」选项卡,确认「验证传入的SAML消息签名」或「要求签名的SAML断言」的设置和你的应用逻辑匹配(如果你的应用发送的SAML请求是签名的,ADFS需要开启验证;如果是ADFS发送响应签名,你的应用要配置验证)。

4. 进阶排查技巧

如果还是找不到问题,可以用这些方法定位:

  • 用SAML Tracer抓包:在浏览器安装SAML Tracer插件,捕获SSO流程中的SAML请求和响应,查看签名证书的指纹、使用的算法,和ADFS的证书信息做对比。
  • 查看ADFS事件日志:在Windows服务器的事件查看器里,打开「应用程序和服务日志」→「ADFS」→「Admin」,里面会有更详细的错误细节,比如明确指出是请求还是响应签名错误,或者证书指纹不匹配。

解决完签名错误后,ADFS就能正确重定向回你的网站,用户也不会卡在登录页了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:59:30