作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试确定是否为 .net core 3.0 提供了 JwtBearer 服务,它是否真的使用了由我的 oidc 提供商众所周知的配置提供的非对称签名 key ????
我找不到任何关于此的文档。
.AddJwtBearer(opt =>
{
opt.Authority = "http://localhost:8180/auth/realms/master";
opt.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = false,
ValidateLifetime = true,
ValidateIssuerSigningKey = true
};
If you let the JwtBearer middleware auto-configure via the discovery document, this all works automatically!
Does the .AddJwtBearer service with "ValidateIssuerSigningKey" periodically check the wellknown or whatever discovery document to grab the latest asymettric signing key?
最佳答案
我想知道同样的 - 研究/调试表明 JwtBearer 确实试图联系权威以获取公钥。
这是验证期间调用的函数:
// System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.cs
protected virtual SecurityKey ResolveIssuerSigningKey(string token, JwtSecurityToken jwtToken, TokenValidationParameters validationParameters)
{
if (validationParameters == null)
throw LogHelper.LogArgumentNullException(nameof(validationParameters));
if (jwtToken == null)
throw LogHelper.LogArgumentNullException(nameof(jwtToken));
return JwtTokenUtilities.FindKeyMatch(jwtToken.Header.Kid, jwtToken.Header.X5t, validationParameters.IssuerSigningKey, validationParameters.IssuerSigningKeys);
}
.AddJwtBearer(o =>{
o.Authority = "https://authorityUri/";
})
jwks_uri
,(在 google
https://www.googleapis.com/oauth2/v3/certs 的情况下)并获取 jwks 文件,该文件将包含用于签名验证的数据(公钥、算法、初始向量)。
.AddJwtBearer(o =>{
o.TokenValidationParameters.IssuerSigningKey = GetKey();
//in this case you need to provide valid audience or disable validation
o.TokenValidationParameters.ValidateAudience = false
//in this case you need to provide valid issuer or disable validation
o.TokenValidationParameters.ValidateIssuer= false
})
Microsoft.IdentityModel.Tokens.SecurityKey = GetKey(){
var key = "Secret_Pass";
return new SymmetricSecurityKey(Encoding.UTF8.GetBytes(key));
}
.AddJwtBearer(o =>{
o.Authority = "https://authorityUri/";
o.TokenValidationParameters.IssuerSigningKey = GetKey();
})
关于asp.net-core - AddJwtBearer() 是否按照我的想法行事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58758198/
我是一名优秀的程序员,十分优秀!