mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-08 17:34:43 +02:00
feat(auth): Authentik en hub utilisateur public — SSO de bout en bout (#82)
L'entrée unique devient la page « My applications » d'Authentik (kaya.freeboxos.fr:9081) : login → tuiles des apps autorisées → SSO vers Guacamole (:9080). Plus de comptes locaux Guacamole. - Services LoadBalancer dédiés (MetalLB .201 Authentik / .202 Guacamole) : le DNAT par port ne peut pas router par Host derrière Traefik :80 - gateway : DNAT 9081→.201:9000 et 9080→.202:8080 + rate-limit par VIP - Guacamole : endpoints OIDC sur l'URL publique canonique (LAN inclus, hairpin Freebox) + retour au SSO direct (openid prioritaire) - doc : section « Accès externe » réécrite (hub, chaîne, config provider) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
cf09e404ef
commit
5a4190faaa
7 changed files with 92 additions and 40 deletions
|
|
@ -9,3 +9,21 @@ spec:
|
|||
ports:
|
||||
- port: 9000
|
||||
targetPort: 9000
|
||||
---
|
||||
# VIP MetalLB dédiée — exposition Internet via DNAT s01 (kaya.freeboxos.fr:9081).
|
||||
# Bypass Traefik : le DNAT par port ne peut pas router par Host derrière un
|
||||
# entrypoint unique.
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: authentik-external
|
||||
namespace: auth
|
||||
annotations:
|
||||
metallb.io/loadBalancerIPs: 192.168.10.201
|
||||
spec:
|
||||
type: LoadBalancer
|
||||
selector:
|
||||
app: authentik-server
|
||||
ports:
|
||||
- port: 9000
|
||||
targetPort: 9000
|
||||
|
|
|
|||
|
|
@ -42,28 +42,30 @@ spec:
|
|||
# Servir sur / plutôt que /guacamole
|
||||
- name: WEBAPP_CONTEXT
|
||||
value: "ROOT"
|
||||
# --- SSO OIDC → Authentik (app « guacamole » à créer dans l'UI Authentik) ---
|
||||
# Endpoints navigateur : via l'IngressRoute ; JWKS : appel serveur→serveur,
|
||||
# on passe par le Service interne pour ne pas dépendre du DNS lab.local des pods
|
||||
# --- SSO OIDC → Authentik (app « guacamole » dans l'UI Authentik) ---
|
||||
# Endpoints navigateur : URL publique kaya.freeboxos.fr (une seule URL
|
||||
# canonique, LAN inclus — hairpin NAT Freebox) ; JWKS : appel
|
||||
# serveur→serveur via le Service interne
|
||||
- name: OPENID_AUTHORIZATION_ENDPOINT
|
||||
value: "http://auth.lab.local/application/o/authorize/"
|
||||
value: "http://kaya.freeboxos.fr:9081/application/o/authorize/"
|
||||
- name: OPENID_JWKS_ENDPOINT
|
||||
value: "http://authentik.auth.svc.cluster.local:9000/application/o/guacamole/jwks/"
|
||||
- name: OPENID_ISSUER
|
||||
value: "http://auth.lab.local/application/o/guacamole/"
|
||||
value: "http://kaya.freeboxos.fr:9081/application/o/guacamole/"
|
||||
- name: OPENID_CLIENT_ID
|
||||
value: "guacamole"
|
||||
- name: OPENID_REDIRECT_URI
|
||||
value: "http://portail.lab.local/"
|
||||
value: "http://kaya.freeboxos.fr:9080/"
|
||||
- name: OPENID_USERNAME_CLAIM_TYPE
|
||||
value: "preferred_username"
|
||||
- name: OPENID_SCOPE
|
||||
value: "openid profile email"
|
||||
# Formulaire local en premier : requis pour l'accès Internet
|
||||
# (kaya.freeboxos.fr:9080 — comptes locaux Guacamole, Authentik n'étant
|
||||
# pas exposé). Le lien « OpenID » reste dispo pour le SSO depuis le LAN.
|
||||
# SSO direct : Authentik est le hub utilisateurs (page « My applications »,
|
||||
# exposée en :9081) — arriver sur Guacamole = redirection immédiate vers lui.
|
||||
# guacadmin inaccessible : l'admin passe par le compte SSO « Administer
|
||||
# system » (Alkatrazz). Dépannage sans Authentik : "*, openid" + re-sync.
|
||||
- name: EXTENSION_PRIORITY
|
||||
value: "*, openid"
|
||||
value: "openid, *"
|
||||
- name: TZ
|
||||
value: "Europe/Paris"
|
||||
resources:
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ spec:
|
|||
entryPoints:
|
||||
- web
|
||||
routes:
|
||||
- match: Host(`portail.lab.local`) || Host(`kaya.freeboxos.fr`)
|
||||
- match: Host(`portail.lab.local`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: guacamole
|
||||
|
|
|
|||
|
|
@ -9,3 +9,19 @@ spec:
|
|||
ports:
|
||||
- port: 8080
|
||||
targetPort: 8080
|
||||
---
|
||||
# VIP MetalLB dédiée — exposition Internet via DNAT s01 (kaya.freeboxos.fr:9080)
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: guacamole-external
|
||||
namespace: auth
|
||||
annotations:
|
||||
metallb.io/loadBalancerIPs: 192.168.10.202
|
||||
spec:
|
||||
type: LoadBalancer
|
||||
selector:
|
||||
app: guacamole
|
||||
ports:
|
||||
- port: 8080
|
||||
targetPort: 8080
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue