Как аутентифицировать пользователя в. Net Core WebAPI, используя Windows Active Directory из клиентского веб-интерфейса, размещенного на отдельном сервере? - PullRequest
0 голосов
/ 13 февраля 2020

Я сгенерировал службу WebAPI с помощью следующей команды:

dotnet new webapi --auth Windows

Затем добавил это в мой файл запуска:

services.AddAuthentication(NegotiateDefaults.AuthenticationScheme).AddNegotiate();

Теперь, если я попытаюсь получить доступ к конечной точке API, Требуется авторизация. Я получаю окно с предупреждением, например приглашение ввести мое имя пользователя и пароль (только один раз). И я получаю ответ JSON, когда я правильно ввожу свои учетные данные.

Мой следующий план - создать одностраничное приложение с использованием React, которое будет размещено на другом сервере (возможно, в контейнере). , Я хочу, чтобы в моем API была конечная точка /login, которая получит имя пользователя и пароль от клиента веб-интерфейса и попытается аутентифицировать пользователя с помощью этих учетных данных в Windows Active Directory.

Я не смог найти любая подсказка, как я должен это сделать. Я даже не знаю, возможно ли это.

Итак, мои вопросы: возможно ли это сделать? Если нет, то каков наилучший альтернативный подход, учитывая, что у меня будут другие клиенты (включая android приложение), которые будут использовать этот API?

Некоторая дополнительная информация: *. Net Базовая версия: 3.1.0 * Не использую IIS. Только с использованием Kestrel, но можно использовать IIS, если это поможет.

1 Ответ

1 голос
/ 13 февраля 2020

Ваши клиентские приложения и веб-API находятся на разных доменах, я бы посоветовал использовать один поставщик удостоверений, например, сервер идентификации4 / Azure AD, чтобы поставщик удостоверений интегрировал windows аутентификацию. Это сделало бы ваш сценарий более понятным для реализации windows аутентификация и единый вход для разных видов приложений. В противном случае вам необходимо отправить клиент AD с учетными данными в веб-интерфейсе и связаться с AD, чтобы проверить учетные данные в вашем веб-интерфейсе, что может привести к проблеме безопасности.

Windows Аутентификация на сервере идентификации 4:

http://docs.identityserver.io/en/latest/topics/windows.html

...