Показать содержание 

Администрирование и контроль доступа > Настройка политики безопасности системы > Создание учетных записей пользователей и работа с ними > Подключение доменного пользователя > Механизм работы со службами каталогов

В этой статье:

Раздел MultiDomain

Дополнительные контроллеры домена

Настройки домена или поддомена

Учётные данные для подключения к серверу службы каталогов

Механизм работы со службами каталогов

При формировании подсистемы безопасности репозитория в менеджере безопасности создаются пользователи и группы. Если предполагается вход в репозитории с использованием доменной/интегрированной доменной аутентификации, то в менеджере безопасности добавьте доменных пользователей или группы после настройки файла settings.xml.

«Форсайт. Аналитическая платформа» получает информацию о доменных субъектах безопасности из службы каталогов домена или глобального каталога, которые должны быть настроены в компьютерной сети. Взаимодействие со службой каталогов осуществляется по протоколу LDAP/LDAPS.

Если служба каталогов текущего домена (глобального каталога текущей сети) сформирована на базе Active Directory и работа с «Форсайт. Аналитическая платформа» осуществляется в ОС Windows, то для подключения к данной службе не требуются дополнительные настройки.

Если служба каталогов расположена на сервере с ОС Linux или необходимо подключиться к службе каталогов не текущей, а какой-либо другой сети (сервер с ОС Linux или Windows), то выполните следующие действия в зависимости от операционной системы:

  1. Установите недостающие пакеты в зависимости от версии ОС Linux:

    • Debian-подобные дистрибутивы:

sudo apt install libldap-2.4-2 libsasl2-modules-gssapi-mit
    • RedHat-подобные дистрибутивы:

sudo yum install openldap openldap-clients
    • ALT Linux:

sudo apt-get install openldap-common
  1. Добавьте информацию о службе каталогов в файле /etc/ldap/ldap.conf для Debian-подобных и RedHat-подобных дистрибутивах, /etc/openldap/ldap.conf для ALT Linux:

BASE dc=...,dc=...	
URI ldap[s]://<IP-адрес или доменное имя сервера>:<порт>

Где:

    • BASE. Компоненты домена. Всю необходимую информацию можно получить у администратора сети, в которой расположен сервер;

    • URI. Адрес сервера службы каталогов. Схема ldap указывается, если работа сервера настроена по протоколу TCP, и ldaps, если используется TLS/SSL. В качестве порта обычно указывается: 389 для ldap, 636 для ldaps. Для работы с поддоменами через основной контроллер домена указывается порт 3268 (глобальный каталог).

  1. Задайте параметры сопоставления атрибутов службы каталогов и атрибутов субъектов безопасности «Форсайт. Аналитическая платформа», укажите учётные данные для подключения к службе каталогов в файле settings.xml. При необходимости для доменов или поддоменов подключите дополнительные контроллеры.

  1. Скачайте и запустите инсталлятор OpenSSL. По умолчанию OpenSSL устанавливается в папку C:\Program Files\OpenSSL-Win64.

  2. Добавьте в системную переменную PATH путь до папки bin - C:\Program Files\OpenSSL-Win64\bin.

  3. Задайте параметры сопоставления атрибутов службы каталогов и атрибутов субъектов безопасности «Форсайт. Аналитическая платформа», укажите учётные данные для подключения к службе каталогов в файле settings.xml. При необходимости для основного контроллера домена или поддоменов подключите дополнительные контроллеры.

  4. Задайте настройки, управляющие работой в текущей сети и определяющие параметры подключения к различным доменам в конфигурационных файлах OpenLDAP и Kerberos. Настройка осуществляется в соответствии с документацией OpenLDAP и Kerberos. Задаваемые настройки должны учитывать параметры работы текущей компьютерной сети и должны быть скоординированы с администратором сети.

Если предполагается аутентификация по протоколу GSSAPI на серверах LDAP и PostgreSQL, то дополнительно установите «MIT Kerberos for Windows 4.1» (разрядность должна совпадать с разрядностью используемой версии «Форсайт. Аналитическая платформа»).

Примеры файла settings.xml для службы каталогов Active Directory в зависимости от типа ОС, на базе которой работает «Форсайт. Аналитическая платформа»:

