Чтобы настроить аутентификацию по сертификатам, последовательно выполните настройки:
Настройка сервисных пользователей
1. | Установите программу Setspn на компьютер в домене, с которого планируется настраивать имена SPN. Утилиту можно бесплатно скачать с сайта компании Microsoft. |
2. | На контроллере домена запустите оснастку «Active Directory – Пользователи и компьютеры». |
3. | Проверьте список имен SPN, назначенных учетной записи пользователя. Выполните команду для получения токена пользователя: |
setspn –R User
где User – учетная запись, от имени которой работает пул приложений и запускаются процессы SBRte.
4. | Чтобы передать токен пользователя на SQL-сервер DIRECTUM, укажите имя SPN для SQL-сервера: |
a) | Определите порт SQL-сервера: |
• | Запустите оснастку SQL Server Configuration Manager и последовательно выберите Сетевая конфигурация SQL Server, Протоколы для <Имя экземпляра>. |
• | В списке выберите протокол TCP/IP. Откроется окно свойств протокола TCP/IP. |
• | На вкладке «IP-адреса» проверьте наличие динамического порта TCP. По умолчанию SQL-сервер работает через порт 1433. В некоторых случаях, например, если на сервере используется несколько экземпляров SQL-сервера, номер порта может отличаться от стандартного. |
b) | Зарегистрируйте имя SPN для SQL-сервера: |
• | если SQL-сервер работает от имени служебной учетной записи «Локальная система», то выполните команды: |
setspn -R SQLServerName
setspn -S MSSQLSvc/SQLServerName.domain.local:<порт, по которому работает SQL-сервер> SQLServerName
setspn -S MSSQLSvc/SQLServerName.domain.local SQLServerName
где
domain.local – DNS-суффикс домена;
SQLServerName – имя SQL-сервера;
• | если SQL-сервер работает от имени доменной учетной записи, то выполните команды: |
setspn -R HOST/SQLAdmin SQLAdmin
setspn -S MSSQLSvc/SQLServerName.domain.local:<порт, по которому работает SQL-сервер> SQLAdmin
setspn -S MSSQLSvc/SQLServerName.domain.local SQLAdmin
где SQLAdmin – учетная запись, от имени которой работает служба SQL-сервера.
Примечание
Добавлять и удалять имена SPN может только администратор домена. Просматривать список зарегистрированных имен SPN может любой доменный пользователь.
Настройка пользователя для работы с веб-сервисом интеграции
1. | Сгенерируйте сертификат, который будет использоваться для аутентификации пользователя. |
2. | Запустите оснастку «Active Directory – Пользователи и компьютеры». |
3. | С помощью контекстного меню на имени пользователя установите привязку сертификата X.509: |
1. | Запустите оснастку «Диспетчер служб IIS». |
2. | Для сайта нажмите на кнопку Редактор конфигураций и выберите раздел clientCertificateMappingAuthentication: |
3. | Установите для него значение True. |
4. | Для сайта нажмите на кнопку Параметры SSL, установите флажок Требовать SSL и переключатель Принимать. |
Настройка веб-сервиса интеграции
Задайте настройки веб-сервиса в файле Web.config:
1. | В секции system.serviceModel в качестве имени привязки укажите BasicCertificateEndpointBinding, режима безопасности, определяющего параметры для привязки, – Transport, типа передачи клиентских реквизитов – Certificate: |
<binding name="BasicCertificateEndpointBinding"
maxBufferPoolSize="2147483647"
maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<readerQuotas maxArrayLength="2147483647"
maxStringContentLength="2147483647"
maxBytesPerRead="2147483647"
maxDepth="2147483647"
maxNameTableCharCount="2147483647" />
<security mode="Transport">
<transport clientCredentialType="Certificate" />
</security>
</binding>
2. | В настройках поведения сервиса установите параметр mapClientCertificateToWindowsAccount: |
<serviceBehaviors>
<behavior name="NpoComputer.IntegrationServices.IntegrationServices.WebServicesBehavior">
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceSecurityAudit auditLogLocation="Application" serviceAuthorizationAuditLevel="Failure" messageAuthenticationAuditLevel="Failure" />
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceCredentials>
<clientCertificate>
<authentication certificateValidationMode="None" revocationMode="NoCheck" mapClientCertificateToWindowsAccount="true" />
</clientCertificate>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="NpoComputer.IntegrationServices.Management.AuthValidate, NpoComputer.IntegrationServices" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
3. | В настройках точек подключения установите созданную конфигурацию привязки BasicCertificateEndpointBinding: |
<endpoint address="datacontract" binding="basicHttpBinding"
bindingConfiguration="BasicCertificateEndpointBinding"
name="WebServicesComplex"
bindingNamespace="http://docs.npo-comp.ru/IntegrationServices/5.3/"
contract="NpoComputer.IntegrationServices.IWebServiceDataContract" />
© Компания DIRECTUM, 2018 | Сообщество пользователей DIRECTUM |