Содержание
1. Синхронизация Корпоративный сервер 2024 + ALD PRO
1.1. Проверка соединения с LDAP ALD PRO
На примере используем сервер ALD PRO
dc.r7ru.ru
Перед синхронизацией убедитесь, что ваш LDAP ALD PRO доступен с помощью утилиты ldapsearch.
Для этого подключитесь к серверу ALD PRO и в терминале введите команду:
ldapsearch -x -D "uid=admin,cn=users,cn=accounts,dc=r7ru,dc=ru" -W -b "cn=users,cn=accounts,dc=r7ru,dc=ru"
, где
- admin — учетная запись администратора домена
- «cn=users,cn=accounts,dc=r7ru,dc=ru» — каталог в LDAP, в котором производится поиск
после ввода пароля, необходимо получить подобный результат
1.2. Синхронизация с ALD PRO
Во вкладке управления выбираем пункт меню «Настроить LDAP»
Метод авторизации выбираем LDAP и вносим данные сервера ALD PRO, на скриншоте фильтр пользователей установлен на синхронизацию всех пользователей из каталога Users.
Здесь же можно настроить свои фильтры выборки из LDAP
например данный фильтр позволит выбрать только пользователей входящих в определенную организацию существующую в домене:
(&(krbPrincipalName=*)(memberOf=ou=Организация,cn=orgunits,cn=accounts,dc=r7ru,dc=ru))
На скриншоте выборка всех пользователей из каталога Users,
где
- dc.r7ru.ru — домен контроллер
- r7ru.ru — имя домена
- cn=users,cn=accounts,dc=r7ru,dc=ru — каталог, пользователей по которым будет происходить синхронизация
389 — порт, по которому работает LDAP, если на сервере LDAP используется SSL, необходимо использовать порт 636
Для Корпоративного сервера 2024 необходимо заполнить основные поля атрибутами из LDAP ALD PRO distinguishedName, krbPrincipalName, givenName и sn
Сопоставление по полям атрибутов LDAP RedADM и Корпоративного сервера 2024 предусмотрено только по полям заполненным на скриншоте
Также можно выполнить синхронизацию групп из LDAP RedADM.
Например, если нужно синхронизировать не только список всех пользователей домена, но также их расположение в группах в домене
используйте каталог и нужный вам фильтр групп, в примере экспортируются все группы из домена
cn=groups,cn=accounts,dc=r7ru,dc=ru (&(objectClass=posixgroup)(objectClass=ipausergroup)(cn=*))
После установки фильтра нажмите сохранить и затем синхронизировать
После синхронизации вы должны получить подобный результат
2. Синхронизация Keycloak и Корпоративный сервер 2024
2.1. Настройка KeyCloak
В интерфейсе Keycloak под учетной записью администратора создайте свой Realm и дайте ему имя, НЕ используйте Realm «master» , он используется для управления другими Realm.
Далее открываем настройки нашего Realm и вкладку профиля пользователя, где можно редактировать и создавать атрибуты необходимые для нашего Realm
Р7 Офис 2024 использует 4 атрибута для saml2:
- givenName — имя
- sn — фамилия
- Title — должность
- mail — почтовый ящик
создайте соответствия в Keycloak для этих атрибутов
для givenName:
и нажмите кнопку Сохранить.
Здесь же можно установить на ваше усмотрение является ли атрибут обязательным для администраторов и пользователей, нужно ли его использовать и кто может редактировать его
Дополнительно можно установить требования на длину атрибута посимвольно и прочее.
По аналогии также сделайте для оставшихся трех атрибутов, не нужные для этого Realm атрибуты можно удалить
2.2. Настройка Корпоративный сервер 2024
Для возможности авторизации SSO необходимо внести изменения в конфигурацию Р7 Офис 2024
в терминале сервера с сервисом Api отредактируйте файл appsetings.json
nano /opt/r7-office/Api/appsettings.json
Нужно заменить «esiaType» на «saml2», как на скриншоте ниже
Также необходимо внести изменения в файл appsetings.json для сервиса Sso.Api
для начала получите ссылку на провайдера
IdPMetadata — наш провайдер Keycloak
в настройках Realm на вкладке общее нажмите на ссылку SAML2
на скриншоте адрес провайдера
далее в терминале сервера отредактируйте конфигурационный файл сервиса Sso.Api
nano /opt/r7-office/Sso.Api/appsettings.json
В файле редактируем следующие строки конфигурации:
"Saml2": { "IdPMetadata": "{http/https}://{адрес и порт вашего keycloack}/realms/{имя realm}/protocol/saml/descriptor", "Issuer": "{http/https}://{cddisk}.{Домен Р7 2024}/saml2/Metadata", "SignatureAlgorithm": "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256", "SigningCertificateFile": "{Путь до вашего сертификата .pfx}", "SigningCertificatePassword": "{Пароль от сертификата .pfx}", "CertificateValidationMode": "None", "RevocationMode": "NoCheck" },
не забывайте добавить в адрес провайдера «/descriptor» в конце предложения
Пример заполненного рабочего конфига, вместо «cddisk.test703.s7-office.site» используйте свое DNS имя вашего портала Р7 Офис:
После применения изменений перезагружаем Р7 2024. Настройка Р7 Офис закончена.
2.3. Продолжаем настройку KeyCloack
Создайте клиента в нашем Realm
В Client ID укажите ваш Issuer (заменяйте домен и протокол на свои, соответственно). Далее скриншотами рабочий пример заполнения полей
Не забывайте сохранять внесенные изменения во вкладках.
Вкладка Settings
Вкладка Keys
Вкладка Roles будет пустая
Вкладка Client Scopes
Переходим по ссылке и создаем атрибуты, которые получаем от Р7 Офис и делаем соответствие их атрибутам нашего Realm Keycloak
Выбираем User Property
Заполняем поля, в выпадающем списке выберите соответствующий ранее созданный атрибут в настройках Realm
Итоговый вариант заполнения:
Создав все 4 соответствия атрибутов, перемещаемся далее по вкладкам настройки клиента
Вкладка Advanced:
Далее открываем в браузере наш портал https://cddisk.test703.s7-office.site, в окне авторизации должна появится ссылка SSO авторизации, нажимая на нее, откроется окно авторизации через Keycloak
Авторизация SSO уже будет работать, если вы в ручную будете создавать аналогичные по атрибутам к Р7 учетные записи в Keycloak.
Но мы на этом не остановимся, нам необходимо перекачать из нашего домена всех пользователей в базу данных Keycloak , чтобы не создавать их в ручную. Продолжим настройку.
3. Keycloak + ALD PRO
Настройка синхронизации пользователей из
ALD Pro в Keycloak
Hostname astralinux.ru URI/Port ldap://astralinux.ru.ru:389 (STARTTLS) Note: Plaintext is not allowed. ldaps://astralinux.ru:636 BaseDN uid=ALD_user,cn=users,cn=accounts,dc=astralinux,dc=ru UserDN cn=users,cn=accounts,dc=astralinux,dc=ru GroupDN ou=users,o=YOUR_ORG_ID,dc=jumpcloud,dc=com Username LDAP attribute, RDN LDAP attribute uid UUID LDAP attribute ipaUniqueId Search scope One level
В интерфейсе Keycloak создаем нового провайдера ldap
заполняем поля как на скриншоте, в conntction url укажите адрес вашего домен контроллера, и нажмите кнопку тест соединения
если все в порядке, далее указываем каталог с учетной записью администратора домена и пароль, тестируем соединение
если все в порядке, далее заполняем как на скриншоте.
Выделенный каталог пользователей которых будем синхронизировать в keycloak используйте из своего домена.
В поле User LDAP filter можно настроить фильтр, какой вам необходим
Далее устанавливаем период и частоту синхронизации в секундах. В поле batch size указываем размер одной транзакции, если пользователей очень много.
Остальные поля, на усмотрение администратора, если используются протоколы. Можете оставить как есть.
После сохранения федерация появится в окне интерфейса Keycloak
Далее заходим в нашу федерацию и настраиваем во вкладке Mappers наши соответствия атрибутов Keycloak и ALD PRO.
Или удаляем не нужные.
Настройка для атрибута givenName, из списка User Model созданного ранее выбираем соответствие
Можем создать новые соответствия, что будем тянуть из ALD PRO в Keycloak, например атрибут должность Tittle
В LDAP он также называется Tittle, укажите его в поле LDAP Attribute
Итог после сохранения:
Затем проверяем синхронизированные УЗ, все атрибуты нужные нам будут вытянуты из LDAP
По этим соответствиям и будет происходить авторизация SSO в Корпоративный сервер 2024 через Keycloak