Авторы:Гуров Сергей, Бычков Владимир
Актуальность внедрения Single Sign-On (SSO)
Single Sign-On (SSO) — это механизм централизованной аутентификации, позволяющий пользователю войти в систему один раз и получить доступ ко всем подключённым сервисам без повторного ввода учётных данных. Технически SSO реализуется на базе открытых стандартов — OpenID Connect, OAuth 2.0, SAML — что обеспечивает совместимость с большинством современных платформ, включая 1С:Предприятие, 1С:Предприятие Элемент, 1С:Битрикс и другие.
Наличие у компании двух или нескольких веб-пространств является типичным сценарием, при котором внедрение SSO даёт значительные преимущества. Ниже приведены основные причины и выгоды.
Улучшение пользовательского опыта (UX). Пользователи (ваши клиенты, партнёры или сотрудники) не должны дважды проходить аутентификацию при переходе между сайтом и B2B-порталом. SSO позволяет войти один раз и получить доступ ко всем связанным сервисам без повторного ввода логина и пароля. Это особенно важно для B2B-аудитории, где удобство напрямую влияет на лояльность.
Повышение безопасности. Уменьшается количество паролей, которые пользователи хранят или записывают.
- централизованное управление сессиями и возможность мгновенного отзыва доступа (например, при увольнении партнёра);
- снижается риск фишинга и утечек из-за слабых или повторяющихся паролей.
Снижение нагрузки на поддержку. Без SSO пользователи часто обращаются в техподдержку с запросами типа «забыл пароль от портала», «не могу войти после смены пароля на сайте» и т.п. Единая система аутентификации резко сокращает такие обращения, что снижает операционные издержки.
Техническая и бизнес-гибкость. Вы можете использовать современные стандарты (OpenID Connect, SAML), поддерживаемые как 1С:Элемент, так и Битрикс (через модули или интеграции).
- Легко добавить новый сервис в ту же SSO-инфраструктуру без перестройки всей системы аутентификации
Поддержка федеративной идентификации. Если ваши B2B-клиенты используют собственные корпоративные IdP (например, Azure AD, Keycloak или Blitz Identity Provider), SSO позволяет им входить в ваш портал через их внутреннюю систему — это критически важно для крупных заказчиков
Таким образом, для компании с B2B-порталом и публичным сайтом, SSO — не просто «удобство», а стратегический элемент цифровой экосистемы, который повышает безопасность, снижает затраты и делает взаимодействие с клиентами более профессиональным и бесшовным.
Выбор сервера авторизации
Выбор сервера авторизации является фундаментальным решением при построении архитектуры SSO, определяющим не только техническую реализацию, но и соответствие бизнес-требованиям. Несмотря на то, что в рамках описанного ниже кейса мы покажем успешную интеграцию на базе Keycloak, реальная эксплуатация требует учета множества факторов: от требований законодательства до наличия внутренней экспертизы. На российском рынке наиболее часто выбор стоит между международным open-source стандартом и сертифицированными отечественными решениями. Далее мы приводим сравнительный анализ двух популярных платформ — Keycloak и Blitz Identity Provider. Они решают единую задачу управления доступом, но предполагают разные подходы к внедрению, поддержке и соблюдению нормативных требований, что поможет вам определить оптимальный инструмент для вашего ИТ-ландшафта.
Сходства
Функциональность IAM/SSO: Оба решения реализуют централизованную аутентификацию и единую систему управления доступом (IAM), поддерживают Single Sign-On (SSO).
Многофакторная аутентификация (MFA): Поддерживают различные методы MFA: от OTP и SMS до аппаратных ключей и ЭП.
Поддержка внешних IdP: Возможность подключения внешних провайдеров идентификации: соцсети, Госуслуги (ЕСИА) в Blitz; OpenID Connect / SAML IdP в Keycloak.
Самообслуживание пользователей: Оба предоставляют пользователям личные кабинеты для смены паролей, управления сессиями, привязки аккаунтов и настройки 2FA.
Гибкость интеграции: Поддерживают стандартные протоколы: OpenID Connect, OAuth 2.0, SAML (в той или иной степени).
Контроль доступа: Оба позволяют настраивать политики доступа к приложениям и API на основе ролей, атрибутов или условий.
Аудит и безопасность: Ведут журналы событий безопасности, позволяют отслеживать попытки входа и действия пользователей.
Мы рекомендуем,
✅ использовать Keycloak, если:
- У вас нет требований к Российской сертификации.
- У вас есть команда DevOps/разработчиков, способная настроить и поддерживать open-source решение.
- Вам нужны гибкие механизмы авторизации (UMA, fine-grained permissions) и расширенные возможности по управлению API-доступом.
- Вы хотите минимизировать лицензионные расходы и использовать свободное ПО.
- Ваш стек технологий уже включает Kubernetes, Quarkus, Red Hat или другие совместимые платформы.
✅ использовать Blitz Identity Provider, если:
- Ваша организация находится в России и обязана соблюдать российское законодательство (152-ФЗ, ФСТЭК, ГОСТ).
- Вы работаете в госсекторе, банковской сфере или критической инфраструктуре, где требуется сертифицированное ПО.
- Вам нужна нативная интеграция с ЕСИА (Госуслуги).
- Важна русская техподдержка, быстрое реагирование и готовые решения «под ключ».
- Требуется визуальная кастомизация экранов аутентификации без глубоких технических знаний.
Описание кейса
В представленном ниже кейсе рассматривается реализованное нами решение типичной проблемы разрозненных систем, на примере сценария, когда клиенты вынуждены отдельно авторизоваться на публичном сайте. Описанное решение устранило барьеры для пользователей при переходе с сайта на портал и обратно, а также снизило нагрузку на службу поддержки сократив количество запросов на восстановление и администрирование паролей.
Технический вызов при постановке исходной задачи звучал следующим образом: объединить две разнородные платформы в единую систему аутентификации без глубокого вмешательства в сам продукт. Решением стало внедрение Single Sign-On (SSO) через сервер авторизации Keycloak.
Для отработки сценария без рисков для боевых данных были развернуты локальные инстансы Keycloak, демо-версия продукта АКАМ:Портал и копия сайта компании АКАМ на Битрикс. Ниже приведено описание работ, выполненных в рамках кейса
Настройка и администрирование Keycloak
Пропустим описание процесса создания realm и пользователя для него, т.к. есть достаточно подробное описание этой части настройки на сайте https://www.keycloak.org/, и сразу перейдем к шагу по заведению нового клиента для АКАМ:Портал.
Заполним параметры аутентификации
Укажем параметры подключения к АКАМ:Портал в сети
задаем параметры пользователя:
- Имя
- Фамилия
- Имя пользователя (Логин ), ключ связи со связанными клиентами, в нашем случае (сайт АКАМ , АКАМ:Портал)
- E-mail, ключ связи со связанными клиентами
Сохраняем настройки и подключаем таким же образом клиента - сайт AKAM.
Настройка клиента АКАМ:Портал
В настройках подключения АКАМ:Портал, в панели управления, переходим в пункт меню Пользователи -> Списки пользователей выбираем в открывшемся списке, список пользователей нашего приложения (AKAM:Портал)
Добавляем новый сервис ODIC и выполним его подключение
В настройках приложения АКАМ:Портал и включаем использование сервиса внешних учетных записей
Выбираем подключенный сервис внешних учетных записей
В настройках формы аутентификации проверяем правильность расположения на форме пользователя кнопок входа в сервисы
Готово. Проверим работу авторизации в приложении
Выберем вариант входа “Войти через Тестовую систему аутентификации”, переходим на форму авторизации через SSO и проходим авторизацию на ней
Аутентификация прошла успешно, и мы перешли в портал
Настройка клиента - Сайт АКАМ
Для подключения сайта к серверу авторизации, будем использовать готовое решение из каталогов решений 1С-«Битрикс» позволяющее подключить сервис внешних учетных записей
Создаем тестовую страницу на сайте ssotest.php и используем включенную отладку для демонстрации работы и тестовые данные, скомпонованные по инструкции к модулю:
<?$APPLICATION->IncludeComponent("anighr:openidconnect","",Array("AUTH_URL" => "http:// 10.1.0.01:8080/realms/AKAM/protocol/openid-connect/auth","CLIENT_ID" => "bitrix","CLIENT_SECRET" => "o85nygichgoveighvri8gcoe4f9x4rcvhbt","CREATE_USER_IF_NOT_FOUND" => "Y","DEBUG" => "Y","EMAIL_FIELD" => "email","ENABLE_REDIRECT" => "N","FIRST_NAME_FIELD" => "given_name","FULL_NAME_FIELD" => "name","LAST_NAME_FIELD" => "family_name","PROVIDER_NAME" => "AKAM","REDIRECT_COMPONENT_URI" => "http:// 10.1.0.03/ssotest.php","REDIRECT_URI" => "/?from=ssotest.php","SCOPES" => "openid profile email","SEARCH_BY_EMAIL" => "Y","TOKEN_URL" => "http://10.1.0.01:8080/realms/AKAM/protocol/openid-connect/token","USERINFO_URL" => "http:// 10.1.0.01:8080/realms/AKAM/protocol/openid-connect/userinfo","USERNAME_FIELD" => "preferred_username"));?>
В итоге получим следующий результат при переходе на тестовую страницу сайта
По кнопке “Войти через Тестовая система аутентификации” переходим на страницу авторизации через SSO
Проходим авторизацию, и нас переадресует на сайт, но уже с логином и паролем
И самый приятный БОНУС для пользователя - авторизовавшись с помощью SSO, в любом из клиентов, пользователь может выполнить бесшовный (БЕЗ ПОВТОРНОГО ВВОДА ЛОГИНА И ПАРОЛЯ) переход между клиентами, в нашем примере, с сайта АКАМ на АКАМ:Портал
Выводы:
- Техническая реализуемость: Кейс подтвердил возможность бесшовной интеграции разнородных платформ через стандартные протоколы (OpenID Connect) на базе Keycloak, позволяя организовать вход «в один клик» без глубокого вмешательства в код продуктов и нарушения их целостности.
- Стратегическая ценность SSO: Внедрение единой системы аутентификации трансформирует набор разрозненных веб-ресурсов (сайт на Битрикс и B2B-портал на 1С:Элемент) в единую цифровую экосистему, что критически важно для улучшения пользовательского опыта (UX), повышения безопасности и снижения операционных затрат на техническую поддержку.
- Контекст выбора инструмента: Несмотря на успешность демонстрации с Keycloak, финальный выбор сервера авторизации должен диктоваться требованиями бизнеса и регуляторов: Keycloak оптимален для гибкости и экономии лицензионных средств, тогда как для госсектора, критической инфраструктуры и соблюдения 152-ФЗ предпочтительнее сертифицированные российские решения (например, Blitz Identity Provider) пример работы с которым мы планируем показать в следующей статье.