В моем приложении ASP. NET Core есть рабочая аутентификация с открытым идентификатором. Теперь я спросил себя, проверяется ли токен эмитента автоматически. Я не был уверен, поэтому я сделал это
services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie()
.AddOpenIdConnect(options =>
{
options.MetadataAddress = Configuration.GetValue<string>("MetadataAddress");
options.Authority = Configuration.GetValue<string>("Authority");
options.ClientId = Configuration.GetValue<string>("ClientId");
options.ClientSecret = Configuration.GetValue<string>("ClientSecret");
options.TokenValidationParameters.ValidateIssuerSigningKey = true;
Теперь мне было интересно, если я установлю ValidateIssuerSigningKey в true, я должен установить IssuerSigningKey? Я не получил никакой информации в документации.
Проблема, которую я вижу, состоит в том, что алгоритм подписания может быть любым, что возможно. MetadataAddress сообщит это мне в свойстве id_token_signing_alg_values_supported, но должен ли я реализовать какой-либо возможный алгоритм? Или Microsoft IdentityModel делает это самостоятельно?
Большое спасибо!