Данная инструкция предназначена для работы связки SSO Keycloak IdP и Корпоративный сервер 2024 версий: 2025.1.18.15276 — 2025.2.10.15714
1. Настройка Корпоративный сервер 2024 (SP)
1.1. Синхронизация с Active Directory
Выполнить синхронизацию по инструкции ↗.
1.2. Настраиваем SSO аутентификацию
В web интерфейсе Keycloak -> Realm settings получаем ссылку для связи с КС24:

- Проверяем, что ссылка на файл метаданных Keycloak доступна публично:
https://{keycloak-domain}/realms/master/protocol/saml/descriptor
1.3. Включаем SSO аутентификацию
- Открываем файл
/opt/r7-office/Api/appsettings.json
nano /opt/r7-office/Api/appsettings.json
# Меняем значение «esiaType»:
# Если параметр «esiaType» отсутствует, то вы можете добавить его самостоятельно:
"esiaType": "saml2",
"rabbitMq": {
"host": "localhost",
"username": "guest",
"password": "guest",
"timeout": 10
},- Для работы службы синхронизации разместите сертификат в формате
.pfxв директории/opt/r7-office/Sso.Api/ - В качестве SP сервера выступает R7.Sso.Api.Host
- Открываем файл
/opt/r7-office/Sso.Api/appsettings.json
nano /opt/r7-office/Sso.Api/appsettings.json
- В файле редактируем следующие строки конфигурации:
"Saml2": { "IdPMetadata": "https://{keycloak-domain}/realms/master/protocol/saml/descriptor", "Issuer": "https://{r7disk-domain}/saml2/Metadata", "SignatureAlgorithm": "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256", "SigningCertificateFile": "путь_до_сертификата.pfx", "SigningCertificatePassword": "пароль_от_сертификата.pfx", "CertificateValidationMode": "None", "RevocationMode": "NoCheck" },Где:
- IdPMetadata — указываем ссылку на конфигурацию IdP сервера (шаг 1.2.);
- Issuer — редактируем ссылку на метаданные SP сервера по следующей схеме:
https://{r7disk-domain}/saml2/Metadata; - SigningCertificateFile — указываем имя
.pfxсертификата для подписи сообщений; - SigningCertificatePassword — указываем пароль на
.pfxсертификат (если на сертификате установлен пароль).
- Перезапускаем службы командой:
supervisorctl restart all
2. Настройка Keycloak IdP
- Открываем настройки нашего Realm и вкладку профиля пользователя, где можно редактировать и создавать атрибуты необходимые для нашего Realm.

Вкладка профиля пользователя в настройках Realm - Для минимальной настройки синхронизации достаточно двух атрибутов username и email.
Для корректной работы у атрибута email должна быть запись в Display name — ${mail}
2.1. Создаем клиента
- Переходим в Clients -> Create client;

Окно Create client - Заполняем Client ID в формате:
https://{r7disk-domain}/saml2/Metadata; - Client type — SAML;

Окно Create client - Сохраняем;
- Переходим в настройки созданного клиента;

Настройки созданного клиента - Во вкладке Keys;

Вкладка Keys в настройках клиента - Во вкладке Client scopes переходим в настройки созданной области;

Вкладка Client scopes в настройках клиента 
Вкладка Mappers - Создаем новые маперы;

Окно Configure a new mapper для создания новых мапперов - Выбираем User Attribute и заполняем;

Настройка маппера типа User Attribute - Аналогично создаем новый mapper для mail;

Настройка маппера для атрибута mail - После сохранения возвращаемся в Client details во вкладку Advanced;
- Заполняем по примеру;

Окно Fine Grain SAML Endpoint Configuration 
Пример заполнения параметров во вкладке Advanced - Сохраняем каждый блок.
3. Синхронизация Keycloak IdP с Active Directory
- Создаем нового провайдера LDAP;

Создание нового провайдера LDAP - Пример настроек;

Пример настроек провайдера LDAP 
Дополнительные настройки провайдера LDAP - Во вкладке mappers проверяем настройки username;
Значение в username должно браться из такого же атрибута LDAP что и Логин в КС24
- Если в настройках синхронизации КС:

Настройки синхронизации КС с указанием используемого атрибута - Тогда в настройках username в Keycloak:

Настройки атрибута username в Keycloak - Сохраняем и синхронизируем пользователей в Keycloak.

Синхронизация пользователей в Keycloak
4. Проверка работы Р7-Диск SP и Keycloak IdP
- Вход в Р7-Диск на стороне SP:
- Перейдите на страницу аутентификации Р7-Диск (например https://cddisk.r7office24.local ↗).
- Нажмите на кнопку Войти через ССО. Если этой кнопки нет, то SSO не включен.

Кнопка «Войти через ССО» на странице аутентификации Р7-Диск
- Если всё настроено верно в SP и IdP, мы будем перенаправлены на форму логина в Keycloak IdP.
- Введите логин и пароль учетной записи в Keycloak IdP и нажмите кнопку Sign In.

Форма входа в Keycloak IdP
- Введите логин и пароль учетной записи в Keycloak IdP и нажмите кнопку Sign In.
- Если же авторизация в Keycloak в этом браузере уже была произведена, тогда откроется сам портал.
Если авторизация была произведена ранее в другом браузере, то при входе вновь откроется окно авторизации Keycloak.













