#asp.net-core #identityserver4
#asp.net-ядро #identityserver4
Вопрос:
У нас есть настройка, в которой сервер идентификации 4 (IS4), работающий в IIS с использованием .NET Core 3.1, будет аутентифицировать пользователей с помощью Windows AD или учетных данных, хранящихся в базе данных. Проблема, которую я пытаюсь решить, заключается в том, что когда у нас есть внутренний веб-сайт, созданный в настоящее время с использованием ReactJS, который проходит проверку подлинности по IS4, появляется диалоговое окно с запросом пользователя ввести свои учетные данные. Мы хотим, чтобы пользователь автоматически входил в IS4 через свою учетную запись домена Windows без запроса на ввод своих учетных данных.
Ниже приведена настройка IIS
- Включен SSL
- Аутентификация: анонимная и включена проверка подлинности Windows.
IS4
- Определение веб-узла (Program.cs)
WebHost.CreateDefaultBuilder(args).UseSerilog().UseStartup<Startup>();
- Конфигурация проверки подлинности Windows (Startup.cs)
public void ConfigureServices(IServiceCollection services)
{
...
services.Configure<IISOptions>(iis =>
{
iis.AuthenticationDisplayName = "Windows";
iis.AutomaticAuthentication = true;
});
}
public void Configure(IApplicationBuilder app)
{
...
app.UseIdentityServer();
app.UseAuthorization();
}
ReactJS
- Здесь ничего особенного не настроено.
- Запуск через npm запускается из командной строки, не используя IIS.
Я думаю, что это весь связанный код и конфигурация. У нас есть логика, которая настроена для определения, настроен ли клиент на автоматическую проверку подлинности Windows, чтобы они не перенаправлялись на страницу входа в учетную запись IS4.
Ответ №1:
Является ли IIS частью домена AD?
У вас есть
options.ListenerSettings.Authentication.Schemes = AuthenticationSchemes.Negotiate | AuthenticationSchemes.NTLM;
включено? Из документа Identity Server: https://docs.identityserver.io/en/aspnetcore1/topics/windows.html
Я не думаю, что мне приходилось включать что-либо еще в прошлый раз, когда я это делал.
Комментарии:
1. спасибо за указания. Мы используем Kestrel для веб-хостинга, поэтому настройка прослушивателей не является вариантом. Я заметил, что всплывающее окно входа в систему появляется только в Chrome. Firefox и IE ведут себя так, как ожидалось, и автоматически регистрируют пользователя. Так что это может быть не проблема IS4, а на самом деле проблема Chrome.?.?
2. Разве вы не можете добавить слушателей в настройку IS? Итак, когда вы отправляете клиентов в IS, он проверяет наличие NTLM и автоматически перенаправляет, если я представляю аутентификацию? В противном случае отображается экран входа в систему? Возможно, я неправильно понял ваш вопрос 🙂