идентификационный сервер 4 окна аутентификации - PullRequest
0 голосов
/ 09 мая 2018

Я использовал комбинацию этих трех ресурсов для начала работы с Identity Server 4.

  1. IdentityServer4.Quickstart.UI
  2. 4_ImplicitFlowAuthenticationWithExternal
  3. Combined_AspNetIdentity_and_EntityFrameworkStorage

Комбинация трех использовалась для хранения пользователей в базе данных даже от внешних поставщиков. Также храните конфигурации Identity Server 4, такие как утверждения, роли, клиенты и ресурсы. Моя главная проблема сейчас заключается в том, что при запуске в IIS Express Windows аутентификация работает как положено. После публикации на полном сервере IIS на моем локальном компьютере я получаю повторяющееся всплывающее окно для входа в систему при попадании на страницу внешнего входа Windows. Я не получаю это всплывающее окно при запуске Identity Server 4 в IIS Express. В IIS Express я могу нажать кнопку внешней аутентификации Windows. Он правильно проходит через приложение и успешно завершает вход в систему.

Любая помощь высоко ценится. Я попытался включить как можно больше шагов воспроизведения, поэтому дайте мне знать, если что-то неясно.

Повторяющийся логин Всплывающее окно:

enter image description here

IIS настроен с включенной аутентификацией Windows и анонимной аутентификацией.

enter image description here

Setup.CS (метод ConfigureServices)

public void ConfigureServices(IServiceCollection services) {
        // Windows authentication is supported only by hosting Kestrel (Asp.net Core Web Server inside iis as a reverse proxy)
        // It is different than other Authentication methods because you don't Add the Authentication middleware like above.
        services.Configure<IISOptions>(options => {
            options.AuthenticationDisplayName = "Windows";
            options.AutomaticAuthentication = true;
        });

        services.AddMvc();

Program.cs

public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .Build();

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Я, к счастью, ответил на это сам. На самом деле это не проблема разработчика программного обеспечения, а проблема конфигурации среды. Локальная проверка обратной связи, поскольку приложение было развернуто локально, вызывало проблему. https://support.microsoft.com/en-us/help/896861/you-receive-error-401-1-when-you-browse-a-web-site-that-uses-integrate

0 голосов
/ 10 мая 2018

Учитывая, что ваш код работает в экспрессе, но не полностью, у IIS, вероятно, есть проблема с правами при проверке кредитов Windows, которые вы вводите. Убедитесь, что ваша учетная запись пула приложений имеет доступ для проверки кредитов в вашем домене.

...