17 сентября 2025
Блог
Keycloak: Внедрение единой системы идентификации
В современных условиях любая растущая компания рано или поздно сталкивается с необходимостью централизованного управления доступом сотрудников к информационным системам. Эффективным решением в такой ситуации является внедрение единой системы идентификации на базе Keycloak.
В мире информационных технологий нет ничего постоянного. Стандарты меняются: если раньше стандартом было развертывание локальных серверов и отдельных учетных записей, то сейчас фокус сместился в сторону централизованного управления идентификацией. Современным базовым стандартом для любой развитой IT-инфраструктуры стал Единый Вход или SSO (Single Sign-On).
SSO — это метод аутентификации, который позволяет пользователю один раз войти в систему и получить доступ к нескольким связанным приложениям или сервисам без необходимости повторного ввода учетных данных.
Наша команда на практике прошла путь интеграции с различными SSO. Мы работали с такими решениями, как WSO2 и ADFS, и каждый раз убеждались в том, насколько SSO важен для инфраструктуры.
Этот опыт позволил определить требования к Identity Provider’у: открытость, масштабируемость и возможность адаптации под быстро меняющиеся бизнес-задачи. И здесь на первый план выходит Keycloak.
Почему именно Keycloak?
В отличие от многих аналогов, Keycloak — это решение с рядом преимуществ:
- Открытый исходный код и отсутствие лицензионных затрат: Keycloak распространяется под лицензией Apache 2.0, что означает его бесплатность для коммерческого использования.
- Простота внедрения и разработки: легко настраивается и интегрируется благодаря поддержке всех ключевых протоколов (OpenID Connect, SAML 2.0, OAuth 2.0)
- Платформа предлагает различные механизмы для защиты (двухфакторная аутентификация, настройка требований к сложности пароля и т.д.)
- Keycloak дает возможность кастомизации. Вы можете полностью изменить интерфейс страницы входа, написать собственные модули для нестандартных сценариев аутентификации и работать с любыми источниками пользователей (базы данных, Active Directory и тд.)
- Keycloak поддерживает работу в отказоустойчивом режиме.
Наша команда не в первый раз работает с этой платформой, и недавно провела внедрение системы идентификации на базе Keycloak для еще одного проекта и поделилась подробностями.
С чего все началось
В рамках проекта заказчик стоял перед проблемой: наличие двух больших, но совершенно разных групп пользователей.
- Первая группа – офисные сотрудники, уже имевшие учетные записи в Active Directory.
- Вторая группа – многочисленные сотрудники удаленных точек продаж, не заведенные в централизованные каталоги и использовавшие для доступа к системам общие или локальные учетные записи.
Единственной системой, где были заведены все сотрудники, была ERP-система, в которой сохранялся только статус сотрудников, что создавало сложности в управлении и неудобства для пользователей.
Было принято решение о внедрении единой системы идентификации и управления доступом на базе Keycloak в отказоустойчивом режиме.
- Ключевые цели проекта включали в себя:
- Создание единого хранилища учетных данных всех пользователей;
- Интеграция этого хранилища с ERP-системой для синхронизации актуальных данных;
- Подключение к Keycloak существующего Active Directory и каталога с пользователями удаленных филиалов;
- Настройка интеграции информационных систем компании с Keycloak.
Опыт внедрения: ключевые этапы
Работа была разделена на несколько четких этапов, что позволило системно подойти к решению этой задачи и завершить внедрение единой системы аутентификации для 44 информационных систем примерно за год.
Этап 1. Подготовка и проектирование
На этом этапе было сделано следующее:
- Продумали, как будут связаны между собой все технические компоненты, чтобы система работала без сбоев.
- Определили, сколько пользователей система может обслуживать одновременно, чтобы не “легла” в самый ответственный момент.
- Прописали, какие данные и между какими системами будут передаваться.
- Провели анализ и выбор систем для пилотного подключения.
- Изучили и подобрали способ двухфакторной аутентификации.
- Создали макеты страниц входа и личного кабинета пользователя.
- Настроили тестовую среду и создали пространство, где можно было бы тестировать настройки, не мешая работе других систем.
Этап 2. Реализация
На этом этапе мы перешли к практической реализации:
- Развернули две пробные версии системы (для разработки и тестирования): Dev и Stage окружения Keycloak.
- Настроили VPN-туннель Site-to-site для безопасного взаимодействия между серверами и CI/CD для сервиса интеграций.
- Внедрили и протестировали двухфакторную аутентификацию на Stage окружении.
- Для ERP-системы определили возможные способы получения информации обо всех активных сотрудниках компании, а также сформировали основной перечень атрибутов данных, которые система должна передавать.
- Провели первую успешная интеграцию: команда установила и подключила к Keycloak две тестовые системы – NetBox и NextCloud. Это позволило отработать процесс переключения и подготовить универсальную инструкцию для коллег из смежных систем.
- Завершили работу над дизайном страницы авторизации и личного кабинета пользователя в Keycloak.
Проверенное решение и наш подход
Keycloak зарекомендовал себя как надежный стандарт. Это решение позволяет эффективно решать задачи безопасности и управления доступом.
Наша работа с Keycloak включает в себя:
- Полный цикл внедрения Keycloak: от проектирования отказоустойчивой архитектуры до подключения конечных систем.
- Глубокую интеграцию: подключение Keycloak к самым разным системам, а также интеграции с каталогами (например, Active Directory).
- Миграцию с других решений: понимаем тонкости переноса пользователей и политик с других SSO-провайдеров на платформу Keycloak.
- Кастомизацию и адаптацию: можем адаптировать интерфейсы и процессы аутентификации под конкретные бизнес-требования и корпоративный стиль заказчика.