Asp.net Jwt令牌验证

时间:2019-06-04 17:05:40

标签: c# asp.net-core jwt bearer-token

ASP.NET Core 2.x具有使用JWT令牌添加承载身份验证的非常好方法。以下代码是使事情正常运行的最低要求。

{
    TokenValidationParameters = new TokenValidationParameters
    {
        ValidateIssuer = true,
        ValidIssuer = "https://issuer.com",
        ValidateLifetime = true,
    }
});

我了解JWT header.payload.signature的结构,但如果使用的是非对称算法,则需要验证签名,为此需要从以下URL获取公钥:issuer + .well-known/jwks.json

那么,中间件是否“神奇地”获取了公钥并验证了签名?另外,中间件是否缓存公共密钥,以避免在每次验证时都获取公共密钥?

1 个答案:

答案 0 :(得分:1)

ConfigurationManager对象负责检索,刷新和缓存验证JWT所需的配置元数据,例如发出者和签名密钥。首次开始身份验证时,中间件将撤消元数据和加密,请参见源代码here