[mod] role:authelia
This commit is contained in:
parent
547fdb4997
commit
2f18fc9570
8 changed files with 349 additions and 207 deletions
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"var_authelia_version": "4.37.5",
|
"var_authelia_version": "4.37.5",
|
||||||
"var_authelia_variant": "amd64",
|
"var_authelia_architecture": "amd64",
|
||||||
"var_authelia_listen_address": "0.0.0.0",
|
"var_authelia_listen_address": "0.0.0.0",
|
||||||
"var_authelia_jwt_secret": "authelia_jwt_secret",
|
"var_authelia_jwt_secret": "authelia_jwt_secret",
|
||||||
"var_authelia_users_file_path": "/var/authelia/users.yml",
|
"var_authelia_users_file_path": "/var/authelia/users.yml",
|
||||||
|
|
132
ansible/roles/authelia/files/conf-compose.py
Normal file
132
ansible/roles/authelia/files/conf-compose.py
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import sys as _sys
|
||||||
|
import os as _os
|
||||||
|
import yaml as _yaml
|
||||||
|
import json as _json
|
||||||
|
import argparse as _argparse
|
||||||
|
|
||||||
|
|
||||||
|
def file_read(path):
|
||||||
|
handle = open(path, "r")
|
||||||
|
content = handle.read()
|
||||||
|
handle.close()
|
||||||
|
return content
|
||||||
|
|
||||||
|
|
||||||
|
def file_write(path, content):
|
||||||
|
directory = _os.path.dirname(path)
|
||||||
|
if (not _os.path.exists(directory)):
|
||||||
|
_os.makedirs(directory, exist_ok = True)
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
handle = open(path, "w")
|
||||||
|
handle.write(content)
|
||||||
|
handle.close()
|
||||||
|
return content
|
||||||
|
|
||||||
|
|
||||||
|
def dict_merge(core, mantle, path = None):
|
||||||
|
if (path is None):
|
||||||
|
path = []
|
||||||
|
result = {}
|
||||||
|
for source in [core, mantle]:
|
||||||
|
for (key, value_new, ) in source.items():
|
||||||
|
path_ = (path + [key])
|
||||||
|
type_new = type(value_new)
|
||||||
|
if (not (key in result)):
|
||||||
|
result[key] = value_new
|
||||||
|
else:
|
||||||
|
value_old = result[key]
|
||||||
|
type_old = type(value_old)
|
||||||
|
if (value_old is None):
|
||||||
|
result[key] = value_new
|
||||||
|
else:
|
||||||
|
if (not (type_old == type_new)):
|
||||||
|
raise ValueError(
|
||||||
|
"type mismatch at path %s: %s vs. %s"
|
||||||
|
% (
|
||||||
|
".".join(path),
|
||||||
|
str(type_old),
|
||||||
|
str(type_new),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
if (type_old == dict):
|
||||||
|
result[key] = dict_merge(value_old, value_new, path_)
|
||||||
|
elif (type_old == list):
|
||||||
|
result[key] = (value_old + value_new)
|
||||||
|
else:
|
||||||
|
result[key] = value_new
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
## args
|
||||||
|
argument_parser = _argparse.ArgumentParser()
|
||||||
|
argument_parser.add_argument(
|
||||||
|
"-m",
|
||||||
|
"--main-file-path",
|
||||||
|
type = str,
|
||||||
|
dest = "main_file_path",
|
||||||
|
default = "/etc/authelia/conf.d/main.json",
|
||||||
|
metavar = "<main-file-path>",
|
||||||
|
)
|
||||||
|
argument_parser.add_argument(
|
||||||
|
"-c",
|
||||||
|
"--clients-directory-path",
|
||||||
|
type = str,
|
||||||
|
dest = "clients_directory_path",
|
||||||
|
default = "/etc/authelia/conf.d/clients",
|
||||||
|
metavar = "<clients-directory-path>",
|
||||||
|
)
|
||||||
|
argument_parser.add_argument(
|
||||||
|
"-f",
|
||||||
|
"--output-format",
|
||||||
|
type = str,
|
||||||
|
choices = ["json", "yaml"],
|
||||||
|
dest = "output_format",
|
||||||
|
default = "yaml",
|
||||||
|
metavar = "<output-format>",
|
||||||
|
)
|
||||||
|
argument_parser.add_argument(
|
||||||
|
"-o",
|
||||||
|
"--output-path",
|
||||||
|
type = str,
|
||||||
|
dest = "output_path",
|
||||||
|
default = "/etc/authelia/configuration.yml",
|
||||||
|
metavar = "<output-path>",
|
||||||
|
)
|
||||||
|
args = argument_parser.parse_args()
|
||||||
|
|
||||||
|
## exec
|
||||||
|
data = {}
|
||||||
|
### main
|
||||||
|
if True:
|
||||||
|
data_ = _json.loads(file_read(args.main_file_path))
|
||||||
|
data = dict_merge(data, data_)
|
||||||
|
### clients
|
||||||
|
if True:
|
||||||
|
for name in _os.listdir(args.clients_directory_path):
|
||||||
|
data__ = _json.loads(file_read(_os.path.join(args.clients_directory_path, name)))
|
||||||
|
data_ = {
|
||||||
|
"identity_providers": {
|
||||||
|
"oidc": {
|
||||||
|
"clients": [data__]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data = dict_merge(data, data_)
|
||||||
|
|
||||||
|
## output
|
||||||
|
if True:
|
||||||
|
if (args.output_format == "json"):
|
||||||
|
output_content = _json.dumps(data, indent = "\t")
|
||||||
|
elif (args.output_format == "yaml"):
|
||||||
|
output_content = _yaml.dump(data)
|
||||||
|
else:
|
||||||
|
raise ValueError("invalid output format")
|
||||||
|
file_write(args.output_path, output_content)
|
||||||
|
|
||||||
|
|
||||||
|
main()
|
|
@ -1,6 +1,11 @@
|
||||||
|
## Beschreibung
|
||||||
|
|
||||||
|
- zum Aufsetzen des Authentifizierungs-Dienstes [Authelia](https://www.authelia.com/)
|
||||||
|
- um einen Clients hinzuzfügen, erstellt man eine entsprechende JSON-Datei in `/etc/authelia/conf.d/clients` und führt aus `/usr/bin/authelia-conf-compose`
|
||||||
|
|
||||||
|
|
||||||
## Verweise
|
## Verweise
|
||||||
|
|
||||||
- [Projekt-Website](https://www.authelia.com/)
|
|
||||||
- [GitHub-Seite](https://github.com/authelia/authelia)
|
- [GitHub-Seite](https://github.com/authelia/authelia)
|
||||||
- [Installations-Anleitung](https://www.authelia.com/integration/deployment/bare-metal/)
|
- [Installations-Anleitung](https://www.authelia.com/integration/deployment/bare-metal/)
|
||||||
- [Dokumentation | Konfiguration](https://www.authelia.com/configuration/)
|
- [Dokumentation | Konfiguration](https://www.authelia.com/configuration/)
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"when": false,
|
"name": "packages | prerequisites",
|
||||||
"name": "prepare package installation 1",
|
|
||||||
"become": true,
|
"become": true,
|
||||||
"ansible.builtin.apt": {
|
"ansible.builtin.apt": {
|
||||||
"pkg": [
|
"pkg": [
|
||||||
|
@ -11,16 +10,14 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": false,
|
"name": "packages | keys",
|
||||||
"name": "prepare package installation 2",
|
|
||||||
"become": true,
|
"become": true,
|
||||||
"ansible.builtin.apt_key": {
|
"ansible.builtin.apt_key": {
|
||||||
"url": "https://apt.authelia.com/organization/signing.asc"
|
"url": "https://apt.authelia.com/organization/signing.asc"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": false,
|
"name": "packages | repository",
|
||||||
"name": "prepare package installation 3",
|
|
||||||
"become": true,
|
"become": true,
|
||||||
"ansible.builtin.apt_repository": {
|
"ansible.builtin.apt_repository": {
|
||||||
"repo": "deb https://apt.authelia.com/stable/debian/debian/ all main"
|
"repo": "deb https://apt.authelia.com/stable/debian/debian/ all main"
|
||||||
|
@ -28,59 +25,18 @@
|
||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"when": false,
|
"name": "packages | installation",
|
||||||
"name": "install packages",
|
|
||||||
"become": true,
|
"become": true,
|
||||||
"ansible.builtin.apt": {
|
"ansible.builtin.apt": {
|
||||||
"update_cache": true,
|
"update_cache": true,
|
||||||
"pkg": [
|
"pkg": [
|
||||||
"openssl",
|
"openssl",
|
||||||
"python3-cryptography",
|
"python3-cryptography",
|
||||||
|
"python3-yaml",
|
||||||
"authelia"
|
"authelia"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "download",
|
|
||||||
"delegate_to": "localhost",
|
|
||||||
"ansible.builtin.get_url": {
|
|
||||||
"url": "https://github.com/authelia/authelia/releases/download/v{{var_authelia_version}}/authelia-v{{var_authelia_version}}-linux-{{var_authelia_variant}}.tar.gz",
|
|
||||||
"dest": "/tmp/authelia.tar.gz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "unpack | preparation",
|
|
||||||
"delegate_to": "localhost",
|
|
||||||
"ansible.builtin.file": {
|
|
||||||
"state": "directory",
|
|
||||||
"dest": "/tmp/authelia"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "unpack | execution",
|
|
||||||
"delegate_to": "localhost",
|
|
||||||
"ansible.builtin.unarchive": {
|
|
||||||
"src": "/tmp/authelia.tar.gz",
|
|
||||||
"dest": "/tmp/authelia"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "setup binary",
|
|
||||||
"become": true,
|
|
||||||
"ansible.builtin.copy": {
|
|
||||||
"src": "/tmp/authelia/authelia-linux-{{var_authelia_variant}}",
|
|
||||||
"dest": "/usr/bin/authelia",
|
|
||||||
"mode": "0744"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "systemd unit",
|
|
||||||
"become": true,
|
|
||||||
"ansible.builtin.template": {
|
|
||||||
"src": "systemd-unit.j2",
|
|
||||||
"dest": "/etc/systemd/system/authelia.service"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "generate private key for signing OIDC JWTs",
|
"name": "generate private key for signing OIDC JWTs",
|
||||||
"become": true,
|
"become": true,
|
||||||
|
@ -93,11 +49,40 @@
|
||||||
"register": "temp_tls_result"
|
"register": "temp_tls_result"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "emplace configuration",
|
"name": "configuration | compose script",
|
||||||
|
"become": true,
|
||||||
|
"ansible.builtin.copy": {
|
||||||
|
"src": "conf-compose.py",
|
||||||
|
"dest": "/usr/bin/authelia-conf-compose",
|
||||||
|
"mode": "0700"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "configuration | directories",
|
||||||
|
"become": true,
|
||||||
|
"loop": [
|
||||||
|
"/etc/authelia/conf.d",
|
||||||
|
"/etc/authelia/conf.d/clients"
|
||||||
|
],
|
||||||
|
"ansible.builtin.file": {
|
||||||
|
"state": "directory",
|
||||||
|
"path": "{{item}}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "configuration | main",
|
||||||
"become": true,
|
"become": true,
|
||||||
"ansible.builtin.template": {
|
"ansible.builtin.template": {
|
||||||
"src": "configuration.yml.j2",
|
"src": "conf-main.json.j2",
|
||||||
"dest": "/etc/authelia/configuration.yml"
|
"dest": "/etc/authelia/conf.d/main.json"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "configuration | client | dummy",
|
||||||
|
"become": true,
|
||||||
|
"ansible.builtin.template": {
|
||||||
|
"src": "conf-client-dummy.json.j2",
|
||||||
|
"dest": "/etc/authelia/conf.d/clients/dummy.json"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -128,7 +113,6 @@
|
||||||
"name": "apply",
|
"name": "apply",
|
||||||
"become": true,
|
"become": true,
|
||||||
"ansible.builtin.systemd_service": {
|
"ansible.builtin.systemd_service": {
|
||||||
"enabled": true,
|
|
||||||
"state": "restarted",
|
"state": "restarted",
|
||||||
"name": "authelia"
|
"name": "authelia"
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"public": false,
|
||||||
|
"id": "dummy",
|
||||||
|
"secret": "d1424b378e4fbbc153f330f33b74ab192525b98cc2dd58b2e8d01c2737be00c6",
|
||||||
|
"redirect_uris": [
|
||||||
|
]
|
||||||
|
}
|
166
ansible/roles/authelia/templates/conf-main.json.j2
Normal file
166
ansible/roles/authelia/templates/conf-main.json.j2
Normal file
|
@ -0,0 +1,166 @@
|
||||||
|
{
|
||||||
|
"theme": "auto",
|
||||||
|
"jwt_secret": "{{var_authelia_jwt_secret}}",
|
||||||
|
"default_2fa_method": "totp",
|
||||||
|
"server": {
|
||||||
|
"host": "{{var_authelia_listen_address}}",
|
||||||
|
"port": 9091,
|
||||||
|
"path": "",
|
||||||
|
"enable_pprof": false,
|
||||||
|
"enable_expvars": false,
|
||||||
|
"disable_healthcheck": false
|
||||||
|
},
|
||||||
|
"log": {
|
||||||
|
"level": "info",
|
||||||
|
"format": "json",
|
||||||
|
"file_path": "{{var_authelia_log_file_path}}",
|
||||||
|
"keep_stdout": false
|
||||||
|
},
|
||||||
|
"telemetry": {
|
||||||
|
"metrics": {
|
||||||
|
"enabled": false,
|
||||||
|
"address": "tcp://0.0.0.0:9959"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"totp": {
|
||||||
|
"disable": false,
|
||||||
|
"issuer": "authelia.com",
|
||||||
|
"algorithm": "sha1",
|
||||||
|
"digits": 6,
|
||||||
|
"period": 30,
|
||||||
|
"skew": 1,
|
||||||
|
"secret_size": 32
|
||||||
|
},
|
||||||
|
"webauthn": {
|
||||||
|
"disable": true,
|
||||||
|
"timeout": "60s",
|
||||||
|
"display_name": "Authelia",
|
||||||
|
"attestation_conveyance_preference": "indirect",
|
||||||
|
"user_verification": "preferred"
|
||||||
|
},
|
||||||
|
"ntp": {
|
||||||
|
"address": "{{var_authelia_ntp_server}}",
|
||||||
|
"version": 4,
|
||||||
|
"max_desync": "3s",
|
||||||
|
"disable_startup_check": false,
|
||||||
|
"disable_failure": false
|
||||||
|
},
|
||||||
|
"authentication_backend": {
|
||||||
|
"password_reset": {
|
||||||
|
"disable": true,
|
||||||
|
"custom_url": ""
|
||||||
|
},
|
||||||
|
"refresh_interval": "5m",
|
||||||
|
"file": {
|
||||||
|
"path": "{{var_authelia_users_file_path}}",
|
||||||
|
"watch": true,
|
||||||
|
"search": {
|
||||||
|
"email": false,
|
||||||
|
"case_insensitive": false
|
||||||
|
},
|
||||||
|
"password": {
|
||||||
|
"algorithm": "argon2",
|
||||||
|
"argon2": {
|
||||||
|
"variant": "argon2id",
|
||||||
|
"iterations": 3,
|
||||||
|
"memory": 65536,
|
||||||
|
"parallelism": 4,
|
||||||
|
"key_length": 32,
|
||||||
|
"salt_length": 16
|
||||||
|
},
|
||||||
|
"scrypt": {
|
||||||
|
"iterations": 16,
|
||||||
|
"block_size": 8,
|
||||||
|
"parallelism": 1,
|
||||||
|
"key_length": 32,
|
||||||
|
"salt_length": 16
|
||||||
|
},
|
||||||
|
"pbkdf2": {
|
||||||
|
"variant": "sha512",
|
||||||
|
"iterations": 310000,
|
||||||
|
"salt_length": 16
|
||||||
|
},
|
||||||
|
"sha2crypt": {
|
||||||
|
"variant": "sha512",
|
||||||
|
"iterations": 50000,
|
||||||
|
"salt_length": 16
|
||||||
|
},
|
||||||
|
"bcrypt": {
|
||||||
|
"variant": "standard",
|
||||||
|
"cost": 12
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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,
|
||||||
|
"min_score": 3
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"access_control": {
|
||||||
|
"default_policy": "one_factor"
|
||||||
|
},
|
||||||
|
"session": {
|
||||||
|
"name": "authelia_session",
|
||||||
|
"domain": "{{var_authelia_session_domain}}",
|
||||||
|
"same_site": "lax",
|
||||||
|
"secret": "{{var_authelia_session_secret}}",
|
||||||
|
"expiration": "1h",
|
||||||
|
"inactivity": "5m",
|
||||||
|
"remember_me_duration": "1M"
|
||||||
|
},
|
||||||
|
"regulation": {
|
||||||
|
"max_retries": 3,
|
||||||
|
"find_time": "2m",
|
||||||
|
"ban_time": "5m"
|
||||||
|
},
|
||||||
|
"storage": {
|
||||||
|
"encryption_key": "{{var_authelia_storage_encryption_key}}",
|
||||||
|
"local": {
|
||||||
|
"path": "{{var_authelia_storage_path}}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notifier": {
|
||||||
|
"disable_startup_check": true,
|
||||||
|
{% if var_authelia_notification_mode == "file" %}
|
||||||
|
"filesystem": {
|
||||||
|
"filename": "{{var_authelia_notification_file_path}}"
|
||||||
|
}
|
||||||
|
{% endif %}
|
||||||
|
{% if var_authelia_notification_mode == "smtp" %}
|
||||||
|
"smtp": {
|
||||||
|
"host": "{{var_authelia_notification_smtp_host}}",
|
||||||
|
"port": {{var_authelia_notification_smtp_port}},
|
||||||
|
"username": "{{var_authelia_notification_smtp_username}}",
|
||||||
|
"password": "{{var_authelia_notification_smtp_password}}",
|
||||||
|
"sender": "{{var_authelia_notification_smtp_sender}}",
|
||||||
|
"disable_require_tls": false,
|
||||||
|
"disable_html_emails": false,
|
||||||
|
"tls": {
|
||||||
|
"skip_verify": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{% endif %}
|
||||||
|
},
|
||||||
|
"identity_providers": {
|
||||||
|
"oidc": {
|
||||||
|
"hmac_secret": "{{var_authelia_oidc_hmac_secret}}",
|
||||||
|
"issuer_private_key": "{{temp_tls_result.privatekey | replace('\n', '\\n')}}",
|
||||||
|
"cors": {
|
||||||
|
"allowed_origins_from_client_redirect_uris": true
|
||||||
|
},
|
||||||
|
"clients": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,141 +0,0 @@
|
||||||
theme: auto
|
|
||||||
jwt_secret: "{{var_authelia_jwt_secret}}"
|
|
||||||
default_2fa_method: totp
|
|
||||||
server:
|
|
||||||
host: "{{var_authelia_listen_address}}"
|
|
||||||
port: 9091
|
|
||||||
path: ""
|
|
||||||
enable_pprof: false
|
|
||||||
enable_expvars: false
|
|
||||||
disable_healthcheck: false
|
|
||||||
log:
|
|
||||||
level: info
|
|
||||||
format: json
|
|
||||||
file_path: {{var_authelia_log_file_path}}
|
|
||||||
keep_stdout: false
|
|
||||||
telemetry:
|
|
||||||
metrics:
|
|
||||||
enabled: false
|
|
||||||
address: tcp://0.0.0.0:9959
|
|
||||||
totp:
|
|
||||||
disable: false
|
|
||||||
issuer: authelia.com
|
|
||||||
algorithm: sha1
|
|
||||||
digits: 6
|
|
||||||
period: 30
|
|
||||||
skew: 1
|
|
||||||
secret_size: 32
|
|
||||||
webauthn:
|
|
||||||
disable: true
|
|
||||||
timeout: 60s
|
|
||||||
display_name: Authelia
|
|
||||||
attestation_conveyance_preference: indirect
|
|
||||||
user_verification: preferred
|
|
||||||
ntp:
|
|
||||||
address: "{{var_authelia_ntp_server}}"
|
|
||||||
version: 4
|
|
||||||
max_desync: 3s
|
|
||||||
disable_startup_check: false
|
|
||||||
disable_failure: false
|
|
||||||
authentication_backend:
|
|
||||||
password_reset:
|
|
||||||
disable: true
|
|
||||||
custom_url: ""
|
|
||||||
refresh_interval: 5m
|
|
||||||
file:
|
|
||||||
path: "{{var_authelia_users_file_path}}"
|
|
||||||
watch: true
|
|
||||||
search:
|
|
||||||
email: false
|
|
||||||
case_insensitive: false
|
|
||||||
password:
|
|
||||||
algorithm: argon2
|
|
||||||
argon2:
|
|
||||||
variant: argon2id
|
|
||||||
iterations: 3
|
|
||||||
memory: 65536
|
|
||||||
parallelism: 4
|
|
||||||
key_length: 32
|
|
||||||
salt_length: 16
|
|
||||||
scrypt:
|
|
||||||
iterations: 16
|
|
||||||
block_size: 8
|
|
||||||
parallelism: 1
|
|
||||||
key_length: 32
|
|
||||||
salt_length: 16
|
|
||||||
pbkdf2:
|
|
||||||
variant: sha512
|
|
||||||
iterations: 310000
|
|
||||||
salt_length: 16
|
|
||||||
sha2crypt:
|
|
||||||
variant: sha512
|
|
||||||
iterations: 50000
|
|
||||||
salt_length: 16
|
|
||||||
bcrypt:
|
|
||||||
variant: standard
|
|
||||||
cost: 12
|
|
||||||
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
|
|
||||||
min_score: 3
|
|
||||||
access_control:
|
|
||||||
default_policy: one_factor
|
|
||||||
session:
|
|
||||||
name: authelia_session
|
|
||||||
domain: "{{var_authelia_session_domain}}"
|
|
||||||
same_site: lax
|
|
||||||
secret: "{{var_authelia_session_secret}}"
|
|
||||||
expiration: 1h
|
|
||||||
inactivity: 5m
|
|
||||||
remember_me_duration: 1M
|
|
||||||
regulation:
|
|
||||||
max_retries: 3
|
|
||||||
find_time: 2m
|
|
||||||
ban_time: 5m
|
|
||||||
storage:
|
|
||||||
encryption_key: "{{var_authelia_storage_encryption_key}}"
|
|
||||||
local:
|
|
||||||
path: "{{var_authelia_storage_path}}"
|
|
||||||
notifier:
|
|
||||||
disable_startup_check: true
|
|
||||||
{% if var_authelia_notification_mode == "file" %}
|
|
||||||
filesystem:
|
|
||||||
filename: {{var_authelia_notification_file_path}}
|
|
||||||
{% endif %}
|
|
||||||
{% if var_authelia_notification_mode == "smtp" %}
|
|
||||||
smtp:
|
|
||||||
host: "{{var_authelia_notification_smtp_host}}"
|
|
||||||
port: {{var_authelia_notification_smtp_port}}
|
|
||||||
username: "{{var_authelia_notification_smtp_username}}"
|
|
||||||
password: "{{var_authelia_notification_smtp_password}}"
|
|
||||||
sender: "{{var_authelia_notification_smtp_sender}}"
|
|
||||||
disable_require_tls: false
|
|
||||||
disable_html_emails: false
|
|
||||||
tls:
|
|
||||||
skip_verify: false
|
|
||||||
{% endif %}
|
|
||||||
identity_providers:
|
|
||||||
oidc:
|
|
||||||
hmac_secret: "{{var_authelia_oidc_hmac_secret}}"
|
|
||||||
issuer_private_key: |
|
|
||||||
{% filter indent(width=6) %}
|
|
||||||
{{temp_tls_result.privatekey}}
|
|
||||||
{% endfilter %}
|
|
||||||
cors:
|
|
||||||
allowed_origins_from_client_redirect_uris: true
|
|
||||||
clients:
|
|
||||||
-
|
|
||||||
public: false
|
|
||||||
id: "dummy"
|
|
||||||
secret: "d1424b378e4fbbc153f330f33b74ab192525b98cc2dd58b2e8d01c2737be00c6"
|
|
||||||
redirect_uris: []
|
|
||||||
|
|
||||||
...
|
|
|
@ -1,11 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=Authelia authentication and authorization server
|
|
||||||
After=multi-user.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Environment=AUTHELIA_SERVER_DISABLE_HEALTHCHECK=true
|
|
||||||
ExecStart=/usr/bin/authelia --config /etc/authelia/configuration.yml
|
|
||||||
SyslogIdentifier=authelia
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
Loading…
Add table
Reference in a new issue