5b00d0cffba92a9d390ca833dd0c253c27839c19
infra-auth-proxy
OAuth2-Proxy als Reverse-Proxy-Authentifizierung für Traefik. Bietet zentrale Keycloak-Login-Weiterleitung für alle Homelab-Apps.
Architektur
Browser → Traefik → oauth2-proxy → App
↕ Keycloak (Login, Session)
oauth2-proxy läuft im Reverse-Proxy-Modus:
- Unauthentifizierter Request → 302-Redirect zu Keycloak-Login
- Authentifzierter Request → Weiterleitung an das Upstream
Neue Services schützen
-
Upstream registrieren in
.env:OAUTH2_PROXY_UPSTREAMS=http://service1:3000,http://service2:8080(Container-Namen müssen auf
infra-traefik_traefik-neterreichbar sein) -
Traefik-Router in der eigenen App:
labels: - "traefik.http.services.app.loadbalancer.server.url=http://oauth2-proxy:4180"(statt
loadbalancer.server.port=XXXXdirekt auf die App) -
docker compose up -din beiden Stacks
Setup
# .env aus Template erstellen
cp .env.template .env
# OAUTH2_PROXY_CLIENT_SECRET: Keycloak Client `auth-proxy` Secret
# OAUTH2_PROXY_COOKIE_SECRET: openssl rand -hex 16
# Deploy
docker compose up -d
Alternative: Forward-Auth für API-Endpoints
Für API-Endpoints (wo 401 statt Redirect sinnvoll ist) steht die
keycloak-oauth2 forwardAuth-Middleware in infra-traefik/dynamic.yaml bereit:
labels:
- "traefik.http.routers.api.middlewares=keycloak-oauth2@file"
Keycloak-Client
- Realm:
family - Client-ID:
auth-proxy - Redirect URI:
https://auth-proxy.ljh31.de/oauth2/callback