Traefik permet d’ajouter une authentification simple par couple identifiant/mot de passe. En effet, certaines applications n’ont pas de mécanisme d’authentification interne, l’exposition de ces services sans sécurité peut être critique.

Pour se faire, j’utiliserai une configuration dite « dynamique » (rappel sur les configurations à cette adresse (CZS)).


Procédure d’ajout de l’authentification

L’ajout d’une configuration de ce type s’appelle dans Traefik un « middleware ». Il en existe une petite quantité, vous pouvez retrouver la liste directement sur le site officiel ici.

traefik middleware authentification

Le chiffrement des mots de passe d’authentification pour Traefik se fait via MD5, SHA1 ou BCrypt. Ici ce sera du BCrypt, en utilisant le site web « bcrypt.fr » pour générer les hash. L’utilisation du paquet htpasswd est aussi envisageable avec une commande.

Dans votre fichier docker-compose.yml, ajoutez un label de type « middleware » pour les services que vous souhaitez protéger :

traefik.http.routers.NOMSERVICE.middlewares: [email protected]

Si vous utilisez un fichier traefik_dynamic.yml, voici la configuration :

http:
  middlewares:
    authentification:
      basicAuth:
        users:
        - admin:$2y$10$byzmasKak2LLmvY86KcnGO0pX8UaaNDxQZMJW.wMmaoHRhjNXqOwG # admin/admin

L’utilisateur créé (admin) a pour mot de passe « admin ». Dès à présent, refaite un docker-compose up -d pour recréer vos services et ainsi protéger votre service d’une authentification « basique » ! Il s’agit là, encore une fois, d’une sécurité assez simple et ne remplacera pas un enchaînement d’autres mécanismes de sécurité.

Ce middleware est utilisable pour toutes les ressources derrière Traefik. Pensez à ajouter le label ou l’intitulé du middleware dans les fichiers de définitions de vos routers Traefik.

Auteur

Bercé par l'informatique depuis mon plus jeune âge, je transforme ma passion en expertise.

Écrire un commentaire