Docker Traefik Middleware Passwort Schutz: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 39: | Zeile 39: | ||
labels: | labels: | ||
- "traefik.http.routers.whoami.rule=Path(`/whoami`)" | - "traefik.http.routers.whoami.rule=Path(`/whoami`)" | ||
| − | - "traefik.http.middleware.my-auth.basicauth.usersfile= | + | - "traefik.http.middleware.my-auth.basicauth.usersfile=/pfad/zur/datei" |
- "traefik.http.routers.whoami.middlewares=my-auth" | - "traefik.http.routers.whoami.middlewares=my-auth" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Version vom 14. November 2024, 19:07 Uhr
Funktion
- Bevor die Anfrage vom Client an den Server geleitet wird, muss dieser sich anmelden
- Die Zugangsdaten können entweder in docker-compose.yml geschrieben oder in eine andere Datei ausgelagert werden
- Die Passwörter müssen mit MD5, SHA1, or BCrypt gehasht werden.
Passwort-Hashes
- Der einfachste Weg für die Generation der Passwort-Hashes ist htpasswd, welches im Paket apache2-utils enthalten ist
- apt install apache2-utils
- Falls $-Zeichen im Hash auftauchen, müssen diese durch ein weiteres $ in YAML entwertet werden
- echo $(htpasswd -nB user) | sed -e s/\\$/\\$\\$/g
Benutzer und Passwort in docker-compose.yml
- Damit Traefik weiß, dass die Basic-Auth-Middleware benutzt werden soll, muss der Container/Service das Label tragen
- Die Middleware muss dann einem Router zugewiesen werden
- cd /pfad/zum/dienst
- vim docker-compose.yml
version: "3"
services:
whoami:
image: traefik/whoami
labels:
- "traefik.http.routers.whoami.rule=Path(`/whoami`)"
- "traefik.http.middleware.my-auth.basicauth.users=user1:passwort-hash,user2:passwort-hash"
- "traefik.http.routers.whoami.middlewares=my-auth"
Benutzer und Passwort separat
Auf Docker-Host
- cd /pfad/zum/dienst
- vim docker-compose.yml
version: "3"
services:
whoami:
image: traefik/whoami
labels:
- "traefik.http.routers.whoami.rule=Path(`/whoami`)"
- "traefik.http.middleware.my-auth.basicauth.usersfile=/pfad/zur/datei"
- "traefik.http.routers.whoami.middlewares=my-auth"