Интеграция с каталогом LDAP
В данном руководстве описывается интеграция Нимбиус с AD с использованием ПО Keycloak. Keycloak входит в состав дистрибутива Нимбиус и запускается в отдельном контейнере.
В данной реализации между AD и Keycloack настраивается федерация, в свою очередь интеграция Нимбиус и Keycloack реализуется через OIDC.
Для настройки Keycloack необходимо выполнить следующее:
-
Зайти в веб-интерфейс Keycloak:
https://<KC_SERVER>:<KC_SERVER_PORT>
-
Логин по умолчанию: keycloak;
-
Пароль по умолчанию: keycloak;
-
-
Создать новый realm в Keycloak;
-
В новом realm добавить LDAP провайдер;
-
Указать все необходимые параметры для добавления LDAP провайдера
Общие настройки LDAP провайдера
Настройки соединения
Настройки аутентификации
Настройки поиска и обновления пользователей
Описание значений полей настройки LDAP провайдера и пример их заполнения
Имя параметра Пример заполнения Значение Connection and authentication settings Connection URL ldap://<LDAP_SERVER>
URL для подключения LDAP сервера Bind type SIMPLE Тип метода аутентификации, используемого во время операции привязки LDAP Bind DN keycloak@example.domain DN администратора LDAP Bind credentials Expamle_password Пароль администратора LDAP LDAP searching and updating Edit mode READ_ONLY Права доступа к LDAP Users DN CN=Users,DC=example,DC=domain Полный DN дерева LDAP, в котором находятся пользователи Username LDAP attribute UserPrincipalName Атрибут LDAP, который отображает имя пользователя User object classes top, person, organizationalPerson, user Значения атрибута объектного класса LDAP Важно
Далее необходимо проверить соединение с сервером LDAP и доступ к нему через Bind. Для этого следует нажать «Test connection» и «Test authentication». После успешного сохранения всех параметров во вкладке «Action» нажимаем кнопку Sync all users для синхронизации пользователей.
Добавить новый mapper типа «group-ldap-mapper» к новому провайдеру LDAP
Перечень настроек mapper
Create new mapper
- Name - Название mapper «mappergroups»;
- LDAP Groups DN - LDAP DN, где сохраняются группы этого дерева: OU=Groups,DC=example,DC=domain;
Важно
Далее во вкладке «Action» необходимо нажать кнопку «Sync LDAP groups to Keycloak» для синхронизации групп.
Создать нового client для подключения к Keycloak и указать все необходимые параметры для его создания, см. рисунки и таблицу ниже.
Общие настройки client
Настройки привилегий
Настройки авторизации
Описание значений полей настройки client и пример их заполнения
Имя параметра Пример заполнения Значение General Settings Client ID nimbius ID клиента Name nimbius Имя клиента Access settings Valid redirect URIs https://<FQDN>:8443/ui/service
https://<FQDN>:8443
https://<FQDN>:8443/oidc_login/redirect_uri
URI, на который браузер может перенаправить после успешного входа в cистему.
Добавлять как новые переменные!
В качестве FQDN используется IP адрес или dns имя хостовой машины с запущенным НимбиусWeb origins https://<FQDN>:8443
Разрешенные источники CORS Capability config Client authentication On Тип клиента OIDC -
Создать «Сlient scope» внутри realm и указать все необходимые параметры
Меню client scope
Создание client scopes
Настройки client scopes
Create client scope
- Name - Имя «client scope»: nimbius-client-scopes.
-
Во вкладке «mappers» раздела «client scopes» добавить новые связи, см. рисунки и таблицу ниже.
Client scopes вкладка mappers
Добавление mappers для client scopea
Перечень необходимых mappers
Name Consent Required Mapper Type Token Claim Name Full group path Add to ID token Add to access token Add to userinfo groups OFF Group Membership groups OFF ON ON OFF Client Host OFF User Session Note clientHost clientHost String ON ON Client ID OFF User Session Note clientId clientId String ON ON Client IP Address OFF User Session Note clientAddress clientAddress String ON ON -
В ранее созданном клиенте во вкладке «client scopes» добавить новый client scopes
-
В файле «.env» (файл дистрибутива Нимбиус) изменить значения параметров по умолчанию:
OIDC_PROVIDER_METADATA_URL=https://nimbius OIDC_CLIENT_ID=nimbius OIDC_CLIENT_SECRET=Ni24MB42IuS OIDC_OAUTH_INTROSPECTION_ENDPOINT=https://nimbius
Параметр Значение Пояснение OIDC_PROVIDER_METADATA https://<KC_SERVER>:<KC_SERVER_PORT>/realms/<REALM>/.well-known/openid-configuration
URL метаданных сервера OIDC_CLIENT_ID nimbius ID клиента со стороны Keycloak OIDC_CLIENT_SECRET - Клиентский «секрет», который необходимо получить в разделе «Credentials» клиента OIDC_OAUTH_INTROSPECTION https://<KC_SERVER>:<KC_SERVER_PORT>/realms/<REALM>/protocol/openid-connect/certs
URL интроспекции Примечание
При отказе использования Keycloak параметры по умолчанию должны оставаться неизменными.
-
Перезапустить контейнер nimbius-core
$ docker restart nimbius-core
-
Настроить аутентификацию в Нимбиус:
-
В разделе «Authentication», переключить режим на «External (httpd)»;
-
В появившемся разделе «External Authentication (httpd) Settings» включить параметр «Enable OpenID-Connect» (тип провайдера внешней аутентификации);
-
В разделе «Role Settings» включить параметр «Get User Groups from External Authentication (httpd)» (получение групп внешней аутентификации).
-