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>
22 lines
921 B
Django/Jinja
22 lines
921 B
Django/Jinja
# Géré par Set-OPS (rôle serveur_oauth2_proxy). Ne pas éditer à la main.
|
|
http_address = "{{ serveur_oauth2_proxy_ecoute }}"
|
|
reverse_proxy = true
|
|
|
|
provider = "oidc"
|
|
oidc_issuer_url = "{{ serveur_oauth2_proxy_issuer }}"
|
|
client_id = "{{ serveur_oauth2_proxy_client_id }}"
|
|
client_secret = "{{ serveur_oauth2_proxy_client_secret }}"
|
|
redirect_url = "{{ serveur_oauth2_proxy_redirect_url }}"
|
|
provider_ca_files = ["{{ serveur_oauth2_proxy_ca_bundle }}"]
|
|
|
|
upstreams = ["{{ serveur_oauth2_proxy_upstream }}"]
|
|
|
|
email_domains = ["{{ serveur_oauth2_proxy_email_domains }}"]
|
|
insecure_oidc_allow_unverified_email = {{ serveur_oauth2_proxy_allow_unverified_email | lower }}
|
|
cookie_secret = "{{ serveur_oauth2_proxy_cookie_secret }}"
|
|
cookie_secure = true
|
|
|
|
# TLS terminé à l'edge ; oauth2-proxy voit HTTP mais reverse_proxy=true honore X-Forwarded-Proto.
|
|
skip_provider_button = true
|
|
set_xauthrequest = true
|
|
pass_user_headers = true
|