Релиз кандидат
...
Администрирование
Настройки SSO

Конфигурация SSO c Keycloak

15min

Перед настройкой SSO убедитесь, что в config.env параметр APP_URL соответствует текущему домену Пассворка, пример — APP_URL=https://passwork.example.com

Это нужно, чтобы IDP смог скачать metadata. Также сервер Пассворка должен работать по HTTPS протоколу.

Для примера используются следующие имена серверов:

  • Провайдер (IDP) — keycloack.passwork.local
  • Сервер Пассворка (SP) — passwork.example.com

Создание приложения с помощью импорта файла в Keycloack

Получить и отредактировать файл для создания приложения с стороны IDP.

json


Открыть веб-интерфейс Keycloack и перейти в — Clients Import client:

Document image


Выполнить следующие действия:

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

Сохранить внесённые изменения:

Document image


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

Document image


Рекомендуем указывать username или email, в зависимости от выбранного значения логин пользователя в Пассворке может иметь следующие форматы:

Настройка передачи ролей пользователя в SAML-assertion

Перейти и создать общий набор настроек для приложения (SP) — Client scopesCreate client scope:

Document image


Выполнить следующие действия:

  • Задать имя;
  • Type — Default;
  • Protocol — SAML.
Document image


Открыть вкладку Mappers и создать утверждение атрибутов для передачи дополнительных атрибутов пользователя из Keycloak (IDP) в Пассворк (SP):

  • Добавление утверждения для передачи email:
    • Add predefined mapper X500 email;
    • Открыть добавленное утверждение из шаблона и изменить:
      • SAML Attribute Name email;
      • SAML Attribute NameFormat — Basic.
  • Добавление утверждения для передачи firstName:
    • Add mapperFrom predefined mappers X500 surname;
    • Открыть добавленное утверждение из шаблона и изменить:
      • Property — firstName;
      • SAML Attribute Name firstName;
      • SAML Attribute NameFormat — Basic.
Document image


Назначить на созданное приложение (SP) созданный набор настроек (Client scope) — Clients Пассворк → перейти на вкладку Client scopes Add client scope:

Document image


Выбрать из списка созданный набор passwork_client_scope с Assigned type — Default:

Document image


Настройка и заполнение параметров единого входа (SSO) в Пассворке

Заполнение значений «Атрибуты пользователя»

Авторизоваться в веб-интерфейсе Пассворка, перейти в — Настройки и пользователиНастройки SSO и заполнить атрибуты сопоставления:

  • Атрибут электронной почты — email;
  • Атрибут полного имени — firstName.

Заполнение значений «Поставщик удостоверений → Пассворк»

Открыть конфигурацию поставщика услуг (IDP) — Realm settingsGeneralEndpoints:

Document image


Скопировать следующие значения параметров:

xml


Открыть — Настройки и пользователиНастройки SSO и заполнить значения:

  • Идентификатор (Entity ID) — https://keycloack.passwork.local/realms/master
  • Url-адрес входа — https://keycloack.passwork.local/realms/master/protocol/saml
  • Url-адрес выхода — https://keycloack.passwork.local/realms/master/protocol/saml

Заполнение значения «Сертификат»

Открыть и скопировать сгенерированный SSL сертификат в base64 формате — Realm settingsKeys Certificate:

Document image


Скопированный SSL сертификат поместить в соответствующее поле — Настройки и пользователиНастройки SSO.

Открыть окно авторизации в веб-интерфейсе Пассворка и выполнить вход через SSO для проверки корректной настройки:

Document image


Возможные ошибки

В случае возникновения ошибок, они будут помещены в лог PHP

Ответ от SSO не может быть корректно расшифрован, так как неправильно скопирован отпечаток сертификата или это отпечаток неверного сертификата:

Bash


Неправильно указано текущее значение хоста в параметре APP_URL файла config.env:

Bash


У пользователя отсутствует атрибут, по которому выполняется вход:

Bash