SSO (Single Sign-On)
Введение
Single Sign-On (SSO) позволяет пользователям входить в Бипиум, используя учетные данные из внешней системы аутентификации (например, Keycloak, Active Directory через Keycloak и т.д.). Это упрощает управление доступом и повышает безопасность.
Преимущества SSO
Единая точка входа: пользователи входят один раз и получают доступ ко всем системам
Централизованное управление: администраторы управляют доступом из одного места
Повышенная безопасность: единые политики безопасности и аудит
Удобство: пользователям не нужно запоминать отдельные пароли
Поддерживаемые SSO провайдеры
Бипиум поддерживает следующие SSO провайдеры через OAuth 2.0 / OpenID Connect:
Keycloak — рекомендуемый провайдер для корпоративных решений
OAuth2 — универсальный провайдер для любых OAuth 2.0 / OpenID Connect систем
Google — для интеграции с Google Workspace
Yandex — для интеграции с Yandex ID
Mail.ru — для интеграции с Mail.ru ID
VK — для интеграции с VK ID
Примечание: В данной статье основное внимание уделено настройке Keycloak, так как это наиболее распространенный выбор для серверных версий Бипиум.
Настройка социальных сетей (Google, Yandex, Mail.ru, VK)
Настройка провайдеров социальных сетей (Google, Yandex, Mail.ru, VK) выполняется по единой схеме, так как все они используют стандартный протокол OAuth 2.0. Основные шаги одинаковы для всех провайдеров.
Общая схема настройки
Шаг 1: Создание приложения у провайдера
Перейдите на страницу разработчика выбранного провайдера:
Google: Google Cloud Console
Yandex: OAuth приложения Yandex
Mail.ru: Приложения Mail.ru
Создайте новое OAuth приложение
Настройте Redirect URI (URI перенаправления):
Важно: Замените
your-bpium-domain.comна реальный домен вашего сервера Бипиум. Если используется несколько доменов, добавьте все необходимые URL.Сохраните Client ID и Client Secret — они понадобятся при настройке в Бипиуме
Шаг 2: Настройка провайдера в Бипиуме
Войдите в Бипиум с правами администратора
Перейдите в раздел Системные каталоги → OAuth провайдеры
Нажмите Создать запись
Заполните основные параметры:
Активна: включите переключатель
Провайдер: выберите нужный провайдер (Google, Yandex, Mail.ru или VK)
ClientID: вставьте Client ID, полученный у провайдера
Client secret: вставьте Client Secret, полученный у провайдера
Порядковый номер в списке: укажите число для сортировки кнопок (например,
1)
(Опционально) Настройте кнопку входа:
Подпись: текст для кнопки (например, "Войти через Google")
Иконка: загрузите изображение для кнопки
Нажмите Сохранить
Настройка Keycloak на стороне клиента
Шаг 1: Установка и настройка Keycloak
Если у вас еще не установлен Keycloak, выполните его установку согласно официальной документации.
Шаг 2: Создание Realm
Войдите в административную консоль Keycloak (обычно
http://your-keycloak-server:8080)Создайте новый Realm или используйте существующий (например,
master)Запомните URL вашего Realm, он понадобится позже:
Шаг 3: Создание клиента (Client) в Keycloak
В разделе Clients нажмите Create client
Заполните форму:
Client type:
OpenID ConnectClient ID:
bpium(или любое другое уникальное имя)Нажмите Next
Настройте параметры клиента:
Client authentication:
On(если требуется Client Secret)Authorization:
Off(обычно не требуется)Authentication flow: оставьте значения по умолчанию
Нажмите Next
Настройте Valid redirect URIs:
Важно: Замените
your-bpium-domain.comна реальный домен вашего сервера Бипиум. Если используется несколько доменов, добавьте все необходимые URL.Настройте Web origins (если требуется CORS):
Нажмите Save
Шаг 4: Получение Client ID и Client Secret
В настройках созданного клиента перейдите на вкладку Credentials
Скопируйте значение Client ID
Если включена Client authentication, скопируйте значение Client secret
Если секрет не отображается, нажмите Regenerate Secret и сохраните новое значение
Шаг 5: Настройка маппинга пользователей (опционально)
По умолчанию Keycloak использует следующие поля для идентификации пользователя:
Логин (email): поле
preferred_usernameиз ID токенаИмя пользователя: поле
nameиз ID токена
Если в вашем Keycloak используются другие поля, запомните их названия — они понадобятся при настройке в Бипиуме.
Настройка SSO провайдера в Бипиуме
Шаг 1: Открытие каталога OAuth провайдеров
Войдите в Бипиум с правами администратора. По умолчанию admin/admin
Перейдите в раздел Системные каталоги → OAuth провайдеры
Нажмите Создать запись
Шаг 2: Заполнение основных параметров
Заполните следующие обязательные поля:
Общие параметры
Активна: включите переключатель (должен быть включен)
Провайдер: выберите
KeycloakClientID: вставьте Client ID, скопированный из Keycloak
Client secret: вставьте Client Secret, скопированный из Keycloak
Порядковый номер в списке: укажите число для сортировки кнопок на странице входа (например,
1)
Компании (для мультидоменных установок)
Если провайдер должен быть доступен только для определенных компаний, выберите их в поле Компании
Если поле оставить пустым, провайдер будет доступен всем компаниям
Шаг 3: Настройка кнопки входа (опционально)
Подпись: текст, который будет отображаться на кнопке входа (например, "Войти через Keycloak")
Иконка: загрузите изображение для кнопки (рекомендуемый размер: 24x24 или 32x32 пикселя)
Если эти поля не заполнены, будут использованы значения по умолчанию.
Шаг 4: Дополнительные настройки
В разделе Дополнительные настройки заполните:
Другие параметры (JSON)
Это обязательное поле для Keycloak. Укажите JSON с параметром realmUrl:
Примеры:
Для HTTP:
{"realmUrl": "http://192.168.1.100:8080/realms/master"}Для HTTPS:
{"realmUrl": "https://keycloak.company.com/realms/production"}
Важно:
URL должен быть доступен с сервера Бипиум
Убедитесь, что указан правильный Realm
Для продуктивной среду рекомендуется использовать HTTPS
Поле логина (опционально)
Если в Keycloak используется нестандартное поле для логина (email), укажите его здесь. По умолчанию используется preferred_username.
Примеры:
email— если логин хранится в полеemailsub— если используется ID пользователяusername— если используется полеusername
Поле имени пользователя (опционально)
Если в Keycloak используется нестандартное поле для имени пользователя, укажите его здесь. По умолчанию используется name.
Примеры:
given_name— для имениfull_name— для полного имениdisplay_name— для отображаемого имени
Scope (опционально)
Укажите дополнительные scope, разделенные пробелами, если требуется дополнительная информация о пользователе.
Примеры:
openid profile email— стандартный набор для OpenID Connectopenid email— минимальный набор (openid добавляется автоматически)
Примечание: Scope
openidдобавляется автоматически для Keycloak, указывать его не обязательно.
Шаг 5: Сохранение настроек
Проверьте все заполненные поля
Нажмите Сохранить
Проверка работы
Шаг 1: Проверка на странице входа
Выйдите из Бипиум (если вы вошли)
Откройте страницу входа
Убедитесь, что появилась кнопка с вашим SSO провайдером (например, "Войти через Keycloak")
Шаг 2: Тестовая авторизация
Нажмите на кнопку SSO провайдера
Должно произойти перенаправление на страницу входа Keycloak
Введите учетные данные пользователя, существующего в Keycloak
После успешной авторизации в Keycloak должно произойти перенаправление обратно в Бипиум
Пользователь должен быть автоматически авторизован в Бипиум
Шаг 3: Проверка создания учетной записи
Если пользователь с таким email уже существует в Бипиум, он будет авторизован
Если пользователя нет, автоматически будет создан новый аккаунт в Бипиум (независимо от настроек регистрации)
Важно: Для успешного входа пользователь должен быть привязан хотя бы к одной компании
Если у пользователя есть активные приглашения (invites) с привязкой к компании, они будут автоматически использованы
Если приглашений нет, администратор должен вручную привязать пользователя к компании после первого входа
Без привязки к компании пользователь увидит информационное сообщение "no-companies" и не сможет войти
Устранение неполадок
Проблема: Кнопка SSO не отображается на странице входа
Возможные причины и решения:
Провайдер не активирован
Проверьте, что в настройках провайдера включен переключатель Активна
Провайдер недоступен для текущей компании
Проверьте настройки поля Компании в записи провайдера
Убедитесь, что текущая компания включена в список
Кэш браузера
Очистите кэш браузера или откройте страницу в режиме инкогнито
Проблема: Ошибка "Invalid redirect URI" в Keycloak
Причина: URL обратного вызова не зарегистрирован в Keycloak
Решение:
Откройте настройки клиента в Keycloak
Проверьте поле Valid redirect URIs
Убедитесь, что там указан правильный URL:
Если используется несколько доменов, добавьте все необходимые URL
Сохраните изменения
Проблема: Ошибка "Provider is not found"
Причина: Провайдер не найден в базе данных
Решение:
Проверьте, что запись провайдера сохранена в каталоге OAuth провайдеры
Убедитесь, что провайдер активен
Попробуйте перезапустить сервер Бипиум
Проблема: Ошибка "Invalid client credentials"
Причина: Неверный Client ID или Client Secret
Решение:
Проверьте, что ClientID и Client secret в Бипиум совпадают с настройками в Keycloak
Если Client Secret был изменен в Keycloak, обновите его в Бипиум
Убедитесь, что в Keycloak включена Client authentication, если вы используете Client Secret
Проблема: Ошибка "realmUrl is required"
Причина: Не указан или неверно указан параметр realmUrl в поле Другие параметры
Решение:
Проверьте формат JSON в поле Другие параметры
Убедитесь, что указан правильный URL Realm:
Проверьте доступность URL с сервера Бипиум (можно использовать
curlилиwget)
Проблема: Пользователь не может войти, хотя авторизация в Keycloak прошла успешно
Возможные причины и решения:
Email пользователя не совпадает
Проверьте, какое поле используется для логина в настройках провайдера
Убедитесь, что в Keycloak это поле содержит корректный email
Проверьте настройки Поле логина в Бипиум
Пользователь не привязан к компании (наиболее частая причина)
При первом входе через SSO аккаунт создается автоматически, но без привязки к компании
Пользователь увидит ошибку "no-companies" и не сможет войти
Решение: Администратор должен:
Открыть каталог Аккаунты (Accounts)
Найти пользователя по email
Привязать его к нужной компании через поле Компании
Альтернатива: Создать приглашение (invite) для пользователя перед первым входом — тогда привязка произойдет автоматически
Проблемы с сессией
Очистите cookies браузера
Попробуйте войти в режиме инкогнито
Проблема: Ошибка сети при обращении к Keycloak
Причина: Сервер Бипиум не может подключиться к Keycloak
Решение:
Проверьте доступность Keycloak с сервера Бипиум:
Проверьте настройки файрвола
Убедитесь, что URL в параметре
realmUrlкорректен
Дополнительные настройки
Автоматическое создание аккаунтов при входе через SSO
Важно понимать: При первом входе пользователя через SSO аккаунт в Бипиум создается автоматически, независимо от настроек регистрации в системе. Это сделано для удобства, но требует дополнительной настройки:
Автоматическая привязка через приглашения:
Если для пользователя создано приглашение (invite) с привязкой к компании, при первом входе через SSO он автоматически будет привязан к этой компании
Это рекомендуемый способ для массового добавления пользователей
Ручная привязка администратором:
Если приглашения нет, администратор должен вручную привязать пользователя к компании после первого входа
Пользователь увидит ошибку "no-companies" до тех пор, пока не будет привязан к компании
Рекомендации:
Для корпоративных установок рекомендуется создавать приглашения заранее
Можно использовать API Бипиум для автоматического создания приглашений при добавлении пользователей в Keycloak
Настройте процесс синхронизации пользователей между Keycloak и Бипиум
Настройка для нескольких компаний
Если у вас мультидоменная установка и разные компании должны использовать разные SSO провайдеры:
Создайте отдельную запись провайдера для каждой компании
В поле Компании выберите соответствующую компанию
Настройте разные Client ID в Keycloak для каждой компании (рекомендуется)
Настройка автоматического обновления токенов
Бипиум автоматически обновляет access token через refresh token, если провайдер поддерживает это. Убедитесь, что в Keycloak:
Включена поддержка refresh tokens для клиента
Указаны правильные scope (обычно
openidдостаточно)
Интеграция с Active Directory через Keycloak
Если Keycloak подключен к Active Directory:
Настройте User Federation в Keycloak для подключения к AD
Настройте маппинг атрибутов, чтобы email пользователя из AD попадал в поле
preferred_usernameилиemailв токенеВ Бипиум укажите соответствующее поле в настройке Поле логина
Безопасность
Рекомендации по безопасности:
Используйте HTTPS для Keycloak и Бипиум в production
Регулярно обновляйте Client Secret в Keycloak и синхронизируйте изменения в Бипиум
Ограничьте Valid redirect URIs в Keycloak только необходимыми доменами
Используйте сильные пароли для учетных записей администраторов
Включите логирование в Keycloak для аудита доступа
Пример полной конфигурации
Ниже приведен пример заполнения всех полей для типичной настройки Keycloak:
В Keycloak:
Realm URL:
https://keycloak.company.com/realms/productionClient ID:
bpium-productionClient Secret:
abc123def456ghi789...Valid redirect URIs:
https://bpium.company.com/auth/callbackhttps://app.company.com/auth/callback
В Бипиум (каталог OAuth провайдеры):
Активна
Включено
Провайдер
Keycloak
ClientID
bpium-production
Client secret
abc123def456ghi789...
Порядковый номер
1
Компании
(оставить пустым для всех компаний)
Подпись
Войти через корпоративный аккаунт
Иконка
(загрузить логотип компании)
Другие параметры
{"realmUrl": "https://keycloak.company.com/realms/production"}
Поле логина
preferred_username (или оставить пустым)
Поле имени пользователя
name (или оставить пустым)
Scope
openid profile email (или оставить пустым)
Поддержка
Если у вас возникли проблемы с настройкой SSO, обратитесь к технической поддержке Бипиум [email protected], предоставив:
Версию Бипиум
Версию Keycloak (или другого провайдера)
Описание проблемы
Логи сервера (если возможно)
Скриншоты ошибок
Дополнительные ресурсы
Last updated