Post

🔐SSO Authelia

🔐SSO Authelia

Authelia est un serveur d’authentification et d’autorisation open source fournissant une authentification à deux facteurs et une authentification unique (SSO) pour vos applications via un portail Web.

SSO Authelia


Site web officiel : https://www.authelia.com/

  • Open source
  • SSO
  • Authentification 2F avec Yubikey
  • OTP basĂ© sur le temps avec Google Authenticator
  • Prend en charge LDAP
  • Prend en charge Active Directory
  • Fonctionne avec les proxys inverses
  • Notifications push avec duo
  • Bloquer les attaques de force brute
  • VĂ©rification d’identitĂ©
  • Une meilleure gestion des mots de passe
  • Flux de travail flexible
  • UI intuitif

Prérequis et liens

Un serveur debian + nginx

Installation deb ou binaire

Installation par fichier deb

1
2
3
4
5
6
7
8
# Téléchargement fichier deb
wget https://github.com/authelia/authelia/releases/download/v4.39.13/authelia_4.39.13-1_amd64.deb
# droits Ă  l'utilisateur _apt pour l'installation
sudo chown _apt: authelia_4.39.13-1_amd64.deb
# installation authelia et ses dépendances
sudo apt install ./authelia_4.39.13-1_amd64.deb
# redis est utilisé
sudo apt install redis

Installation binaire

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Téléchargement 
wget https://github.com/authelia/authelia/releases/download/v4.39.19/authelia-v4.39.19-linux-amd64.tar.gz
tar xzvf authelia-v4.39.19-linux-amd64.tar.gz
# Mise Ă  jour binaire
# si timer 
sudo systemctl stop authelia.timer
sudo systemctl stop authelia.service 
sudo cp authelia /usr/bin/authelia
# si timer
sudo systemctl start authelia.timer
sudo systemctl start authelia.service 
# Effacer
rm authelia*
# version
authelia -v  # authelia version v4.39.19

Générateur id et secret client

Authelia fournit un moyen simple d’effectuer de telles actions.

ID client

Les utilisateurs peuvent facilement gĂ©nĂ©rer un identifiant/identifiant client en suivant le guide GĂ©nĂ©ration d’une chaĂźne alphanumĂ©rique alĂ©atoire
Par exemple, les utilisateurs peuvent exécuter la commande

1
authelia crypto rand --length 72 --charset rfc3986

pour générer un identifiant/identifiant client de 72 caractÚres qui est imprimé.
Cette commande aléatoire évite également les problÚmes avec une application client/partie de confiance codant correctement les caractÚres car elle utilise les caractÚres non réservés RFC3986 .

Si un jeu de caractĂšres diffĂ©rent est utilisĂ© et que la valeur est diffĂ©rente lors du codage de l’URL, il imprimera Ă©galement cette valeur sĂ©parĂ©ment.

secret client

Les utilisateurs peuvent facilement gĂ©nĂ©rer un secret client en suivant le guide GĂ©nĂ©ration d’un hachage de mot de passe alĂ©atoire
Par exemple, les utilisateurs peuvent exécuter la commande

1
authelia crypto hash generate pbkdf2 --variant sha512 --random --random.length 72 --random.charset rfc3986

⚠ Veuillez noter le mot de passe en clair ainsi que le hachage $pbkdf2 du mot de passe pour une utilisation ultĂ©rieure.

pour Ă  la fois gĂ©nĂ©rer un secret client de 72 caractĂšres qui est imprimĂ© et doit ĂȘtre utilisĂ© avec la partie utilisatrice et le hacher Ă  l’aide de PBKDF2 qui peut ĂȘtre stockĂ© dans la configuration Authelia. Cette commande alĂ©atoire Ă©vite Ă©galement les problĂšmes avec une application client/partie de confiance codant correctement les caractĂšres car elle utilise les caractĂšres non rĂ©servĂ©s RFC3986 .

Si un jeu de caractĂšres diffĂ©rent est utilisĂ© et que la valeur est diffĂ©rente lors du codage de l’URL, il imprimera Ă©galement cette valeur sĂ©parĂ©ment.

