Dienst mit Basic Auth absichern
Traefik bietet ein Modul für Basic Auth an, um einzelne Dienste mit einem Zugangsschutz zu versehen.
Angenommen der Whoami Dienst, welcher unter Dienst konfigurieren erklärt wird, soll mit einem solchen Zugangsschutz versehen werden. Dann würde die Docker Compose Datei wie folgt erweitert werden.
services:
whoami:
image: "traefik/whoami"
container_name: "simple-service"
labels:
- "traefik.enable=true"
- "traefik.http.routers.whoami.rule=Host(`whoami.localhost`)"
- "traefik.http.services.whoami.loadbalancer.server.port=80"
- "traefik.http.middlewares.whoami-auth.basicauth.users=benutzername:$2a$12$74NsF8MzGC25qO5tYoGfnO1Tg9I9c5Fcbu/zwi1/paDfdYD8eeUxy"
- "traefik.http.routers.whoami.middlewares=whoami-auth"
networks:
- traefik
networks:
traefik:
name: traefik
external: true
Die 1. neue Zeile gibt an, wie die Logindaten für den Benutzer bzw. die Benutzer sind. Außerdem wird ein Name für das Modul vergeben, in diesem Fall whoami-auth. Dann wird ein Benutzername (hier: benutzername) vergeben und nach dem Doppelpunkt wird das Passwort als Hash angegeben. Am besten wird der bcrypt Hash verwendet, welcher z. B. auf der folgenden Webseite generiert werden kann: Bcrypt-Generator
- "traefik.http.middlewares.whoami-auth.basicauth.users=benutzername:$2a$12$74NsF8MzGC25qO5tYoGfnO1Tg9I9c5Fcbu/zwi1/paDfdYD8eeUxy"
Mit der 2. neuen Zeile wird das Modul auf den whoami-Dienst angewendet.
- "traefik.http.routers.whoami.middlewares=whoami-auth"
Anschließend mit docker compose up -d nochmal die Container neu erstellen lassen und fertig. Ab jetzt ploppt ein Anmeldefenster auf, wenn auf die Seite zugegriffen wird.
Nur wenn die richtigen Logindaten eingegeben werden, wird die Seite angezeigt, ansonsten erscheint eine Fehlerseite mit dem Fehlercode 401 Unauthorized.
Keine Kommentare