docs: hub SSO complet sur le domaine public funklab.online (HTTPS) (#94)

Met à jour toute la doc pour l'état final du 2026-07-07 :
- CLAUDE.md : état actuel (hub SSO + domaine/TLS), rôle Traefik versionné,
  secrets OIDC au vault, date
- README : section « Accès & authentification » réécrite (5 apps sur le
  domaine, chaîne DNS/Freebox/Traefik, lab-admins), roadmap, vault
- public-domain.md : tableau des apps déployées (URL, auth, redirect_uri)
  + modes d'intégration (OIDC / Proxy Provider / route seule)
- auth-portal.md : section « Accès externe » → domaine HTTPS (URLs à jour)
- auth-portal-admin.md : URL admin + pièges (slug/discovery 404 ArgoCD)
- guide utilisateur + index admin/ : URLs funklab.online

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
ALI YESILKAYA 2026-07-07 17:53:22 +02:00 committed by GitHub
parent 502403d0f9
commit a13b5a70cd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 92 additions and 55 deletions

View file

@ -85,12 +85,37 @@ spec:
Le certificat est émis automatiquement au premier accès (challenge HTTP-01 sur le port 80).
## Intégration auth par app
## Apps exposées (état 2026-07-07)
| App | Mode | Note |
Toutes en HTTPS (cert Let's Encrypt par sous-domaine), accessibles depuis le hub
Authentik (`https://auth.funklab.online`) et directement par leur URL.
| App | URL publique | Auth | Redirect URI OIDC (Authentik) |
|---|---|---|---|
| **Portail consoles** (Guacamole) | `portail.funklab.online` | SSO OIDC | `https://portail.funklab.online/` |
| **Grafana** | `grafana.funklab.online` | SSO OIDC (lab-admins→Admin, sinon Viewer) | `https://grafana.funklab.online/login/generic_oauth` |
| **Open WebUI** | `openwebui.funklab.online` | SSO OIDC | `https://openwebui.funklab.online/oauth/oidc/callback` |
| **Argo CD** | `argocd.funklab.online` | SSO OIDC (lab-admins→admin) | `https://argocd.funklab.online/auth/callback` |
| **n8n** | `n8n.funklab.online` | **login natif** (SSO = Enterprise, indispo en communautaire) | — |
- Chaque app OIDC : provider Authentik **Confidential**, client secret archivé au vault
(`vault_<app>_oauth_client_secret` / `vault_argocd_oidc_client_secret`) et dans un
secret k8s. `token_url`/discovery joignent Authentik **server-side via hairpin**
(vérifié : un pod atteint `auth.funklab.online`).
- **Non exposés** (volontaire) : Prometheus, Alertmanager, SearXNG — pas de login propre,
nécessiteraient un **Proxy Provider** (forward-auth) avant toute exposition Internet.
Manifests : `k8s/apps/*/ingress-public.yaml`, `k8s/infra/monitoring/ingressroute-public.yaml`,
`k8s/argocd-bootstrap/ingressroute-public.yaml`. Config OIDC : Grafana/ArgoCD dans leurs
`values.yaml` helm, Guacamole/Open WebUI dans leur `deployment.yaml`.
## Intégration auth — comment ajouter une app
| Type d'app | Mode | Étapes |
|---|---|---|
| Grafana, Open WebUI, ArgoCD | **OIDC natif** | redirect_uri sur l'URL publique `*.funklab.online` |
| Prometheus, Alertmanager, n8n, SearXNG | **Proxy Provider Authentik** | middleware forward-auth Traefik (app sans login propre) |
| App avec OIDC natif (Grafana, Open WebUI, ArgoCD…) | **OIDC** | provider Confidential + app (slug) dans Authentik, config OIDC côté app avec l'URL publique, IngressRoute websecure |
| App sans login (Prometheus…) | **Proxy Provider** | outpost Authentik + middleware forward-auth Traefik (non déployé à ce jour) |
| App avec login propre non-OIDC (n8n…) | **route seule** | IngressRoute websecure + tuile-lien Authentik (comptes gérés dans l'app) |
Détail de l'ajout d'une app au hub : `admin/k8s/auth-portal-admin.md`.