Authentification multifacteur Keycloak avec OTP, WebAuthn et MFA conditionnelle
Chaque realm Keycloak peut demander un second facteur à la connexion. Cette page indique où se trouve chaque facteur dans la console d'administration, les paramètres du realm qui le portent, et comment ne le demander que là où il compte.
Essai de 21 jours, aucune carte requise. · Runs on managed Keycloak.
Keycloak prend-il en charge l'authentification multifacteur ?
Oui. Keycloak prend en charge la MFA dès l'installation avec deux types de second facteur : les codes OTP des applications d'authentification TOTP et HOTP, et les clés de sécurité et passkeys WebAuthn. Chaque facteur est une étape du flux d'authentification du realm, vous décidez donc où il s'applique. Les sous-flux conditionnels ne demandent le second facteur qu'à certains utilisateurs, rôles ou clients, et l'authentification step-up le redemande avant une action sensible.

OTP avec des applications d'authentification
Le facteur OTP de Keycloak accepte les codes basés sur le temps (TOTP) et sur un compteur (HOTP) d'applications comme Google Authenticator, Microsoft Authenticator et FreeOTP. Vous définissez le format des codes pour tout le realm sous Authentication puis Policies puis OTP Policy : le type, l'algorithme de hachage, six ou huit chiffres, la période et la fenêtre d'anticipation. Les valeurs par défaut, TOTP avec SHA1, six chiffres et une période de 30 secondes, fonctionnent avec toutes les applications courantes.
Les utilisateurs enregistrent une application via l'action Configure OTP sous Authentication puis Required actions, et activer son interrupteur Set as default action demande à chaque nouvel utilisateur de le faire à sa prochaine connexion. Dans le flux browser par défaut, sous Authentication puis Flows, l'OTP Form se trouve dans le sous-flux Browser - Conditional 2FA, qui demande un code à chaque utilisateur qui en a enregistré un.
{
"otpPolicyType": "totp",
"otpPolicyAlgorithm": "HmacSHA1",
"otpPolicyDigits": 6,
"otpPolicyPeriod": 30,
"otpPolicyLookAheadWindow": 1,
"otpPolicyCodeReusable": false
}Clés de sécurité WebAuthn et passkeys
WebAuthn permet à un utilisateur de confirmer une connexion avec une clé de sécurité, ou avec une passkey conservée sur son téléphone, son ordinateur ou son gestionnaire de mots de passe, et Keycloak l'utilise de deux façons. Comme second facteur, l'utilisateur saisit un mot de passe puis confirme avec la clé : activez Webauthn Register sous Authentication puis Required actions, et réglez WebAuthn Authenticator sur Alternative dans le sous-flux Browser - Conditional 2FA sous Authentication puis Flows. Ses paramètres se trouvent sous Authentication puis Policies puis Webauthn Policy.
Pour une connexion par passkey sans mot de passe, activez Enable Passkeys sous Realm settings puis Login, et activez Webauthn Register Passwordless sous Required actions. Depuis Keycloak 26.4, le formulaire de connexion par défaut propose alors les passkeys via la saisie automatique du navigateur et un bouton Sign in with Passkey, avec les paramètres de Authentication puis Policies puis Webauthn Passwordless Policy.
{
"webAuthnPolicyPasswordlessRpEntityName": "Example",
"webAuthnPolicyPasswordlessSignatureAlgorithms": ["ES256", "RS256"],
"webAuthnPolicyPasswordlessUserVerificationRequirement": "required",
"webAuthnPolicyPasswordlessPasskeysEnabled": true
}MFA conditionnelle et step-up
Un sous-flux conditionnel n'exécute son second facteur que lorsque les conditions placées en tête sont vraies. Sous Authentication puis Flows, dupliquez le flux browser, ajoutez un sous-flux réglé sur Conditional et commencez-le par une condition : Condition - user role pour ne solliciter que les administrateurs, Condition - client scope pour ne solliciter que dans les clients qui portent un client scope donné, ou Condition - user attribute pour un groupe d'utilisateurs. L'OTP Form ou le WebAuthn Authenticator placé après la condition n'est alors demandé qu'aux utilisateurs qu'elle retient. Liez la copie comme flux browser du realm, ou remplacez-le pour un client dans l'onglet Advanced de ce client.
L'authentification step-up demande un facteur plus fort avant une action sensible. Associez des valeurs ACR à des niveaux d'authentification sous Realm settings puis General, donnez à chaque niveau un sous-flux qui commence par Condition - Level of Authentication, et faites demander par votre application le niveau dont elle a besoin avec le paramètre acr_values. Un utilisateur connecté avec son seul mot de passe ne se voit demander le second facteur qu'au moment où il atteint l'action qui l'exige.
"authenticatorConfig": [
{
"alias": "admins-only",
"config": { "condUserRole": "admin", "negate": "false" }
},
{
"alias": "step-up-level-2",
"config": { "loa-condition-level": "2", "loa-max-age": "300" }
}
]Fonctionnalités d'entreprise
Tout ce qu'il faut pour une authentification sécurisée et évolutive
Codes TOTP et HOTP
Codes de Google Authenticator, Microsoft Authenticator, FreeOTP et des autres applications d'authentification standard.
Clés de sécurité
Clés matérielles WebAuthn comme second facteur après le mot de passe.
Passkeys
Connexion par passkey sans mot de passe, proposée par le formulaire de connexion par défaut depuis Keycloak 26.4.
MFA Conditionnel
Un second facteur uniquement pour les rôles, clients ou utilisateurs que vous choisissez.
Authentification step-up
Un facteur plus fort avant une action sensible, demandé avec des valeurs ACR.
Codes de récupération
Des codes de secours à usage unique pour les utilisateurs qui perdent leur authentificateur.
En production en 3 étapes
De zéro à la production en quelques minutes, pas en quelques mois
Créez Votre Instance
Inscrivez-vous et déployez votre instance Keycloak. Un clic, entièrement managé.
2 minutesPersonnalisez Votre Branding
Ajoutez votre logo, couleurs et style pour faire correspondre les pages de connexion à votre marque.
5 minutesIntégrez Votre App
Utilisez les SDK Keycloak existants ou bibliothèques OIDC/SAML standards pour tout framework.
15 minutesAucune carte bancaire requise. Essai gratuit de 21 jours avec accès complet.
Foire aux questions
Keycloak prend-il en charge les SMS pour la MFA ?
Puis-je exiger la MFA uniquement pour les administrateurs ?
Dois-je utiliser des passkeys ou des codes OTP ?
Fonctionnalités associées
Complétez votre configuration avec ces fonctionnalités
Prêt à commencer ?
Démarrez votre essai gratuit aujourd'hui. Accès complet à toutes les fonctionnalités pendant 21 jours.