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

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

«Форсайт. Аналитическая платформа» получает информацию о доменных субъектах безопасности из службы каталогов домена или глобального каталога, которые должны быть настроены в компьютерной сети. Механизм взаимодействия зависит от типа используемой службы каталогов и от операционной системы, которая установлена на сервере службы каталогов. Поддерживается работа с такими службами каталогов, как: Active Directory, OpenLDAP.

Примечание. Взаимодействие со службами каталогов осуществляется только по протоколу LDAP.

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

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

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

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

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

Примеры файла settings.xml в зависимости от типа ОС, на базе которой работает служба каталогов:

<Configuration>
  <Root>
    <Key Name="PP">
      <BIS>
        <Key Name="System">
          <Ldap Proto="LDAP" url="ldap://IP-адрес или доменное имя сервера:порт" base="dc=...,dc=..." libldap="libldap-2.4.so.2" liblber="liblber-2.4.so.2">
            <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_sam_account="1" 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" make_sam_account="1"/>
              <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"/>
          </Ldap>
          <Gssapi libgssapi="libgssapi_krb5.so.2" libkrb5="libkrb5.so.3"/>
        </Key>
      </BIS>
    </Key>
  </Root>
</Configuration>
<Configuration>
  <Root>
    <Key Name="PP">
      <BIS>
        <Key Name="System">
          <Ldap Proto="LDAP" url="ldap://IP-адрес или доменное имя сервера:порт" base="dc=...,dc=..." libldap="libldap.dll" liblber="liblber.dll" >
            <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_sam_account="1" 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" make_sam_account="1"/>
              <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"/>
          </Ldap>
          <Gssapi libgssapi_32="gssapi32.dll" libgssapi_64="gssapi64.dll" libkrb5_32="krb5_32.dll" libkrb5_64="krb5_64.dll"/>
        </Key>
      </BIS>
    </Key>
  </Root>
</Configuration>

Особенности использования атрибутов в разделах:

Ldap

Key

credentials

Подключение дополнительных контроллеров домена

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

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

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

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

Основной контроллер домена

Для подключения дополнительных контроллеров в основной контроллер домена:

  1. Создайте раздел controllers в разделе Ldap.

  2. Задайте список дополнительных контроллеров в разделе controllers.

Поддомены

Для подключения дополнительных контроллеров в поддоменах:

  1. Создайте раздел subdomains в разделе Ldap.

  2. Задайте список поддоменов в разделе subdomains с разделами Key. Допустимые атрибуты раздела Key:

  3. Создайте раздел controllers в соответствующем поддомене - разделе Key.

  4. Задайте список дополнительных контроллеров в разделе controllers.

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

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

См. также:

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