MFA Keycloak

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.

TOTP et HOTPWebAuthn et passkeys MFA conditionnelle et step-up

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.

SLA jusqu’à 99,99 %SOC 2 Type IIISO 27001Conforme au RGPDRésidence mondiale
La confiance des équipes techniques de
DigiCertGoogleRedsenseRovaRhoImpactiSolvedAmazonArcstone

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.

realm.json : politique OTP (valeurs par défaut)JSON
{
  "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.

realm.json : politique des passkeysJSON
{
  "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.

realm.json : paramètres des conditionsJSON
"authenticatorConfig": [
  {
    "alias": "admins-only",
    "config": { "condUserRole": "admin", "negate": "false" }
  },
  {
    "alias": "step-up-level-2",
    "config": { "loa-condition-level": "2", "loa-max-age": "300" }
  }
]
Capacités

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

1

Créez Votre Instance

Inscrivez-vous et déployez votre instance Keycloak. Un clic, entièrement managé.

2 minutes
2

Personnalisez Votre Branding

Ajoutez votre logo, couleurs et style pour faire correspondre les pages de connexion à votre marque.

5 minutes
3

Intégrez Votre App

Utilisez les SDK Keycloak existants ou bibliothèques OIDC/SAML standards pour tout framework.

15 minutes
Démarrer l'essai gratuit

Aucune carte bancaire requise. Essai gratuit de 21 jours avec accès complet.

FAQ

Foire aux questions

Keycloak prend-il en charge les SMS pour la MFA ?
Keycloak n'a pas de facteur OTP par SMS natif. Ses seconds facteurs intégrés sont les codes à usage unique des applications d'authentification (TOTP et HOTP) ainsi que les clés de sécurité et les passkeys WebAuthn ; les codes SMS nécessiteraient une extension tierce et un fournisseur SMS. Comme les codes SMS peuvent être volés par échange de carte SIM et par hameçonnage, nous recommandons plutôt les applications d'authentification et les passkeys.
Puis-je exiger la MFA uniquement pour les administrateurs ?
Oui. Dans le flux browser du realm, ajoutez un sous-flux conditionnel qui commence par l'étape « Condition - user role » réglée sur votre rôle d'administrateur, suivie de l'OTP Form ou du WebAuthn Authenticator. Les utilisateurs qui ont ce rôle doivent fournir un second facteur, et tous les autres se connectent avec leur seul mot de passe.
Dois-je utiliser des passkeys ou des codes OTP ?
Les passkeys résistent à l'hameçonnage, car le navigateur ne propose une passkey qu'au site pour lequel elle a été enregistrée, alors qu'un code OTP à six chiffres peut être saisi sur une fausse page de connexion. L'OTP fonctionne avec n'importe quelle application d'authentification et reste un bon second facteur là où les passkeys ne sont pas encore disponibles. Keycloak prend en charge les deux, et de nombreuses équipes proposent d'abord les passkeys en gardant l'OTP comme solution de repli.

Prêt à commencer ?

Démarrez votre essai gratuit aujourd'hui. Accès complet à toutes les fonctionnalités pendant 21 jours.

Aucune carte bancaire requiseEssai gratuit de 21 joursAccès à toutes les fonctionnalitésAnnulez à tout moment
© 2026 Skycloak. Tous droits réservés. Design par Yasser SolimanKeycloak™ is a trademark of the Linux Foundation. Skycloak is not affiliated with the Keycloak project.