Секреты Authelia
Categories:
Для настройки Authelia требуется несколько секретов и паролей. Даже если они могут быть заданы в конфигурационном файле или стандартных переменных окружения, рекомендуется использовать этот метод настройки, описанный ниже.
Filters
Помимо описанных ниже методов, файлы конфигурации можно передавать через фильтры шаблонов. Эти фильтры можно использовать для вставки или изменения содержимого файла. В частности, функция fileContent
может быть использована для получения содержимого файла, а nindent
- для добавления новой строки и отступа содержимого этого файла.
authentication_backend:
ldap:
address: 'ldap://{{ env "SERVICES_SERVER" }}'
tls:
private_key: |
{{- fileContent "./test_resources/example_filter_rsa_private_key" | nindent 8 }}
{{
и }}
ограничители шаблона
вставляем содержимое файла в ключ private_key
с отступом 8 пробелов
Layers
Важно
Хотя этот метод является третьим уровнем многоуровневой модели конфигурации, как описано во введении, этот уровень особенный, так как Authelia не запустится, если вы определите секрет, как и любой другой метод конфигурации.Security
Этот метод немного улучшает безопасность других методов, поскольку позволяет легко разделить конфигурацию логически безопасным способом.
Environment variables
Секретное значение может быть загружено Authelia, если ключ конфигурации заканчивается одним из следующих слов: key
, secret
, password
, token
или certificate_chain
.
Если вы возьмете ожидаемую переменную окружения для конфигурационного параметра с суффиксом _FILE в конце. Значение этих переменных окружения должно быть путем к файлу, который может быть прочитан процессом Authelia, если это не так, Authelia не сможет загрузиться. Authelia автоматически удалит новые строки в конце содержимого файлов.
Например, пароль LDAP может быть определен в конфигурации по пути authentication_backend.ldap.password, поэтому в качестве альтернативы этот пароль может быть задан с помощью переменной окружения под названием
AUTHELIA_AUTHENTICATION_BACKEND_LDAP_PASSWORD_FILE
Список переменных
Configuration Key | Environment Variable |
---|---|
authentication_backend.ldap.password | AUTHELIA_AUTHENTICATION_BACKEND_LDAP_PASSWORD_FILE |
authentication_backend.ldap.tls.certificate_chain | AUTHELIA_AUTHENTICATION_BACKEND_LDAP_TLS_CERTIFICATE_CHAIN_FILE |
authentication_backend.ldap.tls.private_key | AUTHELIA_AUTHENTICATION_BACKEND_LDAP_TLS_PRIVATE_KEY_FILE |
duo_api.integration_key | AUTHELIA_DUO_API_INTEGRATION_KEY_FILE |
duo_api.secret_key | AUTHELIA_DUO_API_SECRET_KEY_FILE |
identity_providers.oidc.hmac_secret | AUTHELIA_IDENTITY_PROVIDERS_OIDC_HMAC_SECRET_FILE |
identity_validation.reset_password.jwt_secret | AUTHELIA_IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET_FILE |
notifier.smtp.password | AUTHELIA_NOTIFIER_SMTP_PASSWORD_FILE |
notifier.smtp.tls.certificate_chain | AUTHELIA_NOTIFIER_SMTP_TLS_CERTIFICATE_CHAIN_FILE |
notifier.smtp.tls.private_key | AUTHELIA_NOTIFIER_SMTP_TLS_PRIVATE_KEY_FILE |
session.redis.high_availability.sentinel_password | AUTHELIA_SESSION_REDIS_HIGH_AVAILABILITY_SENTINEL_PASSWORD_FILE |
session.redis.password | AUTHELIA_SESSION_REDIS_PASSWORD_FILE |
session.redis.tls.certificate_chain | AUTHELIA_SESSION_REDIS_TLS_CERTIFICATE_CHAIN_FILE |
session.redis.tls.private_key | AUTHELIA_SESSION_REDIS_TLS_PRIVATE_KEY_FILE |
session.secret | AUTHELIA_SESSION_SECRET_FILE |
storage.encryption_key | AUTHELIA_STORAGE_ENCRYPTION_KEY_FILE |
storage.mysql.password | AUTHELIA_STORAGE_MYSQL_PASSWORD_FILE |
storage.mysql.tls.certificate_chain | AUTHELIA_STORAGE_MYSQL_TLS_CERTIFICATE_CHAIN_FILE |
storage.mysql.tls.private_key | AUTHELIA_STORAGE_MYSQL_TLS_PRIVATE_KEY_FILE |
storage.postgres.password | AUTHELIA_STORAGE_POSTGRES_PASSWORD_FILE |
storage.postgres.tls.certificate_chain | AUTHELIA_STORAGE_POSTGRES_TLS_CERTIFICATE_CHAIN_FILE |
storage.postgres.tls.private_key | AUTHELIA_STORAGE_POSTGRES_TLS_PRIVATE_KEY_FILE |
Секреты в конфигурационном файле
Хранение секретов
Если по каким-то причинам вы решили хранить секреты в конфигурационном файле, настоятельно рекомендуется убедиться, что права доступа к конфигурационному файлу установлены соответствующим образом, чтобы другие пользователи или процессы не могли получить доступ к этому файлу. Обычно для UNIX подходят следующие разрешения: 0600.Секреты, открытые в переменной окружения
Во всех версиях 4.30.0+ вы можете задать секреты с помощью переменных окружения без суффикса _FILE, установив значение, которое вы хотите задать в конфигурации, однако мы настоятельно рекомендуем не использовать эту возможность и вместо этого использовать файловые секреты, описанные выше.