Retour aux projets

OIDC Nginx

1 jour - Août 2025 Genavir, Brest
OIDC Nginx

OIDC Auth Nginx est un microservice d'authentification et de contrôle d'accès qui agit comme une API Gateway devant vos applications, sécurisant à la fois services HTTP et WebSocket.

Concept

Une passerelle Nginx configurée pour déléguer l'authentification à un fournisseur OIDC externe, avec des règles d'accès fines basées sur les claims JWT.

Architecture

Mécanisme auth_request

Nginx délègue la validation à un backend OIDC :

location /api/ {
    auth_request /sso/check;
    auth_request_set $auth_claims $upstream_http_x_auth_claims;
    proxy_pass http://backend;
}

Backend OIDC

  • Gestion du flux Authorization Code avec PKCE
  • Validation des tokens JWT
  • Extraction et vérification des claims
  • Refresh automatique des tokens

Fonctionnalités

Authentification

  • Redirection automatique vers le fournisseur OIDC
  • Support du deep linking post-authentification
  • Gestion transparente des sessions

Autorisation Dynamique

Règles d'accès basées sur les claims JWT :

set $auth_params "role=admin,service=api";

Conditions supportées :

  • Rôles : vérification des rôles utilisateur
  • Groupes : appartenance à des groupes
  • Scopes : permissions OAuth
  • Custom claims : n'importe quel claim JWT

Support Multi-Protocoles

  • HTTP/HTTPS : APIs REST classiques
  • WebSocket : applications temps réel
  • Configuration flexible par location

Sécurité

Flux OIDC Sécurisé

  • Authorization Code avec PKCE
  • Validation cryptographique des tokens
  • Protection contre les attaques CSRF

Injection de Claims

proxy_set_header X-User-Email $auth_email;
proxy_set_header X-User-Roles $auth_roles;

Infrastructure

Stateless et Scalable

  • Aucun état serveur
  • Scalabilité horizontale
  • Haute performance grâce à Nginx

Configuration Prête à l'Emploi

Fichiers de configuration fournis :

server {
    listen 443 ssl;
    server_name api.example.com;

    include /etc/nginx/oidc-auth.conf;

    location /api/ {
        set $auth_params "service=api";
        auth_request /sso/check;
        proxy_pass http://backend;
    }
}

Cas d'Usage

  • Sécuriser des APIs legacy
  • Ajouter l'authentification à des microservices
  • Protéger des applications WebSocket
  • Centraliser l'authentification

Installation Rapide

git clone https://github.com/WalidDevIO/nginx-oidc
cd nginx-oidc
docker-compose up

Démonstration d'Expertise

  • Architecture reverse proxy avancée
  • Intégration de protocoles d'authentification
  • Sécurité au niveau réseau
  • Configuration Nginx complexe

🔗 Documentation complète