Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Gliffy Diagram
imageAttachmentIdatt2412707844
macroId47633b14-6496-47cd-a72f-3a1a7904ad7a
baseUrlhttps://rtlsnet.jira.com/wiki
nameAD
diagramAttachmentIdatt2412740609
containerId2412314648
timestamp1643176719417

Требования к AD сервису для интеграции

  1. LDAP сервер доступный с сервера РТЛС по порту tcp/389

  2. Сервисный аккаунт под которым будет производиться поиск по каталогу

  3. Проверка пользователя производится в доменном каталоге

  4. Преднастроенный список групп, в которые входит пользователь. Группы должны быть сопоставимы (по кол-ву и назначению) со списком ролей, преднастроенных в системе РТЛС, т.е пользователи с определенными правами к ресурсам BA-API и CFG-API должны быть в определенной группе. Наименование групп строго в латинском шрифте, наименования чувствительны к регистру

  5. Доступ для сервисного аккаунта к списку пользователей, доступ для которых должен быть обеспечен в системе РТЛС

  6. Доступ для сервисного аккаунта к списку ролей авторизуемого пользователя, которые определяют роль пользователя в системе РТЛС

  7. указание базового фильтра для поиска аккаунта по каталогу (с учетом регистра полей поиска)

  8. указание базового фильтра для запроса роли аккаунта (с учетом регистра полей поиска)

Настройка сервера РТЛС для интеграции с AD

  1. Остановить контейнер rtls_srv_1

    Code Block
    docker stop rtls_srv_1
  2. Добавить в конфигурацию сервера rtls/srv/config/standalone-full.xml параметры интеграции с AD

    1. Добавить для домена безопасности новый login-module сразу после модуля с кодом Database. Последовательность модулей определяет последовательность опроса ресурсов при попытке авторизации. RoleMappingLoginModule должен остаться последним в списке

      Code Block
      <login-module code="LdapExtended" flag="optional">
              <module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>
              <module-option name="java.naming.provider.url" value="ldap://10.0.0.196:389"/>
              <module-option name="java.naming.security.authentication" value="simple"/>
              <module-option name="bindDN" value="RTLS\serviceacc"/>
              <module-option name="bindCredential" value="******"/>
              <module-option name="baseCtxDN" value="OU=RTLS,DC=rtls,DC=local"/>
              <module-option name="baseFilter" value="(SamAccountName={0})"/>
              <module-option name="rolesCtxDN" value="OU=RTLS,DC=rtls,DC=local"/>
              <module-option name="roleFilter" value="(member={1})"/>
              <module-option name="roleAttributeID" value="memberOf"/>
              <module-option name="roleAttributeIsDN" value="true"/>
              <module-option name="roleNameAttributeID" value="cn"/>
              <module-option name="roleRecursion" value="0"/>
              <module-option name="throwValidateError" value="true"/>
              <module-option name="java.naming.referral" value="follow"/>
          </login-module>
    2. Поменять параметры согласно конфигурации AD . Параметры доступные для изменений

      1. java.naming.provider.url - URL для доступа к LDAP ресурсу

      2. bindDN - сервисный аккаунт для поиска по каталогу

      3. bindCredential - пароль для сервисного аккаунта

      4. baseCtxDN - раздел каталога, доступный для поиска аккаунта

      5. baseFilter - фильтр для поиска аккаунта по каталогу

      6. rolesCtxDN - раздел каталога, доступный для поиска ролей для авторизованного пользователя

      7. roleFilter - фильтр для поиска по каталогу ролей авторизованного пользователя

      8. roleAttributeID - поле определяющее принадлежность группе

      9. roleAttributeIsDN - признак, определяющий принадлежность группы к запрашиваемому контексту

      10. roleNameAttributeID - полк определяющее наименование группы для отправки в систему РТЛС

      11. roleRecursion - уровень вложенности для поиска групп

    3. Сохранить изменения

  3. Добавить в файл rtls/srv/config/rtls-roles-mapping.properties сопоставление групп AD с ролями системы РТЛС в формате $rtls_user=AD_group1,AD_groupN..

    Code Block
     rtls_admin=
     rtls_user=
     rtls_engineer=
     rtls_manager=
     rtls_ba_admin=
  4. Запустить контейнер rtls_srv_1

    Code Block
    docker start rtls_srv_1
  5. Проверить логи сервера что конфигурация прошла валидацию и сервер запустился в штатном режиме после изменений

    Code Block
    docker logs -f --tail 1000 rtls_srv_1
  6. Для авторизации UI укажите domain/login + pass пользователя.

...