Поделиться через


Дайджест-проверка подлинностиAuthentication <>

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

Элемент <digestAuthentication> содержит параметры конфигурации для модуля дайджест-проверки подлинности служб IIS 7. Этот элемент настраивается для включения или отключения дайджест-проверки подлинности. При необходимости можно указать область дайджест-проверки подлинности.

Дайджест-проверка подлинности не так широко используется, как обычная проверка подлинности, но имеет ряд явных преимуществ по сравнению с обычной проверкой подлинности или проверка подлинности Windows. Основной недостаток использования обычной проверки подлинности при использовании незашифрованных средств связи заключается в том, что имя пользователя и пароль клиента отправляются в виде обычного текстового сообщения в кодировке Base-64, что позволяет злоумышленнику легко подслушивать обмен данными и получать имя пользователя и пароль. проверка подлинности Windows решает эту проблему с помощью различных параметров безопасности, но проверка подлинности Windows обычно не работает в интернет-среде.

Дайджест-проверка подлинности устраняет оба указанных выше ограничения следующими средствами:

  • В отличие от схемы с открытым текстом, используемой обычной проверкой подлинности, дайджест-проверка подлинности отправляет хэш сведений клиента по каналу связи, поэтому имя пользователя и пароль клиента никогда не отправляются по сети.
  • Дайджест-проверка подлинности хорошо работает через Интернет, что делает дайджест-проверку подлинности лучше подходит для этой среды, чем проверка подлинности Windows.

Примечание

Дайджест-проверка подлинности защищает только имя пользователя и пароль клиента. Текст http-связи по-прежнему находится в виде открытого текста. Чтобы защитить текст обмена данными, следует использовать протокол SSL.

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

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

Настройка

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

Чтобы установить службу роли дайджест-проверки подлинности, выполните следующие действия.

Windows Server 2012 или Windows Server 2012 R2

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

Windows 8 или Windows 8.1

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

Windows Server 2008 или Windows Server 2008 R2

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

Windows Vista или Windows 7

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

Инструкции

Включение дайджест-проверки подлинности и отключение анонимной проверки подлинности

  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. В области Подключения разверните имя сервера, сайты, а затем щелкните сайт, приложение или веб-службу, для которых требуется включить обычную проверку подлинности.

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

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

  5. В области Проверка подлинности выберите Анонимная проверка подлинности, а затем нажмите кнопку Отключить в области Действия .
    Изображение области проверки подлинности с выделенным параметром

Конфигурация

Элемент <digestAuthentication> можно настроить на уровне сайта, приложения, виртуального каталога и URL-адреса. После установки службы ролей IIS 7 фиксирует следующие параметры конфигурации в файле ApplicationHost.config.

<digestAuthentication enabled='false' />

Атрибуты

Атрибут Описание
enabled Дополнительный логический атрибут.

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

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

Указывает область для дайджест-проверки подлинности.

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

Отсутствует.

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

Следующий пример конфигурации включает дайджест-проверку подлинности для веб-сайта, веб-приложения или веб-службы. По умолчанию эти параметры должны быть включены в файл ApplicationHost.config, и их необходимо включить в <location> элемент и использовать атрибут path для определения веб-сайта или приложения, к которому вы хотите применить параметры проверки подлинности.

<security>
   <authentication>
      <anonymousAuthentication enabled="false" />
      <digestAuthentication enabled="true" />
   </authentication>
</security>

Пример кода

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

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/digestAuthentication /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 digestAuthenticationSection = config.GetSection("system.webServer/security/authentication/digestAuthentication", "Contoso");
         digestAuthenticationSection["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 digestAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/digestAuthentication", "Contoso")
      digestAuthenticationSection("enabled") = True

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

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

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

adminManager.CommitChanges();

VBScript

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

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

adminManager.CommitChanges()