Конфигурация SSO с JaCarta Identity Provider (JIP)
Перед настройкой SSO убедитесь, что в config.env параметр APP_URL соответствует текущему домену Пассворка, пример — APP_URL=https://passwork.example.com. Это нужно, чтобы IDP смог скачать metadata. Также сервер Пассворка должен работать по HTTPS протоколу.
Пассворк выступает в роли Service Provider (SP), а JaCarta (JIP) в роли Identity Provider (IDP). Клиенты SAML, роли и профили SSO создаются в JaCarta (JMS) и синхронизируются в JIP.
Для примера используются следующие имена серверов:
- Консоль управления JMS (JaCarta Management System) — jms.example.com:5000
- Web-консоль сервера JIP (JaCarta Identity Provider) — jip.example.com:5030
- Web-приложение JIP (SAML endpoints) — jip.example.com:28100
- Сервер Пассворка (SP) — passwork.example.com
Создание роли в JMS
Роль требуется для учётной записи, от имени которой JIP обращается к JMS (чтение клиентов SSO, профилей и каталога учётных записей).
Открыть веб-консоль JMS https://jms.example.com:5000 и перейти в — Роли → Создать роль:

Права для роли
Обслуживание сервера
- Чтение конфигурации сервера;
- Чтение из каталога учетных записей;
- Чтение контейнера ресурсной системы.
Пользователи
- Чтение.
Профили
- Чтение типов профилей;
- Чтение экземпляров профилей.
SSO: Клиенты OIDC
- Получение списка клиентов OIDC;
- Получение клиента OIDC по идентификатору.
SSO: Клиенты SAML
- Получение списка клиентов SAML;
- Получение клиента SAML по идентификатору.
Назначить созданную роль учётной записи сервиса JIP (которая указана в web-консоли сервера JIP в настройках подключения к JMS):

Создание клиента SAML в JMS
В консоли JMS перейти в — SSO → Клиенты SAML → Создать:

В Пассворке открыть Настройки и пользователи → Настройки SSO и скопировать значения для заполнения клиента:
- Entity ID
- ACS
- SLS
https://passwork.example.com/api/v1/sso/metadata
https://passwork.example.com/api/v1/sso/acs
https://passwork.example.com/api/v1/sso/sls
Свойства клиента SAML
Основные
- Название —
sp-passwork - ID клиента (Issuer) —
https://passwork.example.com/api/v1/sso/metadata - Включён — включено
Безопасность
- Способ определения адресов клиента — Указать вручную
- Адреса Single Logout Service
- Location —
https://passwork.example.com/api/v1/sso/sls - Binding Type —
Redirect - Response Location —
https://passwork.example.com/api/v1/sso/sls
- Location —
- Адреса Assertion Consumer Service
- Location —
https://passwork.example.com/api/v1/sso/acs - Binding Type —
Post - Использовать по умолчанию — включено
- Location —
- NameId Policy Format —
Unspecified
Создание профиля SSO
В профиле SSO задаётся, для каких пользователь действует единый вход и какие методы аутентификации будет использовать JIP (пароль, OTP и т.д.).
В консоли JMS перейти в — Профили → Создать → Профиль SSO:

Выполнить следующие действия:
- Имя —
sso-profile-passwork - Клиенты SSO —
sp-passwork - Стратегии входа — задать нужные методы аутентификации пользователя в JIP:
- OTP (через JAS)
- Password
- Требуется повторная аутентификация — Нет

Настройка правил обработки запросов от SP (Пассворка) в IDP (JIP)
В зависимости от требуемого вида логина пользователя в Пассворке, вы можете настроить правила обработки так, чтобы формат пользователя мог быть следующим:
- username
- username@example.com
На вкладке Утверждения SAML настроить соответствие атрибутов каталога (AD/LDAP) и SAML-утверждений, которые получит Пассворк. NameID, а также дополнительные атрибуты displayName и emailAddress.
Настройка правил обработки для username формата
На вкладке Утверждения SAML добавить утверждения и заполнить:
- NameID:
- Тип значения —
Пользоват ельский - Пользовательский атрибут —
.sAMAccountName
- Тип значения —
- displayName:
- Тип значения —
Пользовательский - Пользовательский атрибут —
.displayName
- Тип значения —
- emailAddress:
- Тип значения —
Пользовательский - Пользовательский атрибут —
.mail
- Тип значения —

Настройка правил обработки для username@example.com формата
На вкладке Утверждения SAML добавить утверждения и заполнить:
- NameID:
- Тип значения —
Пользовательский - Пользовательский атрибут —
.userPrincipalName
- Тип значения —
- displayName:
- Тип значения —
Пользовательский - Пользовательский атрибут —
.displayName
- Тип значения —
- emailAddress:
- Тип значения —
Пользовательский - Пользовательский атрибут —
.mail
- Тип значения —

Привязка профиля к дереву AD/LDAP
Назначить созданный SSO профиль на весь домен или определённую OU (AD/LDAP):
