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


Проверка подлинности <clientCertificateMappingAuthentication для сопоставления сертификатов клиента>

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

<clientCertificateMappingAuthentication> <authentication> элемент элемента указывает, включено ли сопоставление сертификатов клиента с помощью Active Directory для служб IIS 7.

Примечание

Проверка подлинности с сопоставлением сертификатов клиента с помощью Active Directory отличается от проверки подлинности сопоставления сертификатов клиента с помощью IIS следующими способами:

  • Проверка подлинности на основе сопоставления сертификатов клиента с помощью Active Directory . Этот метод проверки подлинности требует, чтобы сервер IIS 7 был членом домена Active Directory, а учетные записи пользователей хранились в Active Directory. Этот метод проверки подлинности на основе сертификата клиента снизил производительность из-за кругового пути к серверу Active Directory.
  • Проверка подлинности на основе сопоставления сертификатов клиента IIS — этот метод проверки подлинности не требует Active Directory и поэтому работает с автономными серверами. Этот метод проверки подлинности на основе сертификата клиента повышает производительность, но требует дополнительной настройки и требует доступа к сертификатам клиента для создания сопоставлений.

Дополнительные сведения см. в статье Настройка проверки подлинности в IIS 7.0 на веб-сайте Microsoft TechNet.

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

Версия Примечания
IIS 10.0 Элемент <clientCertificateMappingAuthentication> не был изменен в IIS 10.0.
IIS 8,5 Элемент <clientCertificateMappingAuthentication> не был изменен в IIS 8.5.
IIS 8,0 Элемент <clientCertificateMappingAuthentication> не был изменен в IIS 8.0.
IIS 7,5 Элемент <clientCertificateMappingAuthentication> не был изменен в IIS 7.5.
IIS 7.0 Элемент <clientCertificateMappingAuthentication> элемента появился <authentication> в IIS 7.0.
IIS 6,0 Н/Д

Настройка

Элемент <clientCertificateMappingAuthentication> недоступен в стандартной установке 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, выберите Проверка подлинности на основе сопоставления сертификатов клиента и нажмите кнопку ОК.
    Снимок экрана: развернутая область служб 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. На странице Проверка подлинности нажмите кнопку Включить в области Действия .
    Изображение панели действий на странице проверки подлинности с выделенным параметром проверки подлинности сертификата клиента Active Directory.

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

Атрибуты

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

Указывает, включена ли проверка подлинности сопоставления сертификатов клиента с помощью Active Directory. Чтобы этот параметр войл в силу, необходимо задать этот атрибут с помощью диспетчера IIS. Если для задания этого атрибута используется какой-либо другой метод, необходимо перезапустить веб-сервер, чтобы параметр вступил в силу.

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

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

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

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

Следующий пример конфигурации включает проверку подлинности на основе сопоставления сертификатов клиента с помощью Active Directory для веб-сайта по умолчанию и настраивает для сайта требование SSL и согласование сертификатов клиента.

<location path="Default Web Site">
   <system.webServer>
      <security>
         <access sslFlags="Ssl, SslNegotiateCert" />
          <authentication>
            <windowsAuthentication enabled="false" />
            <anonymousAuthentication enabled="false" />
            <digestAuthentication enabled="false" />
            <basicAuthentication enabled="false" />
            <clientCertificateMappingAuthentication enabled="true" />
         </authentication>
     </security>
   </system.webServer>
</location>

Пример кода

В следующих примерах кода включается проверка подлинности на основе сопоставления сертификатов клиента с помощью Active Directory для веб-сайта по умолчанию, а также настраивается для сайта требование SSL и согласование сертификатов клиента.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/security/authentication/clientCertificateMappingAuthentication /enabled:"True" /commit:apphost

appcmd.exe set config "Default Web Site" -section:system.webServer/security/access /sslFlags:"Ssl, SslNegotiateCert" /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 clientCertificateMappingAuthenticationSection = config.GetSection("system.webServer/security/authentication/clientCertificateMappingAuthentication", "Default Web Site");
         clientCertificateMappingAuthenticationSection["enabled"] = true;

         ConfigurationSection accessSection = config.GetSection("system.webServer/security/access", "Default Web Site");
         accessSection["sslFlags"] = @"Ssl, SslNegotiateCert";

         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 clientCertificateMappingAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/clientCertificateMappingAuthentication", "Default Web Site")
      clientCertificateMappingAuthenticationSection("enabled") = True

      Dim accessSection As ConfigurationSection = config.GetSection("system.webServer/security/access", "Default Web Site")
      accessSection("sslFlags") = "Ssl, SslNegotiateCert"

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

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

var clientCertificateMappingAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/clientCertificateMappingAuthentication", "MACHINE/WEBROOT/APPHOST/Default Web Site");
clientCertificateMappingAuthenticationSection.Properties.Item("enabled").Value = true;

var accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Default Web Site");
accessSection.Properties.Item("sslFlags").Value = "Ssl, SslNegotiateCert";

adminManager.CommitChanges();

VBScript

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

Set clientCertificateMappingAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/clientCertificateMappingAuthentication", "MACHINE/WEBROOT/APPHOST/Default Web Site")
clientCertificateMappingAuthenticationSection.Properties.Item("enabled").Value = True

Set accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Default Web Site")
accessSection.Properties.Item("sslFlags").Value = "Ssl, SslNegotiateCert"

adminManager.CommitChanges()