Réglage des facteurs de travail

Lors du hachage des secrets du client, Authelia effectue l’opĂ©ration de hachage pour authentifier le client lors de la rĂ©ception des demandes. Cette opĂ©ration de hachage prend du temps, de par sa conception (la partie travail du facteur travail) pour empĂȘcher un attaquant de tenter d’obtenir le secret client. Le temps nĂ©cessaire dĂ©pend de votre matĂ©riel et du facteur de travail.

Si les opĂ©rations de votre client expirent, vous devrez peut-ĂȘtre rĂ©duire le facteur de travail Ă  un niveau appropriĂ© pour votre client et les capacitĂ©s de votre matĂ©riel.

Pour tester la durée de différents facteurs de travail, vous pouvez la mesurer ainsi :

1
time authelia crypto hash generate pbkdf2 --variant sha512 --iterations 310000 --password insecure_password

Générer une chaßne alphanumérique aléatoire

Certaines sections de la configuration recommandent de gĂ©nĂ©rer une chaĂźne alĂ©atoire. Il y a plusieurs façons d’accomplir cela et la Les mĂ©thodes suivantes ne sont que des suggestions.

Authelia. Le conteneur de docker Authelia ou binaire CLI peut ĂȘtre utilisĂ© pour gĂ©nĂ©rer une chaĂźne alphanumĂ©rique alĂ©atoire.

Utilisez le authelia crypto rand --helpcommander ou voir le guide de rĂ©fĂ©rence authelia crypto rand pour plus d’informations sur toutes les options disponibles.

1
authelia crypto rand --length 64 --charset alphanumeric

OpenSSL. La commande openssl sur Linux peut ĂȘtre utilisĂ©e pour gĂ©nĂ©rer une chaĂźne alphanumĂ©rique alĂ©atoire:

1
openssl rand -hex 64

Linux de base. Les commandes Linux de base peuvent ĂȘtre utilisĂ©es pour gĂ©nĂ©rer une chaĂźne alphanumĂ©rique alĂ©atoire:

1
2
LENGTH=64
tr -cd '[:alnum:]' < /dev/urandom | fold -w "${LENGTH}" | head -n 1 | tr -d '\n' ; echo

Configuration

Configuration authelia sur serveur cwwk rnmkcy.eu 192.168.0.205

  • Serveur: 127.0.0.1:9091
  • Gestion utilisateurs: LLDAP
  • Authentification: TOTP + Webauthnn
  • Stockage: Base mysql
  • Notification: SMTP
