在ASP.NET Core中设置ValidateIssuerSigningKey为false是否会禁用JWKS?
ASP.NET Core中ValidateIssuerSigningKey与JWKS的关系
直接给结论:把ValidateIssuerSigningKey设为false不会禁用JWKS,这个选项也不是只针对自带签名密钥的令牌,它的作用是控制是否校验签名密钥本身的有效性,而非JWKS的加载逻辑。
具体拆解一下:
- 不管你的签名密钥是直接写在本地配置里,还是从JWKS端点动态获取的,这个参数都生效:
- 设为
true时,验证过程会额外检查签名密钥是否合规(比如非对称密钥是否有效、对称密钥有没有空值); - 设为
false时,会跳过这层密钥有效性校验,但依然会用拿到的密钥(不管是本地配置还是JWKS获取的)去验证令牌的签名是否正确。
- 设为
JWKS的加载是由JwtBearerOptions里的MetadataAddress(指向授权服务器元数据地址,里面包含JWKS的链接)或者手动配置的ConfigurationManager来控制的,和ValidateIssuerSigningKey完全没关系。只要你配置了正确的元数据地址,哪怕把这个参数设为false,系统照样会从JWKS拉取密钥,并用这些密钥做签名验证,只是不会检查密钥本身是否合法。
内容的提问来源于stack exchange,提问作者Alexander Trauzzi
相关产品推荐
相关产品推荐

