Проверка подлинности <Windows windowsAuthentication>

Общие сведения

Элемент <windowsAuthentication> определяет параметры конфигурации для модуля IIS 7 проверка подлинности Windows. Вы можете использовать проверка подлинности Windows, когда сервер IIS 7 работает в корпоративной сети, которая использует удостоверения домена службы Microsoft Active Directory или другие учетные записи Windows для идентификации пользователей. Поэтому вы можете использовать проверка подлинности Windows, является ли ваш сервер членом домена Active Directory.

проверка подлинности Windows (прежнее название — NTLM, а также проверка подлинности Windows NT Challenge/Response) — это безопасная форма проверки подлинности, так как имя пользователя и пароль хэшируются перед отправкой по сети. При включении проверка подлинности Windows клиентский браузер отправляет строго хэшированную версию пароля в криптографический обмен с веб-сервером.

проверка подлинности Windows поддерживает два протокола проверки подлинности, Kerberos и NTLM, которые определены в элементе <providers> . При установке и включении проверка подлинности Windows в IIS 7 по умолчанию используется протокол Kerberos. Элемент <windowsAuthentication> также может содержать атрибут useKernelMode , который указывает, следует ли использовать функцию проверки подлинности в режиме ядра, которая является новой для Windows Server 2008.

проверка подлинности Windows лучше всего подходит для среды интрасети по следующим причинам:

  • Клиентские компьютеры и веб-серверы находятся в одном домене.
  • Администраторы могут убедиться, что каждый клиентский браузер является интернет-браузером Обозреватель 2.0 или более поздней версии.
  • Прокси-подключения HTTP, которые не поддерживаются NTLM, не требуются.
  • Kerberos версии 5 требует подключения к Active Directory, что невозможно в интернет-среде.

Новые возможности в IIS 7.5

Элемент <extendedProtection> появился в IIS 7.5, который позволяет настраивать параметры для новых функций расширенной защиты, интегрированных в проверка подлинности Windows.

Совместимость

Версия Примечания
IIS 10.0 Элемент <windowsAuthentication> не был изменен в IIS 10.0.
IIS 8,5 Элемент <windowsAuthentication> не был изменен в IIS 8.5.
IIS 8,0 Элемент <windowsAuthentication> не был изменен в IIS 8.0.
IIS 7,5 Элемент <extendedProtection> был добавлен в IIS 7.5.
IIS 7.0 Элемент <windowsAuthentication> появился в IIS 7.0.
IIS 6,0 Элемент <windowsAuthentication> заменяет части свойств метабазы AuthType и AuthFlags IIS 6.0.

Настройка

Установка служб IIS 7 и более поздних версий по умолчанию не включает службу проверка подлинности Windows роли. Чтобы использовать проверка подлинности Windows в IIS, необходимо установить службу ролей, отключить анонимную проверку подлинности для веб-сайта или приложения, а затем включить проверка подлинности Windows для сайта или приложения.

Примечание

После установки службы ролей IIS 7 фиксирует следующие параметры конфигурации в файле ApplicationHost.config.

<windowsAuthentication enabled="false" />

Windows Server 2012 или Windows Server 2012 R2

  1. На панели задач щелкните Диспетчер сервера.
  2. В диспетчер сервера откройте меню Управление и выберите пункт Добавить роли и компоненты.
  3. В мастере добавления ролей и компонентов нажмите кнопку Далее. Выберите тип установки и нажмите кнопку Далее. Выберите целевой сервер и нажмите кнопку Далее.
  4. На странице Роли сервера разверните узел Веб-сервер (IIS),Веб-сервер, Безопасность, а затем выберите Проверка подлинности Windows. Щелкните Далее.
    Снимок экрана: страница .
  5. На странице Выбор компонентов нажмите кнопку Далее.
  6. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  7. На странице Результаты нажмите кнопку Закрыть.

