Add legacy ADR
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
# 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
|
||||
пользователей это не нужно.
|
||||
Reference in New Issue
Block a user