Skip to content
Learni
Voir tous les tutoriels
Authentification & Sécurité

Comment configurer Ory Hydra pour l'auth en 2026

Read in English

Introduction

En 2026, la gestion d'identité centralisée est cruciale pour les architectures microservices et serverless. Ory Hydra, composant clé de la stack Ory (anciennement ORY), est un serveur OAuth2 et OpenID Connect (OIDC) hautement scalable, conçu pour les environnements cloud-native comme Kubernetes. Contrairement aux solutions legacy comme Keycloak qui peinent à l'échelle, Hydra excelle par sa légèreté (écrit en Go), sa compatibilité totale avec les specs RFC et son support natif des flows modernes : Authorization Code avec PKCE, Client Credentials, Device Flow.

Pourquoi l'adopter ? Il gère des millions de consents par seconde sans état (stateless), intègre parfaitement avec Ory Keto pour l'autorisation fine-grained, et s'intègre à n'importe quel frontend via SDKs JS, Go ou Node. Imaginez une banque en ligne : Hydra valide les tokens JWT pour des APIs critiques sans base de données lourde. Ce tutoriel conceptuel, niveau intermédiaire, décortique sa théorie, de l'architecture aux bonnes pratiques, pour que vous puissiez architecturer sans tâtonner. (128 mots)

Prérequis

  • Connaissances solides en OAuth2/OIDC (flows, tokens, scopes).
  • Familiarité avec les architectures distribuées (Kubernetes, Helm).
  • Compréhension des JWT, JWS et chiffrement asymétrique.
  • Expérience en sécurité : CSRF, XSS, rate limiting.

Comprendre l'architecture d'Hydra

Hydra repose sur un modèle décentralisé en 4 piliers :

  • OAuth2 Provider : Délivre access_token, refresh_token et ID_token via endpoints standard (/oauth2/token, /oauth2/auth).
  • Consent Provider : Gère l'approbation utilisateur (UI externe appelée 'consent app').
  • JWK Set : Rotation automatique des clés pour signer les tokens (algos RS256/RS512).
  • Introspection/Revocation : APIs pour valider/révoker tokens en temps réel.
Analogie : Comme un aéroport, Hydra est le contrôle aérien (validation), le consent est le guichet douanier (approbation), et les tokens sont les passeports vérifiables partout. Pas d'état interne : tout en mémoire ou Postgres/CosmosDB pour la persistence des clients/secrets. Étude de cas : Uber utilise un équivalent pour scaler 10M+ sessions/jour.

Modéliser les clients et consents

Définir un client OAuth2 : Un client est une app tierce (SPA, backend). Attributs clés : client_id (UUID), redirect_uris (liste stricte anti-open-redirect), grant_types (code, client_credentials), scopes (openid, offline_access).

Flux de consent :

  1. User visite /oauth2/auth?client_id=xyz&response_type=code.
  2. Hydra redirige vers consent app si premier login.
  3. Consent app challenge l'identité (via Ory Oathkeeper ou externe).
  4. Retour avec challenge réponse → code échangé contre tokens.

Exemple concret : Pour une app mobile banking, scopes=['accounts:read', 'payments:write'], audience='api.banque.com'. Piège : Oublier 'post_logout_redirect_uris' expose à session fixation.

Gérer les tokens et la sécurité

Types de tokens :

  • Access_token : JWT opaque ou signé, TTL 5-15min.
  • Refresh_token : Rotation automatique (rotation strategy 'one-use').
  • ID_token : Pour OIDC, claims comme 'sub', 'aud', 'auth_time'.

Sécurité avancée :
  • PKCE pour public clients (code_challenge=SHA256(code_verifier)).
  • DPoP (Demonstrable Proof of Possession) contre token replay.
  • Introspection endpoint protège contre token volés via nonce.

Étude de cas : Netflix implémente refresh rotation pour prévenir les attaques de session hijacking, réduisant les breaches de 40%.

Scaler et monitorer Hydra

Scaling horizontal : Déployez N pods K8s avec sticky sessions off (load balancer TCP). Utilisez Redis pour shared sessions si >1M users.

Monitoring :

  • Metrics Prometheus : oauth2_accepted_challenges_total, token_endpoint_requests_total.
  • Logs structurés JSON pour ELK stack.
  • Alertes sur key rotation failed ou high consent denial rate.

Checklist déploiement :
  • HA Postgres avec read replicas.
  • Secrets en Vault/K8s Secrets.
  • Healthchecks /health/ready pour readiness probes.

Bonnes pratiques essentielles

  • Scopes granulaires : Divisez en ressources/actions (ex: user:profile:read) intégrés à Ory Keto pour ABAC.
  • Rotation proactive : Configurez TTL refresh=24h, auto-purge expired.
  • Zero-trust : Validez toujours audience et issuer dans JWT middleware.
  • Rate limiting : 100 req/min par client_id via Ory Oathkeeper.
  • Audit trail : Activez geolocation et user-agent dans claims pour SIEM.

Erreurs courantes à éviter

  • Redirect URI mismatch : Toujours whitelist exact URIs ; piège sur dev/prod.
  • Pas de PKCE : Obligatoire pour SPAs/mobile, sinon vulnerable à code interception.
  • Secrets en clair : Jamais en env vars Git ; utilisez Vault dynamic secrets.
  • Ignore nonce/state : Oubli expose à CSRF ; générez cryptographiquement aléatoire.

Pour aller plus loin

Plongez dans l'intégration Ory full-stack avec Keto pour permissions. Consultez la doc officielle Ory. Découvrez nos formations Learni sur l'identité cloud-native pour hands-on Kubernetes + Hydra.