Назад | Перейти на главную страницу

Сервер IIS вне домена аутентифицируется в домене?

У меня есть сервер IIS, который является автономным сервером не в домене.

Таким образом, пользователям не нужно входить в локальную базу данных пользователей. Могу ли я использовать сервер IIS, аутентифицировать пользователей с помощью контроллера домена или, по крайней мере, передать имя пользователя для входа в приложение IIS?

Можно предположить, что пользователи будут доверять сайту.

Я столкнулся с аналогичным требованием, когда пытался выяснить, как использовать Active Directory для BlogEngine.NET. Потратив некоторое время на исследования, я смог использовать учетные записи пользователей Active Directory с платформой членства .NET Basic Authentication.

Это работало на моем веб-сервере, являющемся членом домена, но могло легко работать для серверов, не являющихся членами домена, если вы добавили имя пользователя и пароль в раздел конфигурации файла web.config.

Из мой пост в блоге о том, как настроить:

Добавьте в раздел запись, указывающую на ваш контроллер домена.

<add name="ADConnectionString" connectionString="LDAP://server.domain.com/DC=domain,DC=com" />

Обратите внимание, что первая часть синтаксиса LDAP: // определяет имя контроллера домена (server.domain.com). У вас есть несколько вариантов. Вы можете указать полное доменное имя, как показано в примере; вы можете указать relativeDistinguishedNamek (например, сервер); вы можете указать IP-адрес контроллера домена (например, 192.168.1.10); или для большей избыточности вы можете указать только доменное имя (например, domain.com).

Сделайте так, чтобы ваш раздел выглядел следующим образом:

<membership defaultProvider="MyADMembershipProvider">
      <providers>
        <add name="MyADMembershipProvider"
                 type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                 connectionStringName="ADConnectionString"
                 attributeMapUsername="sAMAccountName"
                 enableSearchMethods="true"/>
      </providers>
</membership>

Вы заметите, что я не настраивал имя пользователя и пароль для подключения к Active Directory. Это потому, что я запускаю BlogEngine на сервере-члене домена, а службы IIS работают в пуле приложений с использованием учетной записи сетевых служб. Если вы должны использовать явные учетные данные, вы можете добавить connectionUsername и connectionPassword в запись MyADMembershipProvider с соответствующей информацией.

Я бы рекомендовал по возможности использовать вызов LDAPS вместо LDAP. Я также рекомендую использовать SSL, если вы собираетесь передавать пароли домена в виде обычного текста.

Хотя я согласен с зашифрованным LDAP, также зашифруйте пароль домена в файле конфигурации .... (ключи под ковриком или за горшком?)