2

Я читал много руководств/статей, но еще не нашел того, что делает именно то, что я хочу ... чтобы реализовать аутентификацию Active Directory в веб-интерфейсе ASP.NET через формы.Как внедрить аутентификацию Active Directory в веб-API ASP.NET через формы?

Нечто подобное на этом руководстве:

Cool MVC 5 guide to implement authentication with Active Directory

Что очень хорошо, но это для MVC, то есть, он использует контроллер не ApiController

Может кто-то пожалуйста, дайте мне намеки/советы/статьи о том, как начать? Особенно о части, которая подключается к активному каталогу. Я застрял на этом некоторое время.

UPDATE:

public bool IsAuthenticatedUser(string srvr, string usr, string password) 
     { 
      bool authenticated = false; 

      try { 
       DirectoryEntry entry = new DirectoryEntry(srvr, usr, password); 
       object nativeObject = entry.NativeObject; 
       Object obj = entry.NativeObject; 
       authenticated = true; 
      } 
      catch { 
       throw new HttpResponseException(HttpStatusCode.Unauthorized); 
      } 
      return authenticated; 
     } 

     // POST: api/Login 
     public void Post([FromBody]string username, [FromBody]string password) 
     { 
      if (IsAuthenticatedUser("LDAP string", username, password)) 
      { 
       Redirect("Index"); 
      } 
      else 
      { 
       throw new HttpResponseException(HttpStatusCode.Unauthorized); 
      } 
     } 

Я думал о попытке что-то подобное для аутентификации, ваши мысли?

ответ

1

Ну, я не думаю, что это правильно сделать ФОРМЫ аутентификации для WebAPI. Смысл WebApi работает с данными в RESTful способ.

Так мое предложение (если вы хотите использовать AD ФОРМ аутентификации):

1) Создание тестовой среды для тестирования AD аутентификации - для этой цели, вы можете использовать Oracle VirtualBox , На нем вы хотите установить Windows Server 2016 (оценка за 180 дней), где вы создаете AD, создаете домен и добавляете к нему некоторых тестирующих пользователей, устанавливаете AD SSL сертификат (ручной работы в порядке);

2) Установить сертификат от 1) на хост-машине для SSL соединения между хостом и виртуальными компьютерами (так как вы собираетесь отправить простые учетные данные);

3) В вашем веб-приложения, вы делаете традиционные MVC страницы входа, используя SSL куки для хранения учетных данных: вы создаете это печенье в вашем Аутентифицировать метод контроллера. Процесс аутентификации так же просто, как написание правильной строки соединения в web.config для System.Web.Security.ActiveDirectoryMembershipProvider, проверка достоверности пользователя является обычным Membership.ValidateUser метода;

4) После того как пользователь успешно проверен, использовать сохраненные кук для проверки пользователя между внутренним WebAPI запросов