mirror of
https://github.com/authelia/authelia.git
synced 2026-10-28 09:34:52 +08:00
Each authz endpoint takes a headers option mapping a response header name to a user attribute, so any standard, extended, or custom attribute can be sent to the proxy. Remote-User, Remote-Groups, Remote-Name and Remote-Email remain the default for every implementation except legacy. Extended user details are only retrieved when a configured attribute requires them, which is determined when the endpoint is built. Header names and the attributes they resolve are validated at startup. --------- Signed-off-by: James Elliott <james-d-elliott@users.noreply.github.com> Co-authored-by: Amir Zarrinkafsh <3339418+nightah@users.noreply.github.com>
174 lines
3.8 KiB
YAML
174 lines
3.8 KiB
YAML
# SPDX-FileCopyrightText: 2026 Authelia
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
---
|
|
certificates_directory: '/certs/'
|
|
theme: 'auto'
|
|
|
|
server:
|
|
address: 'tcp://:9091'
|
|
timeouts:
|
|
read: '30s'
|
|
tls:
|
|
certificate: '/pki/public.backend.crt'
|
|
key: '/pki/private.backend.pem'
|
|
endpoints:
|
|
health:
|
|
verbose: true
|
|
providers:
|
|
- 'storage'
|
|
- 'session'
|
|
- 'user'
|
|
cache: '0'
|
|
authz:
|
|
legacy:
|
|
implementation: 'Legacy'
|
|
auth-request:
|
|
implementation: 'AuthRequest'
|
|
ext-authz:
|
|
implementation: 'ExtAuthz'
|
|
forward-auth:
|
|
implementation: 'ForwardAuth'
|
|
forward-auth-attributes:
|
|
implementation: 'ForwardAuth'
|
|
headers:
|
|
Remote-User:
|
|
user_attribute: 'username'
|
|
Remote-Groups:
|
|
user_attribute: 'groups'
|
|
Remote-Given-Name:
|
|
user_attribute: 'given_name'
|
|
Remote-Employee-Id:
|
|
user_attribute: 'employee_id'
|
|
Remote-Is-Admin:
|
|
user_attribute: 'is_admin'
|
|
rate_limits:
|
|
reset_password_start:
|
|
buckets:
|
|
- period: '2 minutes'
|
|
requests: 20
|
|
reset_password_finish:
|
|
buckets:
|
|
- period: '2 minutes'
|
|
requests: 20
|
|
session_elevation_start:
|
|
buckets:
|
|
- period: '20 seconds'
|
|
requests: 20
|
|
- period: '30 seconds'
|
|
requests: 30
|
|
session_elevation_finish:
|
|
buckets:
|
|
- period: '20 seconds'
|
|
requests: 20
|
|
- period: '30 seconds'
|
|
requests: 30
|
|
|
|
telemetry:
|
|
metrics:
|
|
enabled: true
|
|
address: 'tcp://0.0.0.0:9959'
|
|
|
|
log:
|
|
level: 'debug'
|
|
|
|
storage:
|
|
encryption_key: 'a_not_so_secure_encryption_key'
|
|
local:
|
|
path: '/tmp/db.sqlite3'
|
|
|
|
notifier:
|
|
smtp:
|
|
address: 'smtp://mail.example.com:1025'
|
|
sender: 'admin@example.com'
|
|
|
|
ntp:
|
|
address: 'udp://time.cloudflare.com:123'
|
|
version: 4
|
|
max_desync: '3 seconds'
|
|
disable_startup_check: false
|
|
|
|
regulation:
|
|
max_retries: 3
|
|
find_time: '5 minutes'
|
|
ban_time: '15 minutes'
|
|
|
|
password_policy:
|
|
standard:
|
|
enabled: false
|
|
min_length: 8
|
|
max_length: 0
|
|
require_uppercase: true
|
|
require_lowercase: true
|
|
require_number: true
|
|
require_special: true
|
|
zxcvbn:
|
|
enabled: false
|
|
|
|
session:
|
|
cookies:
|
|
- domain: 'example.com'
|
|
authelia_url: 'https://login.example.com:8080'
|
|
expiration: '1 hour'
|
|
inactivity: '5 minutes'
|
|
remember_me: '1 year'
|
|
|
|
authentication_backend:
|
|
file:
|
|
path: '/config/users.yml'
|
|
extra_attributes:
|
|
employee_id:
|
|
value_type: 'integer'
|
|
|
|
definitions:
|
|
user_attributes:
|
|
is_admin:
|
|
expression: '"admins" in groups'
|
|
|
|
totp:
|
|
issuer: 'example.com'
|
|
disable_reuse_security_policy: true
|
|
|
|
webauthn:
|
|
disable: false
|
|
enable_passkey_login: true
|
|
display_name: 'Authelia'
|
|
attestation_conveyance_preference: 'indirect'
|
|
timeout: '60 seconds'
|
|
filtering:
|
|
permitted_aaguids: []
|
|
prohibited_aaguids: []
|
|
prohibit_backup_eligibility: false
|
|
selection_criteria:
|
|
attachment: ''
|
|
discoverability: 'required'
|
|
user_verification: 'preferred'
|
|
metadata:
|
|
enabled: false
|
|
validate_trust_anchor: true
|
|
validate_entry: false
|
|
validate_entry_permit_zero_aaguid: true
|
|
validate_status: true
|
|
validate_status_permitted: []
|
|
validate_status_prohibited: []
|
|
|
|
access_control:
|
|
default_policy: 'deny'
|
|
rules:
|
|
- domain: ['home.example.com', 'public.example.com']
|
|
policy: 'bypass'
|
|
- domain: 'secure.example.com'
|
|
policy: 'bypass'
|
|
methods:
|
|
- 'OPTIONS'
|
|
- domain: 'deny.example.com'
|
|
policy: 'deny'
|
|
- domain: 'admin.example.com'
|
|
policy: 'two_factor'
|
|
- domain: 'secure.example.com'
|
|
policy: 'two_factor'
|
|
- domain: 'singlefactor.example.com'
|
|
policy: 'one_factor'
|
|
...
|