<Configuration>
  <Root>
    <Key Name="PP">
      <BIS>
        <Key Name="System">
          <MultiDomain>
            <Key Name="наименование домена 1" Proto="LDAP" url="ldap[s]://IP-адрес или доменное имя сервера:порт" base="dc=...,dc=..." libldap="libldap-2.4.so.2" liblber="liblber-2.4.so.2">
              <controllers>
                <Key Name="наименование контроллера 1" url="ldap[s]://IP-адрес или доменное имя сервера:порт" />
                <Key Name="наименование контроллера 2" url="ldap[s]://IP-адрес или доменное имя сервера:порт" />
              </controllers>
              <user filter="(&amp;(objectClass=user)(sAMAccountType=805306368))" groupsFilter="(&amp;(member=%1)(objectClass=group)(sAMAccountType=268435456))">
                <Key Name="a0" filter="user" ldap="objectClass"/>
                <Key Name="a1" map_to="DistinguishedName" ldap="distinguishedName" get_full_domain="1"/>
                <Key Name="a2" map_to="Name" ldap="sAMAccountName" make_upn="1"/>
                <Key Name="a3" map_to="Sid" ldap="objectSid"/>
                <Key Name="a4" map_to="DisplayName" ldap="cn"/>
                <Key Name="a5" map_to="Descr" ldap="displayName"/>
                <Key Name="a6" map_to="LookupName" ldap="sAMAccountName"/>
                <Key Name="a7" map_to="LookupName" ldap="userPrincipalName"/>
                <Key Name="a8" map_to="LookupName" ldap="displayName"/>
                <Key Name="a9" map_to="LookupName" ldap="cn"/>
              </user>
              <group filter="(&amp;(objectClass=group)(sAMAccountType=268435456))">
                <Key Name="a0" filter="group" ldap="objectClass"/>
                <Key Name="a1" map_to="DistinguishedName" ldap="distinguishedName" get_full_domain="1"/>
                <Key Name="a2" map_to="Name" ldap="sAMAccountName"/>
                <Key Name="a3" map_to="Sid" ldap="objectSid"/>
                <Key Name="a4" map_to="DisplayName" ldap="cn"/>
                <Key Name="a5" map_to="Descr" ldap="description"/>
                <Key Name="a6" map_to="LookupName" ldap="sAMAccountName"/>
                <Key Name="a7" map_to="LookupName" ldap="description"/>
              </group>
              <credentials realm="" Crs="..." Crsa="..." mechanism="GSSAPI"/>
            </Key>
            <Key Name="наименование поддомена 1" url="ldap[s]://IP-адрес или доменное имя сервера:порт" base="dc=...,dc=...">
              <controllers>
                <Key Name="наименование контроллера 1" url="ldap[s]://IP-адрес или доменное имя сервера:порт" />
                <Key Name="наименование контроллера 2" url="ldap[s]://IP-адрес или доменное имя сервера:порт" />
              </controllers>
              <user filter="(&amp;(objectClass=user)(sAMAccountType=805306368))" groupsFilter="(&amp;(member=%1)(objectClass=group)(sAMAccountType=268435456))">
                ...
              </user>
              <group filter="(&amp;(objectClass=group)(sAMAccountType=268435456))">
                ...
              </group>
              <credentials realm="" Crs="..." Crsa="..." mechanism="GSSAPI"/>
            </Key>
            <Key Name="наименование поддомена 2" url="ldap[s]://IP-адрес или доменное имя сервера:порт" base="dc=...,dc=...">
              <controllers>
                <Key Name="наименование контроллера 1" url="ldap[s]://IP-адрес или доменное имя сервера:порт" />
                <Key Name="наименование контроллера 2" url="ldap[s]://IP-адрес или доменное имя сервера:порт" />
              </controllers>
              <user filter="(&amp;(objectClass=user)(sAMAccountType=805306368))" groupsFilter="(&amp;(member=%1)(objectClass=group)(sAMAccountType=268435456))">
                ...
              </user>
              <group filter="(&amp;(objectClass=group)(sAMAccountType=268435456))">
                ...
              </group>
              <credentials realm="" Crs="..." Crsa="..." mechanism="GSSAPI"/>
            </Key>
            <Key Name="наименование домена 2" Proto="LDAP" url="ldap[s]://IP-адрес или доменное имя сервера:порт" base="dc=...,dc=..." libldap="libldap-2.4.so.2" liblber="liblber-2.4.so.2">
              ...
            </Key>
          </MultiDomain>
          <Gssapi libgssapi="libgssapi_krb5.so.2" libkrb5="libkrb5.so.3"/>
        </Key>
      </BIS>
    </Key>
  </Root>
