Проверяет знание системы единой аутентификации и управления доступом.
Keycloak — open‑source платформа IAM, предоставляющая SSO, OAuth2/OpenID Connect, управление пользователями, ролями и федерацией через LDAP/AD. Приложения интегрируются через адаптеры или библиотеку keycloak-js, перенаправляя пользователя на централизованный сервер авторизации.
Основные возможности:
Единный вход (SSO) и выход (SLO) для веб и мобильных клиентов.
Поддержка стандартов OAuth2, OpenID Connect, SAML.
Управление пользователями, группами, ролями, федерация LDAP/Active Directory.
Архитектура:
Keycloak Server: хранит пользователей, роли, политики.
Clients/Adapters: spring-boot, keycloak-js, nodejs, python и др.
Token Flow: приложение перенаправляет на Keycloak, получает JWT/Access Token и использует его для доступа к ресурсам.
Пример интеграции:
from keycloak import KeycloakOpenID
keycloak = KeycloakOpenID(
server_url="https://auth.example.com/",
client_id="my-client",
realm_name="MyRealm",
client_secret_key="ваш_секретный_ключ"
)
# Получение токена
tokens = keycloak.token("user", "password")
access_token = tokens["access_token"]
# Проверка токена
userinfo = keycloak.userinfo(access_token)
print(f"User: {userinfo}")Когда использовать:
В микросервисной архитектуре для единого управления доступом.
Когда нужна интеграция с корпоративными LDAP-сервисами.