# Authelia вместо Keycloak для SSO - Дата: 2025-05-07 ## Контекст Для SSO/OIDC на сервере стоял Keycloak (заведён годом ранее, 2024-05-25). Проблема — ресурсы: Keycloak съедал больше 500 МБ RAM, что тяжело для личного сервера с ограниченной оперативной памятью. При этом вся его мощь избыточна: пользователей меньше десяти, realms / federation / тяжёлый корпоративный стек не нужны. Изначально взял 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 по возможностям (нет полноценного интерфейса управления пользователями, realms, federation) — но для < 10 пользователей это не нужно.