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

求助:ADFS(Windows Server 2016)无法验证JWT签名

解决ADFS 2016生成的JWT签名验证失败问题

关键排查与修复步骤

1. 纠正公钥获取方式

你之前参考的是Azure AD的公钥获取流程,不适用于ADFS 2016。正确操作:

  • 访问ADFS的OpenID配置端点:https://<你的ADFS服务器FQDN>/adfs/.well-known/openid-configuration
  • 从返回的JSON中找到jwks_uri,访问该地址获取JWKS格式的公钥集合
  • 匹配id_token头部的kid值,复制对应公钥到jwt.io的"Public Key"区域,选择RS256算法(ADFS默认签名算法)

2. 校验id_token头部与公钥的匹配性

  • 在jwt.io解析id_token,查看Header部分的alg是否为RS256,kid是否与JWKS中对应公钥的kid完全一致(注意大小写、特殊字符)
  • 若kid不匹配,说明你选了错误的公钥,需重新查找对应项

3. 检查ADFS令牌签名证书状态

  • 登录ADFS服务器,打开ADFS管理控制台,进入服务 > 证书
  • 确认令牌签名证书未过期、信任链完整
  • 如果是自签名证书,需手动复制证书的公钥内容(而非依赖自动获取)到jwt.io,因为自签名证书不在公共信任链中

4. 规范公钥格式

  • 确保公钥包含-----BEGIN PUBLIC KEY-----和-----END PUBLIC KEY-----头部尾部,且每行保持64字符长度
  • 复制公钥时避免引入多余空格、换行符或截断

5. 验证令牌核心字段一致性

  • 在jwt.io的Payload区域,确认iss值为http://<你的ADFS服务器FQDN>/adfs/services/trust,aud为你注册的客户端ID
  • 请求ADFS时必须使用服务器的FQDN而非IP,否则签名验证会因发行者/受众不匹配失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 07:26:08