Я относительно новичок в .NET.Я использую ASP.NET Core 2.1.Я передаю аутентификацию с использованием JWT.В рамках проверки jwt я обращаюсь к эмитенту и получаю его открытый ключ для проверки целостности моих токенов.Итак, я делаю:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(o =>
{
o.Authority = Configuration["Jwt:Authority"];
o.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateIssuerSigningKey = true,
ValidIssuer = Configuration["Jwt:Issuer"],
ValidAudience = Configuration["Jwt:Audience"],
NameClaimType = ClaimTypes.NameIdentifier,
};
});
Это делает то, что я ожидаю, но, похоже, выходит на сервер выдачи для каждого запроса.То, что я хотел бы, это кэшировать jwk, который я получаю, и пытаться получить доступ к полномочиям только в случае неудачной проверки (это может быть, например, из-за ротации ключей).Что странно, я не вижу очевидного способа определения политики кэширования в конфигурации.Я чувствую, что это довольно стандартный вариант использования, и я могу что-то упустить, но мне не повезло, просматривая документы.Может ли кто-нибудь предложить мне подход здесь?Должен ли я свернуть свой собственный IConfigurationManager для обеспечения этого?Любой совет будет принят во внимание.Большое спасибо!