Clé de configuration Signification Exemple
jwt_secret Une chaĂźne alĂ©atoire qui ne peut pas ĂȘtre devinĂ©e par un attaquant GĂ©nĂ©rez-en une en tapant head /dev/random | tr -dc A-Za-z0-9 | head -c64 > jwt_secret.txt et collez-la ici entre guillemets.
default_redirection_url Si l’utilisateur navigue directement vers auth.myhome.com, Authelia ne peut pas dĂ©duire oĂč le rediriger. Il s’agira donc probablement d’une page lister-toutes-les-applications-disponibles https://www.myhome.com
default_2fa_method 2FA est l’abrĂ©viation de 2 factor authentication (authentification Ă  deux facteurs). Il s’agit du processus ennuyeux qui vous demande d’entrer le code que vous avez reçu par SMS ou par l’intermĂ©diaire d’une application d’authentification. “totp”, au moins c’est gratuit
server/host Attention! Le serveur d’authentification est un serveur qui ne peut pas ĂȘtre utilisĂ© par les utilisateurs de l’Internet. Si vous laissez la valeur par dĂ©faut 0.0.0.0 alors Authelia Ă©coutera sur l’interface rĂ©seau de votre serveur. Mais ce n’est pas ce que vous voulez une fois que le serveur est en production, puisque nous allons le faire fonctionner derriĂšre un reverse proxy pour HTTPS. Lors de la configuration, laissez 0.0.0.0 mais changez pour 127.0.0.1 une fois que tout est configurĂ©.
log/level Changez pour info une fois que tout est en cours d’exĂ©cution info
authentication_backend Activez les sous-clĂ©s file et file/path pour faciliter l’utilisation dans un premier temps. Ci-dessous, vous trouverez ce qu’il faut stocker dans ce chemin d’accĂšs Changez path en /etc/authelia/users_db.yml
access_control Cette partie est un peu complexe, donc regardez ci-dessous pour une explication Voir ci-dessous
access_control/rule/
/policy N’importe lequel de deny (rejette la requĂȘte), bypass (relai transparent de la connexion), one_factor (demande de login & mots de passe), two_factor (demande de login & mot de passe + preuve de possession d’un appareil) Voir ci-dessous pour un exemple
session/domain Typiquement, définir le domaine de base myhost.com
session/secret Une autre chaĂźne alĂ©atoire qui ne peut pas ĂȘtre devinĂ©e par un attaquant GĂ©nĂ©rez-en une en tapant head /dev/random | tr -dc A-Za-z0-9 | head -c64 > session_secret.txt et collez-la ici entre guillemets.
storage Activez cette option, car elle est nécessaire pour stocker les données de session.  
storage/encryption_key Une autre chaĂźne alĂ©atoire qui ne peut pas ĂȘtre devinĂ©e par un attaquant GĂ©nĂ©rez-en une en tapant head /dev/random | tr -dc A-Za-z0-9 | head -c64 > session_secret.txt et collez-la ici entre guillemets
notifier Vous devez définir au moins un notificateur pour que Authelia puisse communiquer avec vous et ses utilisateurs  

LLDAP

LLDAP est utilisé pour la gestion utilisateur

Stockage géré par une base mariadb (mysl)
Créer une base mariadb
Host : 127.0.0.1
Base : authelia
Utilisateur : authelia
Mot de passe : Mot_de_passe_base_authelia

En ligne de commande

1
sudo mariadb -e "create database authelia; grant all privileges on authelia.* to authelia@'localhost' identified by 'Mot_de_passe_base_authelia'; flush privileges;"

WebAuthn

ParamĂštre user_verification :

  • discouraged : Le client sera dĂ©couragĂ© de demander une vĂ©rification Ă  l’utilisateur.
  • preferred : Le client, s’il est conforme, demandera Ă  l’utilisateur une vĂ©rification si l’appareil la prend en charge.
  • required : Le client demandera Ă  l’utilisateur une vĂ©rification ou Ă©chouera si l’appareil ne prend pas en charge la vĂ©rification.

attestation_conveyance_preference:

  • none : Le client recevra l’instruction de ne pas effectuer de transfert de propriĂ©tĂ©.
  • indirect : Le client reçoit l’instruction d’effectuer le transfert de propriĂ©tĂ©, mais il peut choisir la maniĂšre de le faire, y compris en utilisant une AC d’anonymisation tierce.
  • direct : Le client recevra l’instruction d’effectuer le transfert avec une dĂ©claration d’attestation directement signĂ©e par le dispositif.

Activation service authelia

Lancer, activer et vérifier

1
2
sudo systemctl enable authelia --now
sudo journalctl -u authelia 
1
oct. 30 18:56:33 alder systemd[1]: Started authelia.service - Authelia authentication and authorization server.

auth.rnmkcy.eu

Comme Authelia affiche une page de connexion/authentification, il doit ĂȘtre exĂ©cutĂ© sur un canal de transport cryptĂ© pour Ă©viter les attaques de l’homme du milieu (MITM).

Il ne dĂ©marrera pas tant que ce canal n’aura pas Ă©tĂ© correctement configurĂ©.

Comme d’habitude avec HTTPS, pour dĂ©marrer une connexion TLS, vous avez besoin d’un certificat. La solution la plus simple est d’utiliser Let’s Encrypt ou ZeroSSL avec son outil certbot pour automatiser la rĂ©cupĂ©ration et le renouvellement des certificats. Il ne s’agit pas d’un tutoriel sur la mise en place du HTTPS, donc je liste les Ă©tapes Ă  rĂ©aliser avec un reverse proxy NGINX, n’hĂ©sitez pas Ă  personnaliser si vous utilisez un autre reverse proxy pour le HTTPS.

