LDAP сервер доступный с сервера РТЛС по порту tcp/389
Сервисный аккаунт под которым будет производиться поиск по каталогу
Проверка пользователя производится в доменном каталоге
Преднастроенный список групп, в которые входит пользователь. Группы должны быть сопоставимы (по кол-ву и назначению) со списком ролей, преднастроенных в системе РТЛС, т.е пользователи с определенными правами к ресурсам BA-API и CFG-API должны быть в определенной группе. Наименование групп строго в латинском шрифте, наименования чувствительны к регистру
Доступ для сервисного аккаунта к списку пользователей, доступ для которых должен быть обеспечен в системе РТЛС
Доступ для сервисного аккаунта к списку ролей авторизуемого пользователя, которые определяют роль пользователя в системе РТЛС
указание базового фильтра для поиска аккаунта по каталогу (с учетом регистра полей поиска)
указание базового фильтра для запроса роли аккаунта (с учетом регистра полей поиска)
Остановить контейнер 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 пользователя.