- Шесть задач `secrets-file-*` вместо одной: outline, wakapi, authelia, gramps (средний), gitea, tududi (низкий, выигрыш частичный). Wanderer отпал — файловых секретов не умеет ни meilisearch, ни pocketbase. - Матрица механизмов со ссылками на код уехала в docs/drafts/secrets-file-support.md, родитель — на кладбище.
33 lines
2.4 KiB
Markdown
33 lines
2.4 KiB
Markdown
# 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` с задачи снят — дифф конфига снова читаем.
|
||
|
||
Разбор по каждому полю, версии и ссылки на код:
|
||
[справка по файловым секретам](../drafts/secrets-file-support.md).
|
||
Из декомпозиции `secrets-env-to-file` (2026-07-25).
|
||
|
||
Связано: files/authelia, tasks.py (`authelia-*`), roles/secrets,
|
||
[no-secrets-in-playbook-output](no-secrets-in-playbook-output.md).
|