Proxy nginx

Le fichier /etc/nginx/conf.d/auth.rnmkcy.eu.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
server {
    listen 80;
    server_name auth.rnmkcy.eu;

    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    http2 on;
    server_name auth.rnmkcy.eu;

    include /etc/nginx/conf.d/ssl-modern.inc;
    ssl_session_cache shared:SSL:2m;

    location / {
        set $upstream_authelia http://127.0.0.1:9091;
        proxy_pass $upstream_authelia;

        client_body_buffer_size 128k;

        #Timeout if the real server is dead
        proxy_next_upstream error timeout invalid_header http_500 http_502     http_503;

        # Advanced Proxy Config
        send_timeout 5m;
        proxy_read_timeout 360;
        proxy_send_timeout 360;
        proxy_connect_timeout 360;

        # Basic Proxy Config
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Forwarded-Uri $request_uri;
        proxy_set_header X-Forwarded-Ssl on;
        proxy_redirect  http://  $scheme://;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_cache_bypass $cookie_session;
        proxy_no_cache $cookie_session;
        proxy_buffers 64 256k;

        # If behind reverse proxy, forwards the correct IP
#        set_real_ip_from 10.0.0.0/8;
#        set_real_ip_from 192.168.10.0/16;
#        set_real_ip_from 192.168.0.0/16;
#        set_real_ip_from fc00::/7;
#        real_ip_header X-Forwarded-For;
#        real_ip_recursive on;
    }

}

Recharger nginx

1
sudo systemctl reload nginx

Dirigez votre navigateur vers https://auth.rnmkcy.eu et vous devriez voir apparaĂźtre la page de connexion de Authelia.

Modifier votre application pour le SSO

Authelia affiche une page de connexion/authentification, il doit ĂȘtre exĂ©cutĂ© sur un canal de transport https

L’application doit ĂȘtre adaptĂ©e pour traiter avec un serveur d’authentification externe.
Lorsque Authelia a validĂ© l’utilisateur, il redirige vers votre application.
Cette redirection contient des en-tĂȘtes spĂ©cifiques que votre application doit traiter pour procĂ©der Ă  sa crĂ©ation de session habituelle (typiquement, votre application Ă©mettra son Set-Cookie ou une requĂȘte de stockage local ou un jeton JWT ou 
).
Il s’agit simplement de contourner la page de connexion.

Nginx snippets

Création dossier snippets

1
sudo mkdir -p /etc/nginx/snippets

Les fichiers de configuration nginx

Le premier extrait est une route interne /authelia qui n’est pas accessible depuis l’internet, qui est utilisĂ©e dans vos applications pour affirmer que la session Authelia est valide.

Snippet authelia.conf
1
sudo nano /etc/nginx/snippets/authelia.conf

Contenu

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Point de terminaison virtuel créé par nginx 
# pour transfĂ©rer les demandes d’authentification.
# Internal Authelia verify endpoint
location = /authelia {
    # accessible uniquement en interne (subrequests) — requĂȘtes externes → 404
    internal;
    # n'envoie pas le corps de la requĂȘte au backend (gain d'efficacitĂ©)
    proxy_pass_request_body off;
    # neutralise Content-Length (évite d'envoyer une taille quand pas de body)
    proxy_set_header Content-Length "";
    # transmet l'hĂŽte original ($host) au backend
    proxy_set_header Host $host;
    # URL complÚte d'origine (schéma://host + request_uri)
    proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
    # indique le protocole d'origine (http ou https)
    proxy_set_header X-Forwarded-Proto $scheme;
    # transmet l'hÎte d'origine (inclut le port si présent)
    proxy_set_header X-Forwarded-Host $http_host;
    # transmet l'URI d'origine (chemin + query string)
    proxy_set_header X-Forwarded-Uri $request_uri;
    # ajoute l'IP cliente à X-Forwarded-For (conserve proxys intermédiaires)
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    # envoie l'IP source de la connexion nginx (IP client directe)
    proxy_set_header X-Real-IP $remote_addr;
    # redirige la sous-requĂȘte vers l'API interne Authelia /api/verify sur localhost:9091
    proxy_pass http://127.0.0.1:9091/api/verify;
    # délai maximum pour lire la réponse du backend = 10 secondes
    proxy_read_timeout 10s;
}

