Я не очень хорошо знаком с тем, как работает open id, но я использую приведенный ниже код для аутентификации Open id. Поэтому, если у меня есть правильный токен, он проходит, и я получаю требуемый ответ. Однако, когда токен неверен, я вижу, что код повторяется несколько раз на IssuerSigningKeyResolver, и я получаю запрещенный ответ. Мне интересно, как записать фактический ответ, чтобы я мог знать причину сбоя.
var authority = OpenIDConfiguration.Authority;
var configurationManager = new ConfigurationManager<OpenIdConnectConfiguration>(
authority + "/.well-known/openid-configuration",
new OpenIdConnectConfigurationRetriever(),
new HttpDocumentRetriever());
app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
TokenValidationParameters = new TokenValidationParameters()
{
ValidAudience = OpenIDConfiguration.ClientId,
ValidIssuer = authority,
IssuerSigningKeyResolver = (token, securityToken, identifier, parameters) =>
{
var discoveryDocument = Task.Run(() => configurationManager.GetConfigurationAsync()).GetAwaiter().GetResult();
return discoveryDocument.SigningKeys;
}
}
});