Конфигурация SSO c Keycloak
Перед настройкой SSO убедитесь, что в config.env параметр APP_URL соответствует текущему домену Пассворка, пример — APP_URL=https://passwork.example.com
Это нужно, чтобы IDP смог скачать metadata. Также сервер Пассворка должен работать по HTTPS протоколу.
Для примера используются следующие имена серверов:
- Провайдер (IDP) — keycloack.passwork.local
- Сер вер Пассворка (SP) — passwork.example.com
Создание приложения с помощью импорта файла в Keycloack
Получить и отредактировать файл для создания приложения с стороны IDP.
keycloack.json
- json
"clientId": "https://your_host/api/v1/sso/metadata",
"adminUrl": "https://your_host/api/v1/sso/acs",
"baseUrl": "https://your_host/*",
"saml.logout.url": "https://your_host/api/v1/sso/sls"
Открыть веб-интерфейс Keycloack и перейти в — Clients → Import client:

Выполнить следующие действия:
- Импортировать изменённый файл приложения;
- Задать имя создаваемого приложения;
- Отключить — Encrypt assertions;
- Отключить — Client signature required.
Сохранить внесённые изменения:

При необходимости можно изменить уникальный идентификатор пользователя (NameID) внутри SAML-assertion после сохранения предыдущих действий:

Рекомендуем указывать username или email, в зависимости от выбранного значения логин пользователя в Пассворке может иметь следующие форматы:
- username
- username@passwork.local
Настройка передачи ролей пользователя в SAML-assertion
Перейти и создать общий набор настроек для приложения (SP) — Client scopes → Create client scope:

Выполнить следующие действия:
- Задать имя;
- Type — Default;
- Protocol — SAML.
