• 1. Introduction

  • 2. Étapes d’implémentation

  • 2.1. Déployer Keycloak en Docker

  • 2.2. Créer un Realm et un Client OAuth2

  • 2.3. Intégrer Keycloak dans l’application Node.js

  • 2.4. Tester le flux OAuth2

  • 3. Bonnes pratiques

  • 4. Conclusion

guide technique : implémenter l’authentification oauth2 avec keycloak pour votre saas node.js

Image de guide technique : implémenter l’authentification oauth2 avec keycloak pour votre saas node.js

Introduction

Dans un contexte SaaS, sécuriser l’accès à votre application est incontournable. OAuth2, associé à Keycloak (solution open-source de gestion d’identité & d’accès), offre un flux d’authentification robuste et standardisé. Ce guide s’adresse aux lead devs et ingénieurs DevOps souhaitant intégrer Keycloak à une application Node.js conteneurisée avec Docker.

Étapes d’implémentation

1. Déployer Keycloak en Docker

Lancez rapidement un conteneur Keycloak :

docker run -d \
  --name keycloak \
  -p 8080:8080 \
  -e KEYCLOAK_USER=admin \
  -e KEYCLOAK_PASSWORD=ChangeMe123 \
  jboss/keycloak:20.0.1

– Vous pouvez vérifier le statut :

docker ps | grep keycloak

2. Créer un Realm et un Client OAuth2

Dans l’interface Keycloak (http://localhost:8080), connectez-vous en admin, puis :

  1. Créez un Realm (« saas-realm »).
  2. Ajoutez un Client (« saas-client ») de type public ou confidential selon votre besoin.
  3. Dans l’onglet Credentials, récupérez le Client secret si confidential.
  4. Configurez Valid Redirect URIs (ex. http://localhost:3000/*).

3. Intégrer Keycloak dans l’application Node.js

Dans votre projet :

npm install keycloak-connect express-session

Exemple de serveur Express :

const express = require('express');
const session = require('express-session');
const Keycloak = require('keycloak-connect');

const app = express();
app.use(session({ secret: 'change_me', resave: false, saveUninitialized: true }));

// Initialisation de Keycloak
const keycloak = new Keycloak({ store: session() }, {
  clientId: 'saas-client',
  bearerOnly: true,
  serverUrl: 'http://localhost:8080',
  realm: 'saas-realm',
  credentials: { secret: 'VOTRE_CLIENT_SECRET' }
});

// Protection des routes
app.use(keycloak.middleware());

app.get('/public', (req, res) => res.send('Accessible sans auth'));
app.get('/secure', keycloak.protect(), (req, res) => {
  res.send('Contenu sécurisé, Hello ' + req.kauth.grant.access_token.content.preferred_username);
});

app.listen(3000, () => console.log('API démarrée sur port 3000'));

4. Tester le flux OAuth2

Accédez à http://localhost:3000/secure. Vous serez redirigé vers Keycloak pour vous authentifier, puis renvoyé sur votre app avec un access_token JWT.

Lisez notre offre SaaS pour un accompagnement complet à la mise en production.

Bonnes pratiques

  • HTTPS obligatoire pour protéger tokens et credentials.
  • Stockez les Client secret dans un vault (HashiCorp Vault, AWS Secrets Manager).
  • Activez Refresh Tokens et gérez leur rotation.
  • Limitez les scopes aux seules informations nécessaires.
  • Supervisez l’authentification via des métriques (Jenkins ou Prometheus).

Conclusion

En quelques commandes et fichiers de config, OAuth2 + Keycloak vous apportent une couche d’authentification et d’autorisation standardisée, évolutive pour un SaaS sécurisé et maintenable. Pour aller plus loin, pensez à déployer Keycloak en cluster ou intégrer un provider externe (LDAP, social login).

Envie d’un audit sécurité ou d’un accompagnement sur mesure ? Contactez-nous.

Image de salesforce vs hubspot vs pipedrive en 2025 : quel crm pour votre business?

salesforce vs hubspot vs pipedrive en 2025 : quel crm pour votre business?

Découvrez en 2025 quel CRM entre Salesforce, HubSpot et Pipedrive optimise votre business grâce à anecdotes, chiffres clés et conseils pratiques
Image de pipedrive score : intégrer l’ia prédictive pour un scoring de leads optimisé

pipedrive score : intégrer l’ia prédictive pour un scoring de leads optimisé

Découvrez comment Pipedrive Score utilise l’IA prédictive pour hiérarchiser vos leads, simplifier l’intégration via API et booster votre taux de conversion
Image de pipeline ci/cd : scanner les vulnérabilités de votre SaaS Node.js avec Snyk et Trivy

pipeline ci/cd : scanner les vulnérabilités de votre SaaS Node.js avec Snyk et Trivy

Découvrez comment intégrer Snyk et Trivy dans votre pipeline CI/CD pour détecter les vulnérabilités de votre SaaS Node.js avant chaque déploiement.
DEVIS GRATUIT

Un projet en tête ? Vous avez des questions ?

Contactez nous pour recevoir un devis gratuitement, des réponses à vos questions ou une séance de consulting offerte avec l'un de nos experts :

Femme en chemise jaune