2.8 KiB
Authelia вместо Keycloak для SSO
- Дата: 2025-05-07
Контекст
Для SSO/OIDC на сервере стоял Keycloak (заведён годом ранее, 2024-05-25). Проблема — ресурсы: Keycloak съедал больше 500 МБ RAM, что тяжело для личного сервера c ограниченной оперативной памятью. При этом вся его мощь избыточна: пользователей меньше десяти, realms / federation / тяжёлый enterprise-стек не нужны. Изначально взял Keycloak, потому что нужен был OIDC сервер для настройки Outline: когда настраивал был понятный гайд по OIDC и Keycloak.
Требовался лёгкий по памяти SSO-провайдер с хорошей документацией, желательно на Go/Rust.
Рассмотренные варианты
- Оставить Keycloak. Отвергнуто: > 500 МБ RAM ради < 10 пользователей, функционал избыточен для личного сервера.
- Authelia (выбран). Лёгкая (Go), малое потребление памяти, хорошая документация. Умеет и OIDC, и forward-auth.
Критерии отбора замены: минимальный расход RAM, хорошая документация, стек Go/Rust.
Решение
Заменили Keycloak на Authelia как провайдер аутентификации
(коммиты a77fefc, d1500ea, 3a23c08). Authelia используется в трёх
режимах:
- OIDC для приложений, которым он нужен (например, Outline).
- Forward-auth агент в Caddy — удобно там, где полноценный OIDC избыточен.
- Закрытие чувствительных приложений за единым логином. Раньше для этого использовался basic auth в Caddy.
Последствия
+Резко меньше потребление RAM — критично для сервера с дефицитом памяти.+Forward-auth закрывает приложения без OIDC проще, чем поднимать отдельный OIDC-клиент под каждое.+Единая точка аутентификации вместо разрозненного basic auth в Caddy.-Authelia беднее Keycloak по возможностям (нет полноценного UI управления пользователями, realms, federation) — но для < 10 пользователей это не нужно.