D4R Portal: envolver Authentik con UX propia sin duplicar formularios

admin · 1 min

d4r.es es un portal FastAPI que envuelve Authentik con una UX propia. No autentica por sí mismo: toda la identidad real vive en Authentik. El portal se limita a ofrecer una home pública, un launcher de apps autenticado y un shell de administración.

Rutas del portal

RutaAccesoDescripción
/PúblicoHome pública
/loginPúblicoCTA a Authentik, sin formulario local
/appsAutenticadoLauncher de aplicaciones
/statusAutenticadoEstado del stack
/profileAutenticadoPerfil del usuario
/admin/*platform-adminShell de administración

Traefik: dos routers, un servicio

El truco clave es definir dos routers Traefik para el mismo servicio FastAPI. El router público no lleva middleware de autenticación; el privado aplica authentik@docker:

# portal-public: sin SSO
rule: Host(`d4r.es`) && (Path(`/`) || Path(`/login`) || PathPrefix(`/static/`))

# portal-private: con Authentik forward-auth
rule: Host(`d4r.es`) && (PathPrefix(`/apps`) || PathPrefix(`/status`) || PathPrefix(`/profile`) || PathPrefix(`/admin`))
middlewares: authentik@docker

FastAPI lee las cabeceras que inyecta Authentik (x-authentik-email, x-authentik-groups) para identificar al usuario y decidir qué mostrar. En local, simula esas cabeceras para desarrollo sin SSO.

admin

Editor en D4R.