Files
pet-project-server/docs/adr/ADR-2025-05-07-authelia-sso.md
T
2026-05-24 15:40:28 +03:00

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 пользователей это не нужно.