BearPass
Общее
Доступно только для платных тарифов
BearPass поддерживает возможность авторизации по стандарту SSO SAML. При попытке входа через SSO, приложение попытается найти пользователя по логину. Если пользователя еще нет в системе - он будет создан и привязан к провайдеру SSO.
Чтобы настроить SSO, перейдите в соответствующий пункт меню в административном разделе
Пользователь должен иметь право "Настройка SSO"
Здесь необходимо заполнить данные, получение от провайдера SSO. Пример инструкции для Google Workspace https://support.google.com/a/answer/6087519?hl=ru
Дополнительно можно сделать маппинг атрибутов пользователя из провайдера.
После активации SSO провайдера в форме входа появится кнопка "Войти через SSO"
Опционально можно настроить шифрование и требование подписей запросов. В настройках со стороны провайдера это тоже должно быть включено.
Мультифактор
Добавьте новый ресурс "SAML-приложение":
Заполните название и адрес, выберите нужный вам поставщик учетных записей:
Скачайте файл метаданных из Мультифактора:
И загрузите его в BearPass:
Укажите ссылку на метаданные из BearPass (убедитесь, что вы активировали SSO на предыдущем шаге):
Настройте маппинг полей, если требуется:
Keycloak
Создайте нового клиента с типом SAML, в Client ID укажите урл метаданных BearPass:
Укажите урл приложения, для редиректов используйте маску:
Отключите Client signature required:
Перейдите в Realm settings -> General и скачайте файл метаданных SAML по ссылке:
Загрузите файл метаданных в BearPass и активируйте SSO:
После этого авторизация должна заработать, но атрибуты создаваемых пользователей будут пустыми.
Если при авторизации возникает ошибка и в логах BearPass пишется ошибка Found an Attribute element with duplicated Name, измените атрибут ролей: Client Scopes -> role_list (saml) -> Mappers tab -> role list -> Single Role Attribute. Установите этот чекбокс.
Для передачи полей пользователя в BearPass нужно настроить Client scopes и добавить их к провайдеру.
Создайте новый scope для протокола SAML:
Добавьте mapper на атрибут пользователя:
Привяжите scope к клиенту:
Повторите для всех нужных атрибутов и заполните маппинг полей в BearPass: