Требования к AD сервису для интеграции
LDAP сервер доступный с сервера РТЛС по порту tcp/389
Сервисный аккаунт под которым будет производиться поиск по каталогу
Проверка пользователя производится в доменном каталоге
Преднастроенный список групп, в которые входит пользователь. Группы должны быть сопоставимы (по кол-ву и назначению) со списком ролей, преднастроенных в системе РТЛС, т.е пользователи с определенными правами к ресурсам BA-API и CFG-API должны быть в определенной группе. Наименование групп строго в латинском шрифте, наименования чувствительны к регистру
Доступ для сервисного аккаунта к списку пользователей, доступ для которых должен быть обеспечен в системе РТЛС
Доступ для сервисного аккаунта к списку ролей авторизуемого пользователя, которые определяют роль пользователя в системе РТЛС
указание базового фильтра для поиска аккаунта по каталогу (с учетом регистра полей поиска)
указание базового фильтра для запроса роли аккаунта (с учетом регистра полей поиска)
Настройка сервера РТЛС для интеграции с AD
Остановить контейнер rtls_srv_1
docker stop rtls_srv_1
Добавить в конфигурацию сервера rtls/srv/config/standalone-full.xml параметры интеграции с AD
Добавить для домена безопасности новый login-module сразу после модуля с кодом Database. Последовательность модулей определяет последовательность опроса ресурсов при попытке авторизации. RoleMappingLoginModule должен остаться последним в списке
<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>Поменять параметры согласно конфигурации AD . Параметры доступные для изменений
java.naming.provider.url - URL для доступа к LDAP ресурсу
bindDN - сервисный аккаунт для поиска по каталогу
bindCredential - пароль для сервисного аккаунта
baseCtxDN - раздел каталога, доступный для поиска аккаунта
baseFilter - фильтр для поиска аккаунта по каталогу
rolesCtxDN - раздел каталога, доступный для поиска ролей для авторизованного пользователя
roleFilter - фильтр для поиска по каталогу ролей авторизованного пользователя
roleAttributeID - поле определяющее принадлежность группе
roleAttributeIsDN - признак, определяющий принадлежность группы к запрашиваемому контексту
roleNameAttributeID - полк определяющее наименование группы для отправки в систему РТЛС
roleRecursion - уровень вложенности для поиска групп
Сохранить изменения
Добавить в файл rtls/srv/config/rtls-roles-mapping.properties сопоставление групп AD с ролями системы РТЛС в формате $rtls_user=AD_group1,AD_groupN..
rtls_admin= rtls_user= rtls_engineer= rtls_manager= rtls_ba_admin=
Запустить контейнер rtls_srv_1
docker start rtls_srv_1
Проверить логи сервера что конфигурация прошла валидацию и сервер запустился в штатном режиме после изменений
docker logs -f --tail 1000 rtls_srv_1
Для авторизации UI укажите domain/login + pass пользователя.