Iis Client Certificate Mapping Authentication <iisClientCertificateMappingAuthentication>
Общие сведения
Элемент <iisClientCertificateMappingAuthentication>
<authentication>
элемента задает параметры проверки подлинности для сопоставления сертификатов клиента с помощью IIS.
Существует два разных метода сопоставления сертификатов клиента с помощью СЛУЖБ IIS.
- Сопоставления "один к одному " — эти сопоставления сопоставляют отдельные клиентские сертификаты с отдельными учетными записями пользователей на основе "один к одному"; каждый сертификат клиента сопоставляется с учетной записью пользователя.
- Сопоставления "многие к одному " — эти сопоставления сопоставляют несколько сертификатов с учетной записью пользователя на основе подполей в сертификатах клиента.
Примечание
Проверка подлинности на основе сопоставления сертификатов клиента с помощью IIS отличается от сопоставления сертификатов клиента с помощью Active Directory следующими способами:
- Проверка подлинности на основе сопоставления сертификатов клиента с помощью Active Directory . Этот метод проверки подлинности требует, чтобы сервер IIS 7 и клиентский компьютер были членами домена Active Directory, а учетные записи пользователей хранятся в Active Directory. Этот метод проверки подлинности на основе сопоставления сертификатов клиента снижает производительность из-за кругового пути к серверу Active Directory.
- Проверка подлинности на основе сопоставления сертификатов клиента IIS — этот метод проверки подлинности не требует Active Directory и поэтому работает с автономными серверами. Этот метод проверки подлинности на основе сопоставления сертификатов клиента повышает производительность, но для создания сопоставлений требует большей конфигурации и доступа к сертификатам клиента.
Дополнительные сведения см. в статье Настройка проверки подлинности в IIS 7.0 на веб-сайте Microsoft TechNet.
Совместимость
Версия | Примечания |
---|---|
IIS 10.0 | Элемент <iisClientCertificateMappingAuthentication> не был изменен в IIS 10.0. |
IIS 8,5 | Элемент <iisClientCertificateMappingAuthentication> не был изменен в IIS 8.5. |
IIS 8,0 | Элемент <iisClientCertificateMappingAuthentication> не был изменен в IIS 8.0. |
IIS 7,5 | Элемент <iisClientCertificateMappingAuthentication> не был изменен в IIS 7.5. |
IIS 7.0 | Элемент <iisClientCertificateMappingAuthentication> элемента появился <authentication> в IIS 7.0. |
IIS 6,0 | Элемент <iisClientCertificateMappingAuthentication> заменяет объект метабазы IIS 6.0 IIsCertMapper . |
Настройка
Элемент <iisClientCertificateMappingAuthentication>
недоступен в стандартной установке IIS 7 и более поздних версий. Чтобы установить его, выполните следующие действия.
Windows Server 2012 или Windows Server 2012 R2
- На панели задач щелкните Диспетчер сервера.
- В диспетчер сервера откройте меню Управление и выберите пункт Добавить роли и компоненты.
- В мастере добавления ролей и компонентов нажмите кнопку Далее. Выберите тип установки и нажмите кнопку Далее. Выберите целевой сервер и нажмите кнопку Далее.
- На странице Роли сервера разверните узел Веб-сервер (IIS),веб-сервер, безопасность, а затем выберите Проверка подлинности для сопоставления сертификатов клиента IIS. Щелкните Далее.
- На странице Выбор компонентов нажмите кнопку Далее.
- На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
- На странице Результаты нажмите кнопку Закрыть.
Windows 8 или Windows 8.1
- На начальном экране переместите указатель в левый нижний угол, щелкните правой кнопкой мыши кнопку Пуск и выберите пункт панель управления.
- В панель управления щелкните Программы и компоненты, а затем — Включить или выключить компоненты Windows.
- Разверните узлы Службы IIS, Службы Интернета, Безопасность, а затем выберите Проверка подлинности для сопоставления сертификатов клиента IIS.
- Нажмите кнопку ОК.
- Щелкните Закрыть.
Windows Server 2008 или Windows Server 2008 R2
- На панели задач нажмите кнопку Пуск, наведите указатель мыши на пункт Администрирование, а затем щелкните диспетчер сервера.
- В области иерархии диспетчер сервера разверните узел Роли, а затем щелкните Веб-сервер (IIS) .
- В области Веб-сервер (IIS) прокрутите страницу до раздела Службы ролей и щелкните Добавить службы ролей.
- На странице Выбор служб ролеймастера добавления служб ролей выберите Проверка подлинности на основе сертификата клиента IIS и нажмите кнопку Далее.
- На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
- На странице Результаты нажмите кнопку Закрыть.
Windows Vista или Windows 7
- На панели задач нажмите кнопку Пуск, а затем выберите пункт панель управления.
- В панель управления щелкните Программы и компоненты, а затем — Включить или отключить компоненты Windows.
- Разверните узел Службы IIS, выберите Iis Client Certificate Mapping Authentication (Проверка подлинности на основе сопоставления сертификатов клиента IIS) и нажмите кнопку ОК.
Инструкции
Отсутствует пользовательский интерфейс для настройки проверки подлинности на основе сопоставления сертификатов клиента IIS для IIS 7. Примеры программной настройки проверки подлинности на основе сопоставления сертификатов клиента IIS см. в разделе Примеры кода этого документа.
Конфигурация
Элемент <iisClientCertificateMappingAuthentication>
<authentication>
элемента можно настроить на уровне сервера и сайта.
Атрибуты
Атрибут | Описание | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
defaultLogonDomain |
Необязательный атрибут String. Указывает домен по умолчанию, используемый сервером для проверки подлинности пользователей. |
||||||||||
enabled |
Дополнительный логический атрибут. Указывает, включена ли проверка подлинности на основе сопоставления сертификатов клиента с помощью IIS. Значение по умолчанию — false . |
||||||||||
logonMethod |
Необязательный атрибут перечисления. Атрибут logonMethod может иметь одно из следующих возможных значений. (Дополнительные сведения об этих значениях см. в разделе LogonUser.) Значение по умолчанию — ClearText .
|
||||||||||
manyToOneCertificateMappingsEnabled |
Дополнительный логический атрибут. Указывает, включено ли сопоставление "многие к одному" Значение по умолчанию — true . |
||||||||||
oneToOneCertificateMappingsEnabled |
Дополнительный логический атрибут. Указывает, включено ли сопоставление "один к одному" Значение по умолчанию — true . |
Дочерние элементы
Элемент | Описание |
---|---|
manyToOneMappings |
Необязательный элемент. Сопоставляет клиентские сертификаты с набором условий с подстановочными знаками, которые проверяют подлинность сертификатов и назначают учетную запись пользователя. |
oneToOneMappings |
Необязательный элемент. Задает сопоставления сертификатов клиента "один к одному". |
Образец конфигурации
В следующем примере конфигурации выполняются следующие действия для веб-сайта по умолчанию:
- Включает проверку подлинности для сопоставления сертификатов клиента IIS с помощью сопоставления сертификатов "многие к одному".
- Создает правило сопоставления сертификатов "многие к одному" для учетной записи пользователя на основе поля организации в теме сертификата клиента, соответствующего Contoso.
- Настраивает для сайта требование SSL и согласование сертификатов клиента.
<location path="Default Web Site">
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="false" />
<anonymousAuthentication enabled="false" />
<digestAuthentication enabled="false" />
<basicAuthentication enabled="false" />
<iisClientCertificateMappingAuthentication enabled="true"
manyToOneCertificateMappingsEnabled="true">
<manyToOneMappings>
<add name="Contoso Employees"
enabled="true"
permissionMode="Allow"
userName="Username"
password="[enc:AesProvider:57686f6120447564652c2049495320526f636b73:enc]">
<rules>
<add certificateField="Subject"
certificateSubField="O"
matchCriteria="Contoso"
compareCaseSensitive="true" />
</rules>
</add>
</manyToOneMappings>
</iisClientCertificateMappingAuthentication>
</authentication>
<access sslFlags="Ssl, SslNegotiateCert" />
</security>
</system.webServer>
</location>
Следующий пример конфигурации включает проверку подлинности сопоставления сертификатов клиента IIS с использованием сопоставления сертификатов "один к одному" для веб-сайта по умолчанию, создает сопоставление сертификатов singe "один к одному" для учетной записи пользователя и настраивает сайт на требование 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" />
<iisClientCertificateMappingAuthentication enabled="true"
oneToOneCertificateMappingsEnabled="true">
<oneToOneMappings>
<add enabled="true"
userName="administrator"
password="[enc:57686f6120447564652c2049495320526f636b73:enc]"
certificate="Base64-Encoded-Certificate-Data" />
</oneToOneMappings>
</iisClientCertificateMappingAuthentication>
</authentication>
</security>
</system.webServer>
</location>
Получение строки в кодировке Base-64 из сертификата клиента
Примечание
Чтобы получить данные сертификата в кодировке Base-64 для всех примеров, приведенных в этом разделе, можно экспортировать сертификат, выполнив следующие действия.
Нажмите кнопку Пуск, а затем — Выполнить.
Введите MMC и нажмите кнопку ОК.
Когда откроется консоль управления (Майкрософт), щелкните Файл, а затем — Добавить и удалить оснастки.
В диалоговом окне Добавление и удаление оснасток :
- Выберите Сертификаты в списке доступных оснасток, а затем нажмите кнопку Добавить.
- Выберите управление сертификатами для моей учетной записи пользователя, а затем нажмите кнопку Готово.
- Чтобы закрыть диалоговое окно, нажмите кнопку ОК .
В консоли управления (Майкрософт) выполните следующие действия.
- Разверните узлы Сертификаты — текущий пользователь, Затем Личные и Сертификаты.
- В списке сертификатов щелкните правой кнопкой мыши сертификат, который требуется экспортировать, а затем выберите пункт Все задачи и экспорт.
При открытии мастера экспорта сертификатов :
- Щелкните Далее.
- Выберите Нет, не экспортировать закрытый ключ, а затем нажмите кнопку Далее.
- Выберите X.509 9 в кодировке Base-64 (. CER) для формата экспорта, а затем нажмите кнопку Далее.
- Сохраните сертификат на рабочем столе как MyCertificate.cer, а затем нажмите кнопку Далее.
- Нажмите кнопку Готово; Должно появиться диалоговое окно с сообщением об успешном выполнении экспорта.
Закройте консоль управления (MMC) Microsoft .
Откройте файл MyCertificate.cer , экспортируемый с помощью Блокнота Windows:
- Удалите "-----BEGIN CERTIFICATE-----" в начале текста.
- Удалите "-----END CERTIFICATE-----" в конце текста.
- Сцепить все строки в одну строку текста— это данные сертификата в кодировке Base-64, которые будут использоваться для всех примеров в этом разделе.
Пример кода
В следующих примерах кода выполняются следующие действия для веб-сайта по умолчанию:
- Включите проверку подлинности для сопоставления сертификатов клиента IIS с помощью сопоставления сертификатов "многие к одному".
- Создайте правило сопоставления сертификатов "многие к одному" для учетной записи пользователя на основе поля организации в теме сертификата клиента, соответствующего Contoso.
- Настройте сайт так, чтобы он требовал SSL и согласовывал сертификаты клиента.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/security/authentication/iisClientCertificateMappingAuthentication /enabled:"True" /manyToOneCertificateMappingsEnabled:"True" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/security/authentication/iisClientCertificateMappingAuthentication /+"manyToOneMappings.[name='Contoso Employees',enabled='True',permissionMode='Allow',userName='Username',password='Password']" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/security/authentication/iisClientCertificateMappingAuthentication /+"manyToOneMappings.[name='Contoso Employees'].rules.[certificateField='Subject',certificateSubField='O',matchCriteria='Contoso',compareCaseSensitive='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 iisClientCertificateMappingAuthenticationSection = config.GetSection("system.webServer/security/authentication/iisClientCertificateMappingAuthentication", "Default Web Site");
iisClientCertificateMappingAuthenticationSection["enabled"] = true;
iisClientCertificateMappingAuthenticationSection["manyToOneCertificateMappingsEnabled"] = true;
ConfigurationElementCollection manyToOneMappingsCollection = iisClientCertificateMappingAuthenticationSection.GetCollection("manyToOneMappings");
ConfigurationElement addElement = manyToOneMappingsCollection.CreateElement("add");
addElement["name"] = @"Contoso Employees";
addElement["enabled"] = true;
addElement["permissionMode"] = @"Allow";
addElement["userName"] = @"Username";
addElement["password"] = @"Password";
ConfigurationElementCollection rulesCollection = addElement.GetCollection("rules");
ConfigurationElement addElement1 = rulesCollection.CreateElement("add");
addElement1["certificateField"] = @"Subject";
addElement1["certificateSubField"] = @"O";
addElement1["matchCriteria"] = @"Contoso";
addElement1["compareCaseSensitive"] = true;
rulesCollection.Add(addElement1);
manyToOneMappingsCollection.Add(addElement);
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 iisClientCertificateMappingAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/iisClientCertificateMappingAuthentication", "Default Web Site")
iisClientCertificateMappingAuthenticationSection("enabled") = True
iisClientCertificateMappingAuthenticationSection("manyToOneCertificateMappingsEnabled") = True
Dim manyToOneMappingsCollection As ConfigurationElementCollection = iisClientCertificateMappingAuthenticationSection.GetCollection("manyToOneMappings")
Dim addElement As ConfigurationElement = manyToOneMappingsCollection.CreateElement("add")
addElement("name") = "Contoso Employees"
addElement("enabled") = True
addElement("permissionMode") = "Allow"
addElement("userName") = "Username"
addElement("password") = "Password"
Dim rulesCollection As ConfigurationElementCollection = addElement.GetCollection("rules")
Dim addElement1 As ConfigurationElement = rulesCollection.CreateElement("add")
addElement1("certificateField") = "Subject"
addElement1("certificateSubField") = "O"
addElement1("matchCriteria") = "Contoso"
addElement1("compareCaseSensitive") = True
rulesCollection.Add(addElement1)
manyToOneMappingsCollection.Add(addElement)
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 iisClientCertificateMappingAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/iisClientCertificateMappingAuthentication", "MACHINE/WEBROOT/APPHOST/Default Web Site");
iisClientCertificateMappingAuthenticationSection.Properties.Item("enabled").Value = true;
iisClientCertificateMappingAuthenticationSection.Properties.Item("manyToOneCertificateMappingsEnabled").Value = true;
var manyToOneMappingsCollection = iisClientCertificateMappingAuthenticationSection.ChildElements.Item("manyToOneMappings").Collection;
var addElement = manyToOneMappingsCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "Contoso Employees";
addElement.Properties.Item("enabled").Value = true;
addElement.Properties.Item("permissionMode").Value = "Allow";
addElement.Properties.Item("userName").Value = "Username";
addElement.Properties.Item("password").Value = "Password";
var rulesCollection = addElement.ChildElements.Item("rules").Collection;
var addElement1 = rulesCollection.CreateNewElement("add");
addElement1.Properties.Item("certificateField").Value = "Subject";
addElement1.Properties.Item("certificateSubField").Value = "O";
addElement1.Properties.Item("matchCriteria").Value = "Contoso";
addElement1.Properties.Item("compareCaseSensitive").Value = true;
rulesCollection.AddElement(addElement1);
manyToOneMappingsCollection.AddElement(addElement);
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 iisClientCertificateMappingAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/iisClientCertificateMappingAuthentication", "MACHINE/WEBROOT/APPHOST/Default Web Site")
iisClientCertificateMappingAuthenticationSection.Properties.Item("enabled").Value = True
iisClientCertificateMappingAuthenticationSection.Properties.Item("manyToOneCertificateMappingsEnabled").Value = True
Set manyToOneMappingsCollection = iisClientCertificateMappingAuthenticationSection.ChildElements.Item("manyToOneMappings").Collection
Set addElement = manyToOneMappingsCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "Contoso Employees"
addElement.Properties.Item("enabled").Value = True
addElement.Properties.Item("permissionMode").Value = "Allow"
addElement.Properties.Item("userName").Value = "Username"
addElement.Properties.Item("password").Value = "Password"
Set rulesCollection = addElement.ChildElements.Item("rules").Collection
Set addElement1 = rulesCollection.CreateNewElement("add")
addElement1.Properties.Item("certificateField").Value = "Subject"
addElement1.Properties.Item("certificateSubField").Value = "O"
addElement1.Properties.Item("matchCriteria").Value = "Contoso"
addElement1.Properties.Item("compareCaseSensitive").Value = True
rulesCollection.AddElement(addElement1)
manyToOneMappingsCollection.AddElement(addElement)
Set accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Default Web Site")
accessSection.Properties.Item("sslFlags").Value = "Ssl, SslNegotiateCert"
adminManager.CommitChanges()
В следующих примерах кода для веб-сайта по умолчанию используется проверка подлинности сопоставления сертификатов клиента IIS с использованием сопоставления сертификатов "один к одному" для учетной записи пользователя, а также настройка сайта на требование SSL и согласование клиентских сертификатов.
Примечание
Чтобы получить данные сертификата в кодировке Base-64 для приведенных ниже примеров кода, можно экспортировать сертификат, выполнив действия, описанные в разделе Сведения о конфигурации этого документа.
AppCmd.exe
Примечание
Из-за символов в строках сертификата, которые не могут быть проанализированы AppCmd.exe, не следует использовать AppCmd.exe для настройки сопоставлений сертификатов IIS "один к одному".
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 iisClientCertificateMappingAuthenticationSection = config.GetSection("system.webServer/security/authentication/iisClientCertificateMappingAuthentication", "Default Web Site");
iisClientCertificateMappingAuthenticationSection["enabled"] = true;
iisClientCertificateMappingAuthenticationSection["oneToOneCertificateMappingsEnabled"] = true;
ConfigurationElementCollection oneToOneMappingsCollection = iisClientCertificateMappingAuthenticationSection.GetCollection("oneToOneMappings");
ConfigurationElement addElement = oneToOneMappingsCollection.CreateElement("add");
addElement["enabled"] = true;
addElement["userName"] = @"Username";
addElement["password"] = @"Password";
addElement["certificate"] = @"Base-64-Encoded-Certificate-Data";
oneToOneMappingsCollection.Add(addElement);
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 iisClientCertificateMappingAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/iisClientCertificateMappingAuthentication", "Default Web Site")
iisClientCertificateMappingAuthenticationSection("enabled") = True
iisClientCertificateMappingAuthenticationSection("oneToOneCertificateMappingsEnabled") = True
Dim oneToOneMappingsCollection As ConfigurationElementCollection = iisClientCertificateMappingAuthenticationSection.GetCollection("oneToOneMappings")
Dim addElement As ConfigurationElement = oneToOneMappingsCollection.CreateElement("add")
addElement("enabled") = True
addElement("userName") = "Username"
addElement("password") = "Password"
addElement("certificate") = "Base-64-Encoded-Certificate-Data"
oneToOneMappingsCollection.Add(addElement)
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 iisClientCertificateMappingAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/iisClientCertificateMappingAuthentication", "MACHINE/WEBROOT/APPHOST/Default Web Site");
iisClientCertificateMappingAuthenticationSection.Properties.Item("enabled").Value = true;
iisClientCertificateMappingAuthenticationSection.Properties.Item("oneToOneCertificateMappingsEnabled").Value = true;
var oneToOneMappingsCollection = iisClientCertificateMappingAuthenticationSection.ChildElements.Item("oneToOneMappings").Collection;
var addElement = oneToOneMappingsCollection.CreateNewElement("add");
addElement.Properties.Item("enabled").Value = true;
addElement.Properties.Item("userName").Value = "Username";
addElement.Properties.Item("password").Value = "Password";
addElement.Properties.Item("certificate").Value = "Base-64-Encoded-Certificate-Data";
oneToOneMappingsCollection.AddElement(addElement);
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 iisClientCertificateMappingAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/iisClientCertificateMappingAuthentication", "MACHINE/WEBROOT/APPHOST/Default Web Site")
iisClientCertificateMappingAuthenticationSection.Properties.Item("enabled").Value = True
iisClientCertificateMappingAuthenticationSection.Properties.Item("oneToOneCertificateMappingsEnabled").Value = True
Set oneToOneMappingsCollection = iisClientCertificateMappingAuthenticationSection.ChildElements.Item("oneToOneMappings").Collection
Set addElement = oneToOneMappingsCollection.CreateNewElement("add")
addElement.Properties.Item("enabled").Value = True
addElement.Properties.Item("userName").Value = "Username"
addElement.Properties.Item("password").Value = "Password"
addElement.Properties.Item("certificate").Value = "Base-64-Encoded-Certificate-Data"
oneToOneMappingsCollection.AddElement(addElement)
Set accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Default Web Site")
accessSection.Properties.Item("sslFlags").Value = "Ssl, SslNegotiateCert"
adminManager.CommitChanges()
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по