Копировать ссылку на страницу Перейти в предыдущий раздел Перейти в следующий раздел

Чтобы настроить аутентификацию по сертификатам, последовательно выполните настройки:

1.Настройка сервисных пользователей
2.Настройка пользователя для работы с веб-сервисом интеграции
3.Настройка IIS
4.Настройка веб-сервиса интеграции

Настройка сервисных пользователей

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 может любой доменный пользователь.

5.Настройте доверие служб Kerberos.

Настройка пользователя для работы с веб-сервисом интеграции

1.Сгенерируйте сертификат, который будет использоваться для аутентификации пользователя.
2.Запустите оснастку «Active Directory – Пользователи и компьютеры».
3.С помощью контекстного меню на имени пользователя установите привязку сертификата X.509:

Настройка IIS

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
.navbar > a:hover { background: #FFD73B; }