Asp.net Jwt 令牌验证
Asp.net Jwt token validation
ASP.NET 核心 2.x 有一个非常好的方法来使用 JWT 令牌添加不记名身份验证。以下代码是使事情正常进行的最低要求。
{
TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidIssuer = "https://issuer.com",
ValidateLifetime = true,
}
});
我了解 JWT header.payload.signature
的结构,但如果我们使用非对称算法,我们需要验证签名,为此我们需要从这个 public 中获取密钥 url: issuer + .well-known/jwks.json
.
那么,中间件 "magically" 是否正在获取 public 密钥并验证签名?另外,中间件是否缓存 public 键以避免在每次验证时获取 public 键?
ConfigurationManager
对象负责检索、刷新和缓存验证 JWT 所需的配置元数据,例如颁发者和签名密钥。中间件将在第一次身份验证开始时退出元数据和缓存,请参阅源代码here。
ASP.NET 核心 2.x 有一个非常好的方法来使用 JWT 令牌添加不记名身份验证。以下代码是使事情正常进行的最低要求。
{
TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidIssuer = "https://issuer.com",
ValidateLifetime = true,
}
});
我了解 JWT header.payload.signature
的结构,但如果我们使用非对称算法,我们需要验证签名,为此我们需要从这个 public 中获取密钥 url: issuer + .well-known/jwks.json
.
那么,中间件 "magically" 是否正在获取 public 密钥并验证签名?另外,中间件是否缓存 public 键以避免在每次验证时获取 public 键?
ConfigurationManager
对象负责检索、刷新和缓存验证 JWT 所需的配置元数据,例如颁发者和签名密钥。中间件将在第一次身份验证开始时退出元数据和缓存,请参阅源代码here。