Автоматическая проверка подлинности Windows без диалога входа с использованием сервера идентификации 4

#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 и автоматически перенаправляет, если я представляю аутентификацию? В противном случае отображается экран входа в систему? Возможно, я неправильно понял ваш вопрос 🙂