Архитектура и принципы работы

Архитектура

KeyCloak представляет собой написанное в технологиях Java EE веб-приложение, развёрнутое внутри сервера приложений WildFly (включён в дистрибутив). Веб-приложение включает в себя:

  • административную консоль (admin console) — GUI для управления пользователями/группами и т.п.);
  • account — GUI пользователя для самостоятельного управления личной информацией, смены пароля и т.п.;
  • REST-интерфейс — предоставляет внешним системам возможность интегрироваться с KeyCloak, управлять пользователями, группами и т.п. программным образом;
  • endpoint'ы протоколов OpenID Connect и SAML.

Клиенты и адаптеры

Веб-приложения и веб-сервисы, аутентифицируемые посредством KeyCloak, принято называть клиентами (clients). Процесс конфигурации клиента выглядит следующим образом:

  1. администратор регистрирует клиента через admin console;
  2. разработчик клиентского приложения подключает адаптер (для Java EE) или стороннюю библиотеку и настраивает их.

Проект KeyCloak предоставляет адаптеры для распространённых серверов Java EE (Tomcat/TomEE, JBoss/WildFly, Jetty), а также generic adapter для остальных серверов (GlassFish, WebLogic, WebSphere etc.)

Для C#/ASP.NET, PHP, Python и т.п. существуют сторонние библиотеки (см. Securing Applications and Services Guide).

Процесс аутентификации

Аутентификация осуществляется следующим образом:

  1. Пользователь открывает клиентское приложение;
  2. Если запрошен ресурс, требующий аутентификации, то:
    1. если пользователь уже аутентифицирован, открыть ресурс;
    2. если пользователь не аутентифицирован, перенаправить на страницу входа KeyCloak;
  3. В случае успешной аутентификации происходит обратное перенаправление и открытие ресурса.

Выше был описан лишь один из сценариев (interactive flow). OpenID Connect и SAML поддерживают множество дополнительных сценариев (flows); подробнее об этом см. Server Administration Guide, 6.3 Authentication Flows.

results matching ""

    No results matching ""