ASP. NET Framework
У нас есть существующий веб-сайт ASP. NET Framework, который выполняет аутентификацию с использованием ActiveDirectoryFederationServicesBearerAuthentication:
app.UseActiveDirectoryFederationServicesBearerAuthentication(
new ActiveDirectoryFederationServicesBearerAuthenticationOptions
{
MetadataEndpoint = ConfigurationManager.AppSettings["ida:AdfsMetadataEndpoint"],
TokenValidationParameters =
new TokenValidationParameters
{
ValidAudience = ConfigurationManager.AppSettings["ida:Audience"],
RequireSignedTokens = true
}
});
Значение "ida: AdfsMetadataEndpoint "is:
https: // /FederationMetadata/2007-06/FederationMetadata.xml
У нас есть сервер ADFS 3.0 ( работает на Windows Server 2012 R2), выдавая эти токены JWT.
ASP. NET Core 3.1
Поскольку мы переносим наш веб-сервер через til ASP. NET Core 3.1, мы хотим продолжать использовать тот же сервер ADFS 3.0 для выдачи токенов JWT на наш веб-сайт.
Но у меня возникают проблемы при настройке нового сервера для проверки токенов с сервера ADFS 3.0. Вот что я попробовал:
JwtBearerAuthentication
Насколько я понимаю, для JwtBearerAuthentication требуется ADFS 4.0, которая поддерживает OpenIDConnect?
Я нашел этот обходной путь, который должен работать в моем случае, но кажется немного хакерским для сохранения ключа подписи эмитента в моем приложении. Что если это изменится в ADFS?
WsFederationAuthentication
Я следовал этому руководству , но мне кажется, что это не поддерживает аутентификацию на предъявителя?
Заключение
Что такое ядро ASP. NET, эквивалентное ActiveDirectoryFederationServicesBearerAuthentication с использованием маркеров переноса JWT, выпущенных из ADFS 3.0?