Files
pet-project-server/docs/backlog/secrets-file-authelia.md
av fbd0a66f44 backlog: secrets-env-to-file разложена по приложениям
- Шесть задач `secrets-file-*` вместо одной: outline, wakapi, authelia,
  gramps (средний), gitea, tududi (низкий, выигрыш частичный). Wanderer
  отпал — файловых секретов не умеет ни meilisearch, ни pocketbase.
- Матрица механизмов со ссылками на код уехала в
  docs/drafts/secrets-file-support.md, родитель — на кладбище.
2026-07-25 12:25:50 +03:00

2.4 KiB
Raw Permalink Blame History

authelia: секреты из файлов

Приоритет: Средний

В configuration.template.yml прямыми значениями стоят семь позиций: jwt-секрет валидации, секрет сессий, ключ шифрования хранилища, hmac-секрет OIDC, приватный jwks-ключ, четыре client_secret и пароль SMTP. Файл на тысячу строк — дифф по нему самый ценный в репозитории, и именно его сейчас приходится глушить целиком.

Пять полей закрываются переменными AUTHELIA_..._FILE. Оставшиеся два — jwks[].key и client_secret клиентов — через _FILE невозможны в принципе: валидатор отвергает ключи, содержащие []. Их покрывает template-фильтр (X_AUTHELIA_CONFIG_FILTERS=template + {{ secret "путь" }}). Механизмы несовместимы в одном поле, поэтому проще выбрать фильтр — он берёт все семь позиций разом, _FILE только пять.

Отдельная и более дешёвая половина задачи: четыре client_secret штатно хранятся хэшем $pbkdf2-sha512$... — плейнтекст с 4.38 вызывает warning валидатора и нужен только при client_secret_jwt, чего у наших клиентов нет. После перевода эти поля перестают быть секретами вообще. Генератор уже есть — inv authelia-gen-secret-and-hash, проверка — inv authelia-validate-config.

Готово, когда в отрендеренном конфиге не осталось секретов открытым текстом и no_log с задачи снят — дифф конфига снова читаем.

Разбор по каждому полю, версии и ссылки на код: справка по файловым секретам. Из декомпозиции secrets-env-to-file (2026-07-25).

Связано: files/authelia, tasks.py (authelia-*), roles/secrets, no-secrets-in-playbook-output.