У меня есть приложение IdentityServer 4, и я реализовал единый вход для аутентификации с помощью OpenID Connect, иногда пользователи перенаправляют на «signin-oidc» и выдают исключение
Microsoft.IdentityModel.Tokens.SecurityTokenSignatureKeyNotFoundException: IDX10501: Ошибка проверки подписи.Невозможно сопоставить ключи: '[PII скрыт]'.
Код на ядре .net клиента:
services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = "oidc";
})
.AddCookie(options =>
{
options.ExpireTimeSpan = TimeSpan.FromMinutes(60);
options.Cookie.Name = "sintrc";
})
.AddOpenIdConnect("oidc", options=> {
options.Authority = authParams.BaseUrl;
options.RequireHttpsMetadata = false;
options.SignedOutRedirectUri = authParams.RedirectUrl;
options.ClientId = authParams.Client_Id;
options.Scope.Clear();
options.Scope.Add("openid");
options.Scope.Add("profile");
options.Scope.Add("email");
options.SaveTokens = true;
options.TokenValidationParameters = new TokenValidationParameters
{
NameClaimType = JwtClaimTypes.Name,
RoleClaimType = JwtClaimTypes.Role
};
});