【问题标题】:Error on Authentication net 6 Unable to match key身份验证网络上的错误 6 无法匹配密钥
【发布时间】:2022-06-29 16:33:26
【问题描述】:

我得到了下一个错误:

IDX10501:签名验证失败。无法匹配键: 孩子:'System.String'。 捕获的异常: 'System.Text.StringBuilder'。 令牌:'System.IdentityModel.Tokens.Jwt.JwtSecurityToken'。 在 Microsoft.IdentityModel.Tokens.InternalValidators.ValidateLifetimeAndIssuerAfterSignatureNotValidatedJwt(SecurityToken securityToken, Nullable1 notBefore, Nullable1 expires, String Kid, TokenValidationParameters validationParameters, StringBuilder exceptionStrings) 在 System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.ValidateSignature(字符串令牌,TokenValidationParameters 验证参数) 在 System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.ValidateToken(字符串令牌,TokenValidationParameters 验证参数,SecurityToken 和验证令牌) 在 Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler.HandleAuthenticateAsync()

我在带有 keycloak 的 api 上使用 Net 6,我的本地配置是 我在 RS256 上有一个公共孩子,但我不知道如何将它添加到 JwtBearer 配置中,我是新手

我尝试添加 appSettings 之类的

所有这些都在开发选项中,我从 keycloak 领域获得了密钥

【问题讨论】:

  • 与我的问题类似。您似乎没有使用 AddOpenIdConnect 方法,尽管并未显示您的所有代码

标签: c# authentication jwt keycloak .net-6.0


【解决方案1】:

如果您想跳过 jwt 令牌 keycloak 的身份验证签名并稍后使用可以在 .net 6 中使用的方法进行检查

在 Program.cs 中

 builder.Services.AddAuthentication(option =>
 {
  option.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
  option.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
 }).AddJwtBearer(options =>
  {
   options.TokenValidationParameters = new TokenValidationParameters
   {
     ValidateIssuer = false,
     ValidateAudience = false,
     ValidateIssuerSigningKey = false,
     RequireSignedTokens = false,
     SignatureValidator = delegate (string token, TokenValidationParameters parameters) {
        var jwt = new JwtSecurityToken(token);

        return jwt;
      },
      ValidateLifetime = false,
      RequireExpirationTime = false,
      ClockSkew = TimeSpan.Zero,
    };
    options.Events = new JwtBearerEvents
     {
      OnTokenValidated = context =>
       {
        return Task.CompletedTask;
        },
    };
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-19
    • 2020-06-04
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多