Set-OPS-Public/roles/serveur_oauth2_proxy/defaults/main.yml
Daniel Allaire b60c5dc963 serveur_oauth2_proxy : passerelle SSO OIDC générique + Icinga Web 2 au SSO
oauth2-proxy (v7.15.3) place Keycloak devant toute app sans OIDC natif
(auth external, utilisateur via en-tête). Rôle paramétrable, réutilisable.
Éprouvé devant icingaweb2 (backend=external, X-Forwarded-Preferred-Username).

Prouvé : testmail → oauth2-proxy → Keycloak → icingaweb2 /dashboard,
connecté. Ferme le gap LDAP-direct d'icingaweb2.

Réglages appris : insecure_oidc_allow_unverified_email (IdP interne) ;
reverse-proxy passe X-Forwarded-* pas X-Auth-Request-* ; handler nginx en
restart (pas reload) — un changement d'adresse d'écoute n'est pas pris par
un reload gracieux.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 19:05:04 -04:00

36 lines
2 KiB
YAML

---
# Passerelle SSO OIDC générique (oauth2-proxy) : place Keycloak DEVANT n'importe quelle
# application sans OIDC natif. L'app reçoit l'utilisateur via en-têtes (auth « external »).
# Binaire Go statique depuis les releases GitHub (pas d'apt). Requiert client_pki (confiance
# step_ca pour joindre Keycloak) + résolution de l'hôte Keycloak.
serveur_oauth2_proxy_version: "v7.15.3"
serveur_oauth2_proxy_archive: "oauth2-proxy-{{ serveur_oauth2_proxy_version }}.linux-amd64.tar.gz"
serveur_oauth2_proxy_url: >-
https://github.com/oauth2-proxy/oauth2-proxy/releases/download/{{
serveur_oauth2_proxy_version }}/{{ serveur_oauth2_proxy_archive }}
serveur_oauth2_proxy_binaire: "/usr/local/bin/oauth2-proxy"
serveur_oauth2_proxy_utilisateur: "oauth2-proxy"
serveur_oauth2_proxy_config: "/etc/oauth2-proxy/oauth2-proxy.cfg"
serveur_oauth2_proxy_service: "oauth2-proxy"
# Écoute (l'edge nginx proxifie ici).
serveur_oauth2_proxy_ecoute: "0.0.0.0:4180"
# OIDC (Keycloak) — realm applicatif.
serveur_oauth2_proxy_realm: "chezlepro"
serveur_oauth2_proxy_issuer: "https://keycloak.{{ domaine_interne }}/realms/{{ serveur_oauth2_proxy_realm }}"
serveur_oauth2_proxy_client_id: "" # OBLIGATOIRE (par instance)
serveur_oauth2_proxy_client_secret: "" # OBLIGATOIRE (voûte)
serveur_oauth2_proxy_redirect_url: "" # OBLIGATOIRE (https://<app>/oauth2/callback)
# Application protégée (upstream local).
serveur_oauth2_proxy_upstream: "" # OBLIGATOIRE (ex. http://127.0.0.1:8080)
# Secret de cookie (voûte) — 32 octets base64.
serveur_oauth2_proxy_cookie_secret: "{{ vault_oauth2_cookie | default('') }}"
# * = tout utilisateur authentifié par Keycloak.
serveur_oauth2_proxy_email_domains: "*"
# IdP interne de confiance : les utilisateurs LDAP n'ont pas le drapeau email_verified.
serveur_oauth2_proxy_allow_unverified_email: true
# Bundle d'AC système (racine step_ca via client_pki) pour joindre Keycloak en HTTPS.
serveur_oauth2_proxy_ca_bundle: "/etc/ssl/certs/ca-certificates.crt"