Vous aurez aussi besoin d’un snippet pour l’authentification (interne) elle-mĂȘme, donc sauvegardez ce snippet sous /etc/nginx/snippets/auth.conf:
Typiquement, ce snippets fait en sorte que NGINX gĂ©nĂšre une requĂȘte vers l’emplacement interne /authelia Ă  chaque fois qu’une requĂȘte d’utilisateur est faite vers votre application. Il vĂ©rifie le code de rĂ©sultat HTTP de la requĂȘte interne. Si c’est 200, la requĂȘte de l’utilisateur est acceptĂ©e, sinon il est redirigĂ© vers la page de login Authelia.

Snippet auth.conf
1
sudo nano /etc/nginx/snippets/auth.conf

Contenu

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Protect with Authelia
# effectue une sous-requĂȘte interne vers /authelia pour vĂ©rifier l'accĂšs
auth_request /authelia;
# stocke l'URL complÚte demandée (schéma://host+URI) dans la variable $target_url
auth_request_set $target_url $scheme://$http_host$request_uri;
# récupÚre le header Remote-User renvoyé par Authelia (nom d'utilisateur authentifié)
auth_request_set $user $upstream_http_remote_user;
# récupÚre le header Remote-Groups renvoyé par Authelia (groupes / rÎles)
auth_request_set $groups $upstream_http_remote_groups;
# transmet l'utilisateur authentifié au backend en tant que header Remote-User
proxy_set_header Remote-User $user;
# transmet les groupes de l'utilisateur au backend en tant que header Remote-Groups
proxy_set_header Remote-Groups $groups;

# en cas de 401 (non autorisé) renvoie une redirection 302 vers le portail d'authentification,
# avec ?rd=<URL d'origine> pour que l'IDP puisse rediriger l'utilisateur vers la ressource demandée aprÚs login
error_page 401 =302 https://auth.rnmkcy.eu/?rd=$target_url;

Exemple de protection

Enfin, dans la description de votre site d’application, vous devrez inclure ces extraits. Le fichier authelia.conf va dans le bloc serveur et le fichier auth.conf va dans n’importe quel endroit que vous voulez protĂ©ger.
Vous Ă©viterez typiquement de protĂ©ger les actifs statiques et les redirections, puisqu’il n’y a pas d’intĂ©rĂȘt Ă  vĂ©rifier l’authentification pour ceux-ci.

Application site

Authentification Totp Yubikeys Passkeys

Totp

On va ajouter une authentification TOTP
Se connecter sur authelia et cliquer sur authelia

Mot de passe usage unique

Sur la boßte de réception

Saisir le code ID

Suivre la procédure

Si vous n”avez pas google authenticator
Prendre une photo avec l’appareil android pour dĂ©coder

Cliquer sur le lien pour copier le code

Copier le contenu de secret dans le totp de cockpit keepassxc

Cliquer sur suivant et décocher qrcode

Vérification fonctionnement avec un code généré par cockpi keepassxc

Si tout est OK

et un message de confirmation

Yubikeys WebAuthn

Configuration authelia prérequise

1
2
3
4
5
6
7
8
9
10
11
12
13
14
## WebAuthn Actif
##
webauthn:
  ## Désactiver Webauthn avec true.
  disable: false

# l'application web utilisant la double authentification
access_control:
  default_policy: deny
  rules:
    - domain:
        - "site.rnmkcy.eu"
      policy: two_factor

Clé yubikey insérée dans un port USB

Se connecter sur le lien https://auth.rnmkcy.eu avec Firefox
Saisir utilisateur “yann” et son mot de passe


Choisir la méthode


Un message est envoyé

Sur la boßte de réception

Saisir le code ID

Une nouvelle fenĂȘtre s’ouvre

La clé est enregistrée

et un message de confirmation

Se connecter de nouveau Ă  cockpit

Page de connexion auhelia

Validation par clé

Page authentification cockpit

Ajouter une autre clé yubikey
La seconde clé est enregistrée

et un message de confirmation

Passkeys KeepassXC

Si l’application KeepassXC et son extension firefox sont actifs il est possible de crĂ©er une passkey

Authelia

KeepassXC

OIDC certificat fournisseur et client

La configuration Authelia est dĂ©finie dans le fichier configuration.yml. Ce fichier permet de dĂ©finir les paramĂštres de configuration OIDC nĂ©cessaires, tels qu’un fournisseur et un client.

En consultant la documentation publique OIDC d’Authelia , nous pouvons obtenir un exemple de configuration. Cet exemple de configuration contient plusieurs paramĂštres nĂ©cessitant soit une valeur secrĂšte, soit un certificat.

Ces Ă©lĂ©ments doivent ĂȘtre gĂ©nĂ©rĂ©s de maniĂšre sĂ©curisĂ©e avant d’ajuster la configuration. Par consĂ©quent, gĂ©nĂ©rons-les !

CrĂ©ation d’un certificat RSA

Authelia vous oblige à définir un certificat (clé privée) via la directive key et une chaßne de certificats (clé publique) via la directive certificate_chain.

Vous pouvez générer les deux via la commande suivante :

1
authelia crypto certificate rsa generate --common-name auth.rnmkcy.eu && cat public.crt && cat private.pem

⚠ Veuillez ajuster le nom commun du certificat Ă  votre FQDN d’Authelia

Création fournisseur OIDC

Une fois le certificat RSA et le secret client créés de maniĂšre sĂ©curisĂ©e, nous pouvons commencer Ă  ajuster le fichier de configuration d’Authelia. Nous ajouterons un fournisseur d’identitĂ© en insĂ©rant nos secrets et informations de certificat auto-gĂ©nĂ©rĂ©s.

Mettez ce qui suit Ă  la fin de votre configuration Authelia :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
identity_providers:
  oidc:
    hmac_secret: 'my-secure-hmac-secret-key-to-change'
    jwks:
      - key_id: 'authelia'
        algorithm: 'RS256'
        use: 'sig'
        certificate_chain: |
          -----BEGIN CERTIFICATE-----
          <PASTE-HERE-YOUR-PUBLIC-KEY-DATA> sur une ligne
          -----END CERTIFICATE-----
        key: |
          -----BEGIN PRIVATE KEY-----
          <PASTE-HERE-YOUR-PRIVATE-KEY-DATA> sur une ligne
          -----END PRIVATE KEY-----
    cors:
      endpoints:
        - authorization
        - token
        - revocation
        - introspection
        - userinfo
      allowed_origins:
        - https://auth.rnmkcy.eu #Enter Domain Name
      allowed_origins_from_client_redirect_uris: false

Vérifier la configuration en mode su

1
sudo authelia validate-config --config /etc/authelia/configuration.yml

Vous devez obtenir le message suivant, si tout est correct
Configuration parsed and loaded successfully without errors.

Maintenance

Erreur au démarrage

Dans le cas d’un redĂ©marrage de la machine, une erreur se produit et le service authelia n’est pas lancĂ©

1
systemctl status authelia

Une erreur s’est produite au dĂ©marrage

1
2
3
4
5
6
7
8
9
10
× authelia.service - Authelia authentication and authorization server
     Loaded: loaded (/usr/lib/systemd/system/authelia.service; enabled; preset: enabled)
     Active: failed (Result: exit-code) since Wed 2026-01-14 21:34:38 CET; 10h ago
   Duration: 7.091s
 Invocation: c58e773f19df4fa4a895fb0b630b3cb7
       Docs: https://www.authelia.com
    Process: 1678 ExecStart=/usr/bin/authelia --config /etc/authelia/configuration.yml (code=exited, status=1/FAILURE)
   Main PID: 1678 (code=exited, status=1/FAILURE)
   Mem peak: 67.8M
        CPU: 104ms

Si on relance le service, tout est correct. Il faut lancer le service authelia aprÚs un délai

CrĂ©er un dĂ©clencheur de minuterie pour lancer le service 1 minute aprĂšs le dĂ©marrage du systĂšme (le minuteur utilise le mĂȘme nom de service)

1
2
3
4
5
6
7
8
9
10
cat <<EOF | sudo tee /usr/lib/systemd/system/authelia.timer
[Unit]
Description=Timer service authelia

[Timer]
OnBootSec=1min

[Install]
WantedBy=timers.target
EOF

Recharger la configuration

1
sudo systemctl daemon-reload

Désactiver le service au démarrage.

1
sudo systemctl disable authelia

Activer la minuterie

1
sudo systemctl enable authelia.timer --now

Redémarrez le conteneur.

1
uptime

07:55:26 up 10:21, 1 user, load average: 101,02, 96,73, 84,61

Le service sera désactivé par défaut.

1
systemctl status authelia
1
2
3
4
5
6
7
8
9
10
11
12
13
● authelia.service - Authelia authentication and authorization server
     Loaded: loaded (/usr/lib/systemd/system/authelia.service; disabled; preset: enabled)
     Active: active (running) since Thu 2026-01-15 07:35:46 CET; 21min ago
 Invocation: 7998c201f1294f5ab189879b6fa39c1d
       Docs: https://www.authelia.com
   Main PID: 6356 (authelia)
      Tasks: 10 (limit: 38031)
     Memory: 39.1M (peak: 41.5M)
        CPU: 332ms
     CGroup: /system.slice/authelia.service
             └─6356 /usr/bin/authelia --config /etc/authelia/configuration.yml

janv. 15 07:35:46 alder systemd[1]: Started authelia.service - Authelia authentication and authorization server.

Timer le déclenchera automatiquement.

1
sudo systemctl list-timers 

Liste des timers

1
2
NEXT                                  LEFT LAST                              PASSED UNIT                         ACTIVATES                     
-                                        - Thu 2026-01-15 08:07:44 CET      42s ago authelia.timer               authelia.service

Authelia secrets

Utilisez une approche sĂ©curisĂ©e basĂ©e sur des fichiers et Ă©vitez d’incorporer des secrets directement dans les modĂšles dĂ©diĂ©s au contrĂŽle de version.

CrĂ©er un dossier secrets avec les droits utilisateur “authelia”

1
2
3
4
5
6
7
8
9
10
sudo -u authelia mkdir -p /etc/authelia/secrets
# Créer les fichiers contenant les différents mot de passe
echo "xxxxxxxxxxxxxxxx" | sudo -u authelia tee /etc/authelia/secrets/reset_password_jwt_secret
echo "xxxxxxxxxxxxxxxx" | sudo -u authelia tee /etc/authelia/secrets/ldap_password
echo "xxxxxxxxxxxxxxxx" | sudo -u authelia tee /etc/authelia/secrets/session_secret
echo "xxxxxxxxxxxxxxxx" | sudo -u authelia tee /etc/authelia/secrets/storage_encryption_key
echo "xxxxxxxxxxxxxxxx" | sudo -u authelia tee /etc/authelia/secrets/mysql_password
echo "xxxxxxxxxxxxxxxx" | sudo -u authelia tee /etc/authelia/secrets/notifier_smtp_password
echo "xxxxxxxxxxxxxxxx" | sudo -u authelia tee /etc/authelia/secrets/gitea_client_secret
echo "xxxxxxxxxxxxxxxx" | sudo -u authelia tee /etc/authelia/secrets/stalwart_client_secret

modifier les droits

1
sudo chmod 600 /etc/authelia/secrets/*

Modifier le fichier de configuration /etc/authelia/configuration.yml Vérifier la configuration et redémarrer le service authelia si aucune erreur

1
2
sudo authelia validate-config --config /etc/authelia/configuration.yml
sudo systemctl restart authelia
Cet article est sous licence CC BY 4.0 par l'auteur.