Commit graph

3 commits

Author SHA1 Message Date
26dc0469be get_url : garder les artefacts epingles a une version
Recensement apres l'echec du passage d'idempotence : 9 get_url sans aucune
garde, 1 avec.

Les quatre artefacts epingles (forgejo, keycloak, nextcloud, oauth2-proxy)
sont immuables PAR CONSTRUCTION — leur chemin de destination porte la version.
Les retelecharger n'a aucun sens, les recontacter encore moins. Gardes par une
verification d'existence.

Restent cinq cles de signature apt et un trousseau .deb, recuperes a chaque
passage : cinq serveurs externes x quatorze hotes = 70 allers-retours par
deploiement. Les garder supprimerait la dependance au prix de ne plus detecter
une rotation ; une cle tournee casse apt bruyamment, donc l'oubli se voit.
Arbitrage a rendre — pas a moi.

Sur une plateforme souveraine la question merite d'etre posee : combien de
serveurs tiers doivent etre joignables pour redeployer ce qu'on possede deja ?

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-09 14:01:12 -04:00
249fba702a sso : l'issuer et le nom d'hote se derivent de l'exposition declaree
oauth2-proxy fonctionne devant Icinga Web 2 : 302 vers Keycloak, qui federe
LDAP. Quatre defauts leves, dont trois du meme motif — un nom construit par
convention d'un cote, declare de l'autre.

1. Le secret de cookie etait en base64 STANDARD. oauth2-proxy decode en
   url-safe : le decodage echoue, il retombe sur la chaine brute et se plaint de
   sa LONGUEUR, jamais de l'encodage. Garde ajoutee qui refuse + et /.

2. L'issuer etait fabrique (`keycloak.<domaine>`), un nom que rien ne publie.
   Le plan expose `auth.<domaine>` — c'est ce nom que le DNS resout et que nginx
   sert. Derive desormais du champ `expose`.

3. Keycloak s'annoncait sous ce meme nom invente : « issuer did not match ».
   Meme correctif a la source.

4. Le pare-feu est-ouest bloquait l'edge : nginx ne declarait son 443 qu'avec
   `pair: externe`, que le devis est-ouest saute (il releve de la frontiere).
   Le flux existait d'un seul cote et la matrice etait satisfaite. nginx declare
   maintenant aussi son 443 depuis la flotte.

obs-01 et mon-01 deployees. 7 cibles Prometheus up, scrutees en TLS a travers
cinq zones du VRF.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 11:47:34 -04:00
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