diff --git a/admin/k8s/auth-portal.md b/admin/k8s/auth-portal.md index 387bee8..4281230 100644 --- a/admin/k8s/auth-portal.md +++ b/admin/k8s/auth-portal.md @@ -93,11 +93,22 @@ kubectl -n auth create secret generic guacamole-secret \ serveur→serveur de Guacamole ne dépend pas de la résolution `lab.local` des pods. L'issuer, lui, reste `http://auth.lab.local/...` (doit matcher le claim `iss` des tokens émis via le navigateur). -3. **`EXTENSION_PRIORITY="*, openid"`** : garde le formulaire local (guacadmin) accessible - en plus du SSO — sans ça, redirection OIDC forcée et plus d'accès admin local. -4. **User `console` sans sudo** (volontaire) : le portail sert à observer/opérer léger. +3. **`EXTENSION_PRIORITY="openid, *"`** : arrivée sur le portail = **redirection + immédiate vers Authentik** (pas de formulaire local). Conséquence : `guacadmin` est + inaccessible — l'admin Guacamole passe par un compte SSO auquel on a coché + **« Administer system »** (fait pour `Alkatrazz`). Prérequis absolu avant d'activer : + avoir donné ce droit, sinon plus d'admin. Dépannage si Authentik est HS : remettre + `"*, openid"` dans `k8s/apps/guacamole/deployment.yaml` (le formulaire local revient). +4. **Le slug de l'application Authentik doit être exactement `guacamole`** : Authentik + le génère depuis le nom (« Portail consoles » → `portail-consoles`) et l'issuer/JWKS + deviennent faux → log Guacamole `Non 200 status code (404) ... /o/guacamole/jwks/` + et token rejeté. Corriger : Applications → Edit → Slug. +5. **Anti-bruteforce intégré** (extension `ban`) : 5 échecs → IP bloquée ~5 min. Derrière + Traefik, l'IP vue est celle du proxy → **le blocage touche tout le monde**. Patienter + ou redémarrer le pod guacamole pour purger. +6. **User `console` sans sudo** (volontaire) : le portail sert à observer/opérer léger. L'administration passe par les comptes admin habituels, pas par Guacamole. -5. **Enregistrement des sessions** : possible (guacd + volume partagé) mais non configuré +7. **Enregistrement des sessions** : possible (guacd + volume partagé) mais non configuré — gap connu, à ajouter si le portail s'ouvre à d'autres utilisateurs. -6. La config Authentik (provider, app, utilisateurs) et les connexions Guacamole vivent +8. La config Authentik (provider, app, utilisateurs) et les connexions Guacamole vivent **en base, pas en IaC** — comme le Server Manager Satisfactory. Backup PG = gap connu. diff --git a/k8s/apps/guacamole/deployment.yaml b/k8s/apps/guacamole/deployment.yaml index 1c8b808..b5e58f2 100644 --- a/k8s/apps/guacamole/deployment.yaml +++ b/k8s/apps/guacamole/deployment.yaml @@ -59,9 +59,12 @@ spec: value: "preferred_username" - name: OPENID_SCOPE value: "openid profile email" - # L'extension base (autorisation/connexions) passe avant l'OIDC (authentification) + # OIDC prioritaire : arrivée sur le portail = redirection immédiate vers + # Authentik (pas de formulaire local). Conséquence : guacadmin devient + # inaccessible — l'admin passe par un compte SSO avec « Administer system ». + # Dépannage sans Authentik : remettre "*, openid" ici et re-sync. - name: EXTENSION_PRIORITY - value: "*, openid" + value: "openid, *" - name: TZ value: "Europe/Paris" resources: