Comparateur indépendant · sans classement payant
Accueil / Blog / Technique / OAuth proxy : protéger un outil interne sans réécrire son authentification

OAuth proxy : protéger un outil interne sans réécrire son authentification

Grafana, Jenkins, phpMyAdmin — des outils sans SSO natif exposés en urgence. Un OAuth proxy ajoute une porte d'entrée sans réécrire l'app.

Rédaction Hébergeurs.eu 3 min

L'équipe expose Grafana en trois clics « temporairement » pour un audit. Pas de SSO natif, mot de passe admin par défaut changé « plus tard ». Deux semaines après, le port 443 pointe toujours vers Internet avec basic auth maison facile à brute-forcer.

Un OAuth proxy (oauth2-proxy, OAuth2 Proxy, Vouch, etc.) place l'authentification là où l'application legacy ne sait pas le faire — devant, pas dedans.

Architecture type

Client → TLS terminator (nginx/Traefik) → oauth2-proxy → app upstream. Flux : redirect IdP (Google Workspace, Azure AD, Keycloak) → callback → cookie chiffré → accès app.

L'app reste en HTTP interne ; seule la edge est exposée.

Configuration sécurisée

Cookie : Secure, HttpOnly, SameSite=Lax minimum. --cookie-secret rotatable. Restreindre --email-domain ou groupes OIDC.

Ne jamais exposer l'upstream direct sans auth parallèle — bypass immédiat.

Headers et confiance

Passez X-Forwarded-User/Email/Groups. L'app ne doit pas croire ces headers depuis le monde ; firewall ou network policy : seulement depuis le proxy.

Pour RBAC app (admin vs viewer), mappez claims OIDC → headers ou utilisez un second proxy path par rôle.

Cas particuliers

Webhooks entrant : route bypass auth avec secret HMAC séparé.

API machine : pas oauth2-proxy — mTLS ou token API dédié.

Health checks : /health sans auth pour load balancer, sans données sensibles.

Exploitation

Logs centralisés des auth failures. Session expiry alignée sur politique entreprise. Documentez procédure offboarding : révoquer sessions IdP + rotate cookie secret si départ sensible.

Checklist déploiement

  1. Upstream app inaccessible directement depuis Internet
  2. Cookie Secure HttpOnly SameSite configuré
  3. --email-domain ou groupes OIDC restrictifs
  4. Routes bypass listées (health, webhook HMAC)
  5. Headers X-Forwarded-* trustés app-side depuis proxy seul
  6. WebSocket testé bout en bout
  7. Session expiry alignée politique RH
  8. Logs auth failure centralisés
  9. Procédure offboarding documentée
  10. Renouvellement cert testé sans logout massif

Validez avec pentest interne « bypass proxy » — si réussi, corrigez réseau avant d'annoncer SSO.

Intégration équipe et lifecycle

Onboarding : nouvel ingénieur reçoit accès IdP + doc ProxyJump/oauth path — pas URL upstream directe. Offboarding : révoquer IdP et invalider cookies session (rotate cookie-secret si départ sensible).

Multi-environnement : staging oauth2-proxy vers IdP staging app registration — ne partagez pas client_id prod/staging.

Observabilité : métrique 401/403 oauth-proxy vs 502 upstream — distinguer auth fail vs app down.

Limites : oauth2-proxy ne remplace pas autorisation fine (RBAC app) — il authentifie, l'app autorise encore.

Multi-outils internes (Grafana + Prometheus + Kibana) : un oauth2-proxy par upstream ou forward auth central Traefik — les deux marchent, ne mélangez pas cookies secrets.

Session length vs idle timeout : alignez sur sensibilité données (logs prod vs wiki RH).

Break-glass local account désactivé par défaut, activé via break-glass procedure only — pas de backdoor oubliée.

Tenez runbook daté, métriques avant/après, revue post-incident — la discipline cumulative évite la panique du vendredi soir.

Tenez runbook daté, métriques avant/après, revue post-incident — la discipline cumulative évite la panique du vendredi soir.

Tenez runbook daté, métriques avant/après, revue post-incident — la discipline cumulative évite la panique du vendredi soir.

Tenez runbook daté, métriques avant/après, revue post-incident — la discipline cumulative évite la panique du vendredi soir.

Tenez runbook daté, métriques avant/après, revue post-incident — la discipline cumulative évite la panique du vendredi soir.

Tenez runbook daté, métriques avant/après, revue post-incident — la discipline cumulative évite la panique du vendredi soir.

SSO réseau

Upstream joignable par IP = contournement SSO. Login <30s documenté.

Tenez runbook daté, métriques avant/après, revue post-incident — la discipline cumulative évite la panique du vendredi soir.

Décider et avancer sans angle mort

  1. Couper l'accès direct Internet à l'app upstream — seul le proxy doit être joignable publiquement.
  2. Configurer cookies Secure HttpOnly SameSite — routes bypass listées (health, webhooks HMAC signés).
  3. Restreindre domaines ou groupes OIDC — session expiry alignée politique RH, logs auth centralisés.
  4. Tester WebSocket bout en bout — headers X-Forwarded-* trustés depuis le proxy seul.
  5. Pentest bypass proxy — procédure offboarding documentée, renouvellement cert sans logout massif.

Comparez hébergements adaptés aux stacks SSO via l'annuaire et nos guides.

Questions fréquentes

oauth2-proxy vs reverse proxy classique ?

oauth2-proxy gère le flux OAuth/OIDC et pose un cookie de session ; nginx seul ne valide pas l'identité IdP sans module additionnel.

L'app voit-elle l'utilisateur réel ?

Via headers X-Forwarded-User/Email/Groups si configurés — l'app doit les faire confiance seulement depuis le proxy (network ACL).

Comment gérer les WebSockets ?

Activez upstream support WebSocket sur nginx/traefik ; oauth2-proxy doit autoriser les routes upgrade avec même cookie session.

Risque si mal configuré ?

Bypass via IP whitelist trop large, cookie sans Secure/HttpOnly, ou app qui accepte headers usurpés depuis Internet.


Avant d'annoncer « SSO activé », tentez d'atteindre l'upstream sans passer par le proxy — si ça marche, ce n'est pas fini.

Comparez les hébergeurs européens

Filtrez par conformité, localisation et usage — puis ouvrez les fiches pour vérifier le périmètre réel.

Voir l'annuaire
Blog

À lire aussi

Tous les articles →