17 сентября 2025

Блог

DevOps и инфраструктура

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.
  • Кастомизацию и адаптацию: можем адаптировать интерфейсы и процессы аутентификации под конкретные бизнес-требования и корпоративный стиль заказчика.