Authentification multi-facteur
Pour mettre en œuvre une authentification multi-facteur (MFA) avec Keycloak en combinant le fournisseur personnalisé Open ENT/Neo4j et un service OTP (One-Time Password), voici les étapes clés :
1. Architecture Globale
Keycloak doit être configuré avec 2 founisseurs d'authentification Neo4j et OTP :
Client → Keycloak
├── Fournisseur Open ENT/Neo4j (1er facteur)
└── OTP (2ème facteur)
2. Configuration de Base dans Keycloak
Activer l'OTP standard
Keycloak inclut par défaut un module OTP :
- Dans l'admin console, allez dans Realm OpenENT > Realm Settings > Authentication > Flows
- Dupliquez le flux
browser
pour créer un flux personnalisé - Ajoutez une étape d'authentification avec
Authenticator: OTP Form
Créer un fournisseur personnalisé
Il est également possible de réaliser sa propre solution d'authentification OTP si on souhaite stocker au niveau de Neo4j pour chaque utilisateur un attribut permettant de garder le token de l'utilisateur permettant de l'identifier.
3. Création du Flux d'Authentification
a. Dans l'Admin Console de Keycloak
- Realm Settings > Authentication > Flows
- Créez un nouveau flux (ex:
OpenENT-OTP
) - Ajoutez les étapes :
- 1er facteur : Votre fournisseur Open ENT/Neo4j
- 2ème facteur : OTP Form (ou votre implémentation personnalisée)
b. Configuration des exigences
- Requirement :
REQUIRED
pour les deux étapes - Authenticator Flow : Cochez "Use OTP" si vous utilisez le module standard
4. Configuration des Politiques de Sécurité
Il est possible de forcer l'usage OTP dans la configuration KeyCloak
Dans Realm Settings > Authentication > Required Actions :
- Activez "Configure OTP" pour forcer les utilisateurs à configurer un OTP
- Définissez des politiques de révocation (ex: expiration après 5 minutes)
5. Pour allez plus loin
Le modèle d'atuhentification multiple pour ajouter d'autres facteurs comme :
- Authentification biométrique
- Clés matérielles (ex: YubiKey)
- Validation par email/SMS
est possible avec Keycloak sur ce même modèle.