Я использую Microsoft OpenIdConnectAuthenticationMiddleware
против IdentityServer3 в гибридном потоке. Я пропущу код установки IdentityServer3 (поскольку я не думаю, что здесь есть проблема), но вот код запуска проверяющей стороны:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "Cookies"
});
var options = new OpenIdConnectAuthenticationOptions
{
Authority = "https://localhost:44300/",
ClientId = "hybridclient",
ClientSecret = "secret",
RedirectUri = "https://localhost:44301/",
ResponseType = "code id_token",
SignInAsAuthenticationType = "Cookies",
Scope = "openid profile"
};
app.UseOpenIdConnectAuthentication(options);
Я заметил, что, когда IdentityServer3 использует для подписи сертификат с истекшим сроком действия - что он разрешает, но регулярно регистрирует как предупреждение - истечение срока действия сертификата игнорируется и аутентификация разрешена. Это кажется неправильным.
Я не знаю, чья это будет ответственность (OpenIdConnectAuthenticationMiddleware
? ADAL?), Поскольку мне кажется, что это простой сбой аутентификации, когда срок действия сертификата подписи истек. Я просмотрел код от Katana до JwtSecurityTokenHandler
в ADAL, и я не вижу, что срок действия проверяется.
Я могу что-нибудь накатить, либо в TokenValidationParameters.IssuerSigningKeyResolver
, либо в SecurityTokenValidated
уведомлении на OpenIdConnectAuthenticationNotifications
, но похоже, что это должно быть что-то встроенное.
Есть ли способ, чтобы промежуточное ПО Microsoft OIDC проверяло истечение срока действия сертификата подписи? Или я что-то упускаю?
Обновление: учитывая ответ Брента, очевидно, что это пробел в функциональности JwtSecurityTokenHandler
, который Microsoft хотела бы восполнить. Я могу только сказать, что вижу это сейчас, с установленной версией v4.0.0 (поскольку это зависимость от пакета Microsoft.Owin.Security.OpenIdConnect
NuGet).