Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы
Редакторы
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
Команда
Команда
Мобильные редакторы
Мобильные редакторы
Облачный офис
Облачный офис
Почта
Почта
Органайзер
Органайзер
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

SSO авторизация через Keycloak c использованием взаимной синхронизации с ALD PRO и Корпоративный сервер 2024

Обновлено: 25.12.25
Важно

Данная инструкция применима исключительно для пользователей, у которых настроена синхронизация Корпоративного сервера 2024 (Корпоративный сервер 2024) и Keycloak с ALD Pro. Она не подходит для систем с синхронизацией через MS AD или без использования LDAP-интеграции.

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 distinguishedNamekrbPrincipalNamegivenName и 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 атрибуты можно удалить

Важно

Для корректной работы у атрибута email должна быть запись в Display name — ${mail}

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.