From 72619a5be547bac37f4aae276fe242b48260e6dc Mon Sep 17 00:00:00 2001 From: Daniel Allaire Date: Fri, 3 Jul 2026 11:48:59 -0400 Subject: [PATCH] =?UTF-8?q?Edge=20nginx=20+=20exposition=20(Phase=203=20bi?= =?UTF-8?q?ndings)=20prouv=C3=A9s=20avec=20Keycloak?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sans changement de code : la machinerie d'exposition existait déjà (serveur_nginx_publier_expositions lit expose + domaines.edge, génère le vhost avec X-Forwarded-*). Prouvé : keycloak.lab.chezlepro.internal → http://192.168.15.81:8080, issuer OIDC en https par nom via l'edge. Limite connue : cert edge = snakeoil (avertissement). Raffinement recommandé : FQDN d'exposition dans client_pki_sans de l'edge + pointer serveur_nginx_certificat sur le cert client_pki. Co-Authored-By: Claude Opus 4.8 --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ecc9401..711f6c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,19 @@ par le rôle : un utilisateur LDAP (`testmail`) obtient un token via le realm (HTTP 200), et le redéploiement est **idempotent** (`changed=0`). Nouveau : `tasks/federation-ldap.yml`. Reste : edge nginx (accès HTTPS par nom), mappers d'attributs/groupes fins. +- **Edge nginx + exposition (Phase 3 des bindings) — prouvés avec Keycloak.** Sans changement de + code : la machinerie `serveur_nginx_publier_expositions` **existait déjà** (lit `expose` des + applications + `edge` de `domaines.yml`, dérive `amont = http://:`, génère le + vhost avec `X-Forwarded-*`). Le bac à sable déclare `keycloak.expose: + [keycloak.lab.chezlepro.internal]` + le domaine interne `lab.chezlepro.internal` (edge + `serveur_nginx`). **Prouvé** : le vhost s'auto-génère (`keycloak.lab.chezlepro.internal → + http://192.168.15.81:8080`), et la découverte OIDC via l'edge renvoie + `"issuer":"https://keycloak.lab.chezlepro.internal/..."` (les `X-Forwarded` passent, Keycloak + se sait derrière HTTPS). **Limite connue** : le cert TLS de l'edge est encore le snakeoil + auto-signé (avertissement navigateur). **Raffinement recommandé** (réutilise l'existant, pas de + nouveau mécanisme) : ajouter les FQDN d'exposition aux `client_pki_sans` de l'edge (client_pki + demande + renouvelle déjà le cert d'hôte), puis pointer `serveur_nginx_certificat` sur le cert + client_pki (`/etc/step/certs/.crt`). ## 2026-07-02