Интеграция Keycloak для аутентификации на сайте
Keycloak — open-source Identity and Access Management от Red Hat. Self-hosted аналог Auth0/Okta, поддерживает OpenID Connect, OAuth 2.0, SAML 2.0. Развёртывается на собственной инфраструктуре — данные пользователей не покидают периметр.
Когда выбирают Keycloak
- Требование хранить данные в собственной инфраструктуре
- Нужен SSO для нескольких внутренних приложений
- Enterprise: интеграция с Active Directory/LDAP
- Compliance: GDPR, требования регуляторов к локализации данных
- Нет платёжного объекта для подписки на IDaaS
Развёртывание
Настройка Realm и Client
- Создать Realm (логически изолированная область аутентификации)
- Создать Client для веб-приложения:
- Client type: OpenID Connect
- Client authentication: On (confidential)
- Valid redirect URIs:
- Valid post logout redirect URIs:
- Сохранить Client ID и Client Secret (Credentials tab)
Laravel интеграция через Socialite
Прямая верификация JWT (для API)
Keycloak публикует JWKS по стандартному URL. API может проверять JWT напрямую без обращения к Keycloak:
LDAP / Active Directory интеграция
В Keycloak Admin Console:
- User Federation → Add provider → LDAP
- Указать Connection URL, Bind DN, Users DN
- Настроить маппинг атрибутов: CN → username, mail → email
После настройки сотрудники входят с корпоративными логинами напрямую через Keycloak.
Logout
Keycloak поддерживает front-channel и back-channel logout (RP-Initiated Logout):
Сроки работ
| Этап | Время |
|---|---|
| Развёртывание Keycloak (Docker + PostgreSQL) | 1 день |
| Настройка Realm, Client, ролей | 0.5 дня |
| Laravel интеграция + callback | 1.5 дня |
| JWT middleware для API | 1 день |
| LDAP/AD интеграция (если нужна) | 1–2 дня |
| Тесты | 1 день |
Итого: 5–7 рабочих дней.