</Configuration>
<Configuration>
  <Root>
    <Key Name="PP">
      <BIS>
        <Key Name="System">
          <MultiDomain>
            <Key Name="наименование домена 1" Proto="LDAP" url="ldap[s]://IP-адрес или доменное имя сервера:порт" base="dc=...,dc=..." libldap="libldap.dll" liblber="libldap.dll">
              <controllers>
                <Key Name="наименование контроллера 1" url="ldap[s]://IP-адрес или доменное имя сервера:порт" />
                <Key Name="наименование контроллера 2" url="ldap[s]://IP-адрес или доменное имя сервера:порт" />
              </controllers>
              <user filter="(&amp;(objectClass=user)(sAMAccountType=805306368))" groupsFilter="(&amp;(member=%1)(objectClass=group)(sAMAccountType=268435456))">
                <Key Name="a0" filter="user" ldap="objectClass"/>
                <Key Name="a1" map_to="DistinguishedName" ldap="distinguishedName" get_full_domain="1"/>
                <Key Name="a2" map_to="Name" ldap="sAMAccountName" make_upn="1"/>
                <Key Name="a3" map_to="Sid" ldap="objectSid"/>
                <Key Name="a4" map_to="DisplayName" ldap="cn"/>
                <Key Name="a5" map_to="Descr" ldap="displayName"/>
                <Key Name="a6" map_to="LookupName" ldap="sAMAccountName"/>
                <Key Name="a7" map_to="LookupName" ldap="userPrincipalName"/>
                <Key Name="a8" map_to="LookupName" ldap="displayName"/>
                <Key Name="a9" map_to="LookupName" ldap="cn"/>
              </user>
              <group filter="(&amp;(objectClass=group)(sAMAccountType=268435456))">
                <Key Name="a0" filter="group" ldap="objectClass"/>
                <Key Name="a1" map_to="DistinguishedName" ldap="distinguishedName" get_full_domain="1"/>
                <Key Name="a2" map_to="Name" ldap="sAMAccountName"/>
                <Key Name="a3" map_to="Sid" ldap="objectSid"/>
                <Key Name="a4" map_to="DisplayName" ldap="cn"/>
                <Key Name="a5" map_to="Descr" ldap="description"/>
                <Key Name="a6" map_to="LookupName" ldap="sAMAccountName"/>
                <Key Name="a7" map_to="LookupName" ldap="description"/>
              </group>
              <credentials realm="" Crs="..." Crsa="..." mechanism="GSSAPI"/>
            </Key>
            <Key Name="наименование поддомена 1" url="ldap[s]://IP-адрес или доменное имя сервера:порт" base="dc=...,dc=...">
              <controllers>
                <Key Name="наименование контроллера 1" url="ldap[s]://IP-адрес или доменное имя сервера:порт" />
                <Key Name="наименование контроллера 2" url="ldap[s]://IP-адрес или доменное имя сервера:порт" />
              </controllers>
              <user filter="(&amp;(objectClass=user)(sAMAccountType=805306368))" groupsFilter="(&amp;(member=%1)(objectClass=group)(sAMAccountType=268435456))">
                ...
              </user>
              <group filter="(&amp;(objectClass=group)(sAMAccountType=268435456))">
                ...
              </group>
              <credentials realm="" Crs="..." Crsa="..." mechanism="GSSAPI"/>
            </Key>
            <Key Name="наименование поддомена 2" url="ldap[s]://IP-адрес или доменное имя сервера:порт" base="dc=...,dc=...">
              <controllers>
                <Key Name="наименование контроллера 1" url="ldap[s]://IP-адрес или доменное имя сервера:порт" />
                <Key Name="наименование контроллера 2" url="ldap[s]://IP-адрес или доменное имя сервера:порт" />
              </controllers>
              <user filter="(&amp;(objectClass=user)(sAMAccountType=805306368))" groupsFilter="(&amp;(member=%1)(objectClass=group)(sAMAccountType=268435456))">
                ...
              </user>
              <group filter="(&amp;(objectClass=group)(sAMAccountType=268435456))">
                ...
              </group>
              <credentials realm="" Crs="..." Crsa="..." mechanism="GSSAPI"/>
            </Key>
            <Key Name="наименование домена 2" Proto="LDAP" url="ldap[s]://IP-адрес или доменное имя сервера:порт" base="dc=...,dc=..." libldap="libldap.dll" liblber="libldap.dll">
              ...
            </Key>
          </MultiDomain>
          <Gssapi libgssapi_32="gssapi32.dll" libgssapi_64="gssapi64.dll" libkrb5_32="krb5_32.dll" libkrb5_64="krb5_64.dll"/>
        </Key>
      </BIS>
    </Key>
  </Root>
