Для начала у меня было приложение Angular, которое использует клиентскую библиотеку angular -auth-oid c -клиента для запуска аутентификации Idenity Server 4 (поток кода авторизации с PKCE), используя Facebook en Microsoft Аккаунт провайдеров. Все это прекрасно работает, локально работает под IIS Express.
Теперь я хотел добавить windows аутентификацию. Итак, я добавил это в launchsettings:
"iisSettings": {
"windowsAuthentication": true,
}
... и в Startup of IdentityServer:
services.Configure<IISOptions>(iis => {
iis.AuthenticationDisplayName = "Windows";
iis.AutomaticAuthentication = true;
});
Если я затем вызвал Windows Аутентификация, метод Challenge из ExternalController был выполнен, и в Callback я автоматически получил моего windows пользователя, он не просил вводить учетные данные (работает под Windows 10), так что это работало также отлично.
Теперь, когда я попробуйте сделать то же самое под IIS (и я включаю Windows аутентификацию в IIS), вместо автоматического входа в систему с моим windows пользователем, я получаю всплывающее окно:
![enter image description here](https://i.stack.imgur.com/7ZLUl.png)
Таким образом, похоже, что в IIS аутентификация Windows работает по-другому, потому что она запрашивает мои учетные данные вместо того, чтобы использовать учетную запись зарегистрированного пользователя windows.
Если я читаю документы , я вижу, что следует использовать Kestrel или WebListener. Действительно ли необходимо использовать Kestrel или WebListener для обеспечения Windows аутентификации в IIS? Или я что-то пропустил?
РЕДАКТИРОВАТЬ: я пытаюсь это локально на моем windows 10 ноутбуке, и я не в домене.