Что такое Keycloak

После прошлой статьи про OAuth 2.0, OpenID Connect и SAML я хочу показать более прикладную сторону вопроса.

Понимать протоколы важно. Но в реальной инфраструктуре почти всегда возникает следующий вопрос: А нужно ли вообще реализовывать аутентификацию и авторизацию отдельно в каждом внутреннем сервисе?

И вот здесь многие команды рано или поздно приходят к решениям вроде Keycloak.

━━━━━━━━━━ Что такое Keycloak? ━━━━━━━━━━

Keycloak это централизованная IAM / IdP-площадка для аутентификации и управления доступом. Если говорить проще, это сервис, который позволяет вынести значимую часть логики: ◦ логин пользователей ◦ SSO ◦ federation / brokering identity ◦ роли, группы, realm/client-модель ◦ интеграции по OpenID Connect, OAuth 2.0, SAML в одно место, а не размазывать всё это по каждому внутреннему приложению отдельно.

Про сами SAML / OIDC / OAuth 2.0 я уже писал ранее в посте: ⇨ “Войти через другой сервис” удобно, но что происходит внутри

━━━━━━━━━━ Почему это полезно для инфраструктуры? ━━━━━━━━━━

Keycloak помогает централизовать реализацию ролей/access/refresh token flow/auth/authz.

Разработчикам не нужно каждый раз заново изобретать: • форму входа • хранение identity • базовую интеграцию SSO • общую точку выдачи токенов • часть ролевой и клиентской модели доступа

Так же чем больше у вас разных реализаций аутентификации и авторизации, тем больше вероятность, что где-то будет ошибка: • слабая логика сессий • невалидная работа с токенами • разная ролевая модель • устаревший или небезопасный самописный flow • различные варианты broken access control

Когда auth-слой централизован, его: • проще анализировать • проще сопровождать • проще обновлять • проще валидировать с точки зрения AppSec

━━━━━━━━━━ Важно Keycloak это не панацея ━━━━━━━━━━

Централизация — это хорошо. Но она не отменяет риски неправильной архитектуры и эксплуатации.

Даже если у вас есть Keycloak, проблемы всё равно могут остаться, если: 1. Используются устаревшие или слабые сценарии / протоколы 2. На стороне приложений некорректно валидируются токены 3. Ролевая модель реализована формально, а доступ по факту проверяется плохо 4. Backend доверяет любому “успешному логину”, но не проверяет, что именно разрешено пользователю 5. Есть ошибки в logout, session handling, client configuration, redirect logic

━━━━━━━━━━ Keycloak: полезные материалы для изучения, интеграции и понимания ━━━━━━━━━━

• GitHub-репозиторий Keycloak github.com/keycloak/keycloak

• Официальный сайт Keycloak keycloak.org

• “Keycloak: как упростить аутентификацию и не сойти с ума” habr.com/ru/companies/clevertec/articles/897386

• “SSO через Keycloak для инфраструктурных сервисов” habr.com/ru/companies/oleg-bunin/articles/936338

#Keycloak #IAM #SSO #OAuth2 #OpenIDConnect #OIDC #SAML #AppSec #CyberSecurity #DevSecOps #Authentication #Authorization #Backend #InfoSec

Что такое Keycloak | Сетка — социальная сеть от hh.ru