</Configuration>

Раздел MultiDomain

В разделе MultiDomain содержатся настройки доменов и поддоменов. Для доменов и поддоменов доступно подключение дополнительных контроллеров домена. Параметры подключения к доменам и поддоменам указываются в дочерних элементах Key.

Если в именах пользователей не содержится имя домена, то при настройке мультидоменной аутентификации предварительно переподключите пользователей в текущем репозитории.

Примечание. Указание нескольких независимых доменов поддерживается только при использовании встроенной авторизации. Если встроенная авторизация не используется, то рекомендуется указывать один домен во избежание некорректной работы, например, при использовании групп с одинаковыми именами в разных доменах.

Особенности использования атрибутов в элементе Key:

При настройке прав доступа и распределении привилегий доменным пользователям через группы учитывайте следующие особенности:

Важно. Значения атрибутов Proto, libldap и liblber, учитываются только в первом указанном элементе Key. Остальные настройки доменов и поддоменов должны соответствовать одному и тому же значению атрибута Proto.

Примечание. Атрибут может быть задан только в одном из файлов: ldap.conf или settings.xml. По умолчанию ldap.conf содержится в папке: /etc/ldap в Debian-подобных дистрибутивах, /etc/openldap в RedHat-подобных дистрибутивах и ALT Linux, C:\OpenLDAP в ОС Windows.

Дополнительные контроллеры домена

Дополнительные контроллеры домена используются в качестве альтернативных, если основной контроллер домена или поддомен недоступны после трёх попыток подключения к ним. При разрыве соединения с одним контроллером и переключении на другой контроллер активная сессия пользователя сохраняется.

Список дополнительных контроллеров домена задаётся в разделе controllers с элементами Key в родительском элементе Key, который соответствует заданному основному контроллеру домена или поддомену. Допустимые атрибуты раздела Key:

Пример раздела controllers:

<controllers>
  <Key Name="наименование контроллера 1" url="ldap[s]://IP-адрес или доменное имя сервера:порт" />
  <Key Name="наименование контроллера 2" url="ldap[s]://IP-адрес или доменное имя сервера:порт" />
</controllers>

Настройки домена или поддомена

В каждом домене или поддомене могут содержаться разделы user и group, в которых определены элементы Key.

Особенности использования атрибутов в элементе Key:

Примечание. При использовании значения «Name» с атрибутом make_upn, «DistinguishedName» должен быть задан с атрибутом get_full_domain.

Если атрибут map_to принимает значение «Name» и атрибут ldap принимает значение «sAMAccountName», то к значению, полученному из LDAP-каталога, всегда добавляется имя домена: DOMAIN\ATTRVALUE;

Примечание. Для ldap-атрибута должен быть указан хотя бы один атрибут map_to со значением «LookupName».

При указании способа формирования наименования субъекта «Name» убедитесь, что выполняются следующие условия для имён субъектов:

Субъекты с невалидными именами пропускаются и в лог выводится одна из следующих ошибок:

Если были пропущены все субъекты, то перепроверьте настройки атрибута map_to.

Учётные данные для подключения к серверу службы каталогов

В каждом домене или поддомене должен содержаться элемент credentials с атрибутами:

Совет. В целях безопасности рекомендуется использовать учётные данные в зашифрованном виде. Если указаны обе пары атрибутов Crs/Crsa и username/password, то наибольший приоритет у атрибутов Crs/Crsa.

Примечание. Убедитесь, что используемый механизм поддерживается сервером службы каталогов.

См. также:

Создание учетных записей пользователей и работа с ними | Подключение доменного пользователя | Подключение доменной группы