Windows 8 или Windows 8.1

  1. На начальном экране переместите указатель в левый нижний угол, щелкните правой кнопкой мыши кнопку Пуск и выберите панель управления.
  2. В панель управления выберите Программы и компоненты, а затем — Включить или отключить компоненты Windows.
  3. Разверните узел Службы IIS, Веб-службы, Безопасность, а затем выберите Проверка подлинности Windows.
    Снимок экрана: содержащиеся папки служб IIS с выделенной папкой
  4. Нажмите кнопку ОК.
  5. Щелкните Закрыть.

Windows Server 2008 или Windows Server 2008 R2

  1. На панели задач нажмите кнопку Пуск, выберите Администрирование, а затем диспетчер сервера.
  2. В области иерархии диспетчер сервера разверните узел Роли и выберите Веб-сервер (IIS).
  3. На панели Веб-сервер (IIS) прокрутите страницу до раздела Службы ролей и щелкните Добавить службы ролей.
  4. На странице Выбор служб ролеймастера добавления служб ролей выберите Проверка подлинности Windows и нажмите кнопку Далее.
    Снимок экрана: страница
  5. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  6. На странице Результаты нажмите кнопку Закрыть.

Windows Vista или Windows 7

  1. На панели задач нажмите кнопку Пуск, а затем панель управления.
  2. В панель управления выберите Программы и компоненты, а затем — Включить или отключить компоненты Windows.
  3. Разверните узел Службы IIS, затем Службы Интернета и Безопасность.
  4. Выберите Проверка подлинности Windows и нажмите кнопку ОК.
    Снимок экрана: расширяемая папка служб IIS с выделенной папкой проверки подлинности Windows.

Инструкции

Включение проверка подлинности Windows для веб-сайта, веб-приложения или веб-службы

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, выберите Сервис, а затем диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку Пуск, а затем панель управления.
      • Дважды щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
  2. В области Подключения разверните имя сервера, узел Сайты, а затем сайт, приложение или веб-службу, для которых требуется включить проверка подлинности Windows.

  3. Прокрутите страницу до раздела Безопасность на панели Главная , а затем дважды щелкните Проверка подлинности.

  4. В области Проверка подлинности выберите Проверка подлинности Windows и нажмите кнопку Включить в области Действия .
    Снимок экрана: область проверки подлинности, содержащая поля


Включение расширенной защиты для проверка подлинности Windows

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, выберите Сервис, а затем диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку Пуск, а затем панель управления.
      • Дважды щелкните элемент Администрирование, а затем дважды щелкните диспетчер служб IIS.
  2. В области Подключения разверните имя сервера, узел Сайты, а затем сайт, приложение или веб-службу, для которых требуется включить расширенную защиту для проверка подлинности Windows.

  3. Прокрутите страницу до раздела Безопасность на панели Главная и дважды щелкните элемент Проверка подлинности.

  4. В области Проверка подлинности выберите Проверка подлинности Windows.

  5. Нажмите кнопку Включить в области Действия .
    Снимок экрана: область проверки подлинности и ее поле

  6. Щелкните Дополнительные параметры в области Действия .

  7. Когда откроется диалоговое окно Дополнительные параметры , выберите один из следующих параметров в раскрывающемся меню Расширенная защита :

    • Выберите Принять , если вы хотите включить расширенную защиту, обеспечивая при этом поддержку нижнего уровня для клиентов, которые не поддерживают расширенную защиту.
    • Выберите Обязательно, если вы хотите включить расширенную защиту без поддержки нижнего уровня.
      Снимок экрана: диалоговое окно
  8. Нажмите кнопку ОК , чтобы закрыть диалоговое окно Дополнительные параметры .

Параметр Configuration

Элемент <windowsAuthentication> можно настроить на уровне сайта, приложения или виртуального каталога в файле ApplicationHost.config.

Атрибуты

Атрибут Описание
authPersistNonNTLM Необязательный атрибут типа Boolean .

Указывает, будут ли службы IIS автоматически повторно выполнять проверку подлинности по каждому запросу, отличному от NTLM (например, Kerberos), даже при одном подключении. Значение False включает несколько аутентификаций для одних и того же подключения.

Примечание: Значение true означает, что клиент будет проходить проверку подлинности только один раз при том же подключении. СЛУЖБЫ IIS кэшируют маркер или билет на сервере для сеанса TCP, который остается установленным.

Значение по умолчанию — false.
authPersistSingleRequest Необязательный атрибут типа Boolean .

Установка для этого флага значения true указывает, что проверка подлинности сохраняется только для одного запроса к подключению. СЛУЖБЫ IIS сбрасывают проверку подлинности в конце каждого запроса и принудительно выполняет повторную проверку подлинности при следующем запросе сеанса.

Значение по умолчанию — false.
enabled Обязательный логический атрибут.

Указывает, включена ли проверка подлинности Windows.

Значение по умолчанию — false.
useKernelMode Необязательный атрибут типа Boolean .

Указывает, выполняется ли проверка подлинности Windows в режиме ядра. Значение True указывает, что проверка подлинности Windows использует режим ядра.

Проверка подлинности в режиме ядра может повысить производительность проверки подлинности и предотвратить проблемы с проверкой подлинности в пулах приложений, настроенных для использования пользовательского удостоверения.

Рекомендуется не отключать этот параметр, если используется проверка подлинности Kerberos и имеется настраиваемое удостоверение в пуле приложений.

Значение по умолчанию — true.

Дочерние элементы

Элемент Описание
extendedProtection Необязательный элемент.

Задает параметры расширенной защиты для проверка подлинности Windows.

Примечание: Этот элемент был добавлен в IIS 7.5.
providers Необязательный элемент.

Указывает поставщики поддержки безопасности, используемые для проверка подлинности Windows.

Образец конфигурации

Следующий элемент по умолчанию <windowsAuthentication> настраивается в корневом файле ApplicationHost.config в IIS 7.0 и по умолчанию отключает проверка подлинности Windows. Он также определяет два поставщика проверка подлинности Windows для IIS 7.0.

<windowsAuthentication enabled="false">
   <providers>
      <add value="Negotiate" />
      <add value="NTLM" />
   </providers>
</windowsAuthentication>

В следующем примере включается проверка подлинности Windows и отключается анонимная проверка подлинности для веб-сайта Contoso.

<location path="Contoso">
   <system.webServer>
      <security>
         <authentication>
            <anonymousAuthentication enabled="false" />
            <windowsAuthentication enabled="true" />
         </authentication>
      </security>
   </system.webServer>
</location>

Пример кода

В следующих примерах отключается анонимная проверка подлинности для сайта Contoso, а затем включается проверка подлинности Windows для сайта.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /enabled:"False" /commit:apphost

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/windowsAuthentication /enabled:"True" /commit:apphost

Примечание

При использовании AppCmd.exe для настройки этих параметров для параметра apphostфиксации необходимо задать значение . Это зафиксирует параметры конфигурации в соответствующем разделе расположения в файле ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {

   private static void Main() {

      using(ServerManager serverManager = new ServerManager()) { 
         Configuration config = serverManager.GetApplicationHostConfiguration();

         ConfigurationSection anonymousAuthenticationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso");
         anonymousAuthenticationSection["enabled"] = false;

         ConfigurationSection windowsAuthenticationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso");
         windowsAuthenticationSection["enabled"] = true;

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration

      Dim anonymousAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso")
      anonymousAuthenticationSection("enabled") = False

      Dim windowsAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso")
      windowsAuthenticationSection("enabled") = True

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
anonymousAuthenticationSection.Properties.Item("enabled").Value = false;

var windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
windowsAuthenticationSection.Properties.Item("enabled").Value = true;

adminManager.CommitChanges();

VBScript

Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
anonymousAuthenticationSection.Properties.Item("enabled").Value = False

Set windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
windowsAuthenticationSection.Properties.Item("enabled").Value = True

adminManager.CommitChanges()