Keycloak客户端JWT中未包含JWKS_URI问题咨询
问题解答
你的理解有误,JWKS_URI不应该包含在JWT(ID Token/Access Token)本身中。
- RFC 8414定义的是OAuth 2.0授权服务器的元数据规范,其中
jwks_uri是授权服务器元数据的一部分,应当在授权服务器的OpenID发现端点(比如Keycloak的/.well-known/openid-configuration)中返回,而非嵌入到JWT令牌内。 - JWT中的
kid(密钥ID)作用是标识签署该令牌的密钥:验证方拿到JWT后,会先从授权服务器发现端点获取jwks_uri,再通过这个地址拉取JWKS密钥集合,最后用kid匹配对应的公钥来完成签名验证。 - Keycloak的实现完全符合规范:它生成的JWT只会携带
kid字段,jwks_uri仅出现在OpenID配置端点的响应里。你提到的CERTS端点能正常返回JWKS格式数据,这正是验证流程所需的正确状态。
总结来说,JWT本身不需要包含JWKS_URI,只要授权服务器通过元数据正确暴露该端点,验证方就能借助kid完成令牌的签名验证。
内容的提问来源于stack exchange,提问作者Stburcher
相关产品推荐
相关产品推荐

