Active Directory + HTTP-аутентификация - PullRequest
2 голосов
/ 28 апреля 2011

Хорошо, я работаю над веб-приложением asp.net, которое будет использоваться внутри компании, чтобы отслеживать, где наши сотрудники выходят в кампус и что они делают.

В настоящее время мы используем систему для этого,использует таблицы " NoSQL " (которые в любом случае не знакомы на 100%), но это старая система, использующая сценарии cgi.Поэтому я переписываю его на asp.net, чтобы немного обновить систему, чтобы она была более современной с современным дизайном, и добавила для нее аутентификацию в активном каталоге, поскольку она использует свою собственную пользовательскую базу данных, отдельную от AD, которую мы используем везде.1005 *

Я нашел статью о включении аутентификации Active Directory через web.config, однако я бы вместо использования аутентификации по формам хотел бы связать это с HTTP-Запросить аутентификацию.Я попытался выполнить поиск в Google, чтобы попытаться найти решение, но я не могу найти никого, кто бы делал это раньше.

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 28 апреля 2011

Прежде всего, если вы собираетесь аутентифицировать людей с помощью учетных данных их домена, вы должны обязательно использовать HTTPS, поскольку в противном случае их пароли можно будет легко получить с помощью сетевого анализатора.о режиме проверки подлинности Windows в ASP.NET с базовой проверкой подлинности IIS.Вам необходимо настроить следующие вещи в вашем файле web.config:

<configuration>
  <connectionStrings>
    <add name="ADConnectionString" connectionString="LDAP://your.ad.fqdn.com/DC=com,DC=fqdn,DC=ad,DC=your"/>
  </connectionStrings>
  <system.web>
    <membership defaultProvider="ADMembershipProvider">
      <providers>
        <add name="ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ADConnectionString" connectionUsername="MYNTDOMAIN\someuser" connectionPassword="asdf1234"/>
      </providers>
    </membership>
    <authentication mode="Windows"/>
  </system.web>
</configuration>

Затем вы захотите настроить IIS для базовой аутентификации.Предполагая, что вы работаете с IIS 7.x, в IIS Manager найдите корневую папку вашего приложения, затем нажмите «Аутентификация».Вы должны иметь возможность включить базовую аутентификацию здесь.Вы также можете включить проверку подлинности Windows, чтобы пользователи IE / Chrome могли автоматически входить в систему:

Basic Authentication in IIS 7

1 голос
/ 28 апреля 2011

Похоже, вы хотите включить проверку подлинности Windows в приложении ASP.NET вместо проверки подлинности с помощью форм.В основном это включает изменение типа аутентификации в web.config с «Forms» на «Windows», а затем настройку разрешений для пользователей / групп в IIS.Ссылка ниже содержит подробные сведения об этих изменениях.

Дополнительная информация:

Статья MSDN об аутентификации Windows в ASP.NET

1 голос
/ 28 апреля 2011

Аутентификация Windows обычно прозрачна (они автоматически аутентифицируются с учетными данными, с которыми они вошли в Windows).Если вы хотите, чтобы их принудительно вводили учетные данные, вашей странице необходимо вернуть код состояния 401 HTTP.

...