Nœuds : MFA TOTP
Sur cette page
Enrôlement et vérification TOTP (RFC 6238), plus les nœuds transverses de choix/politique MFA, dans le cadre d’un graphe d’authentification.
TotpVerifierNode : vérifie un code TOTP avec tolérance de dérive d’horloge.
| Propriété | Type | Défaut |
|---|---|---|
secretSource | string | ldap |
secretStateKey | string | clé du TotpSecretGeneratorNode |
secretAttributeName | string (obligatoire) | oathDeviceProfiles |
digits | int | 6 |
period | int | 30 |
stepsInWindow | int | 1 |
algorithm | string | HmacSHA1 |
retryLimit | int | 3 |
Outcomes : true / false / exceeded.
TotpSecretGeneratorNode : génère le secret TOTP et l’URI otpauth:// (première étape de l’enrôlement).
| Propriété | Type | Défaut |
|---|---|---|
issuer | string | TOSIAM |
secretByteLength | int | 20 |
digits | int | 6 |
period | int | 30 |
algorithm | string | HmacSHA1 |
secretStateKey | string | ENROLLMENT_SECRET_KEY |
Outcome : outcome.
TotpEnrollCommitNode : persiste le profil d’appareil TOTP, qui porte le secret, en LDAP après vérification réussie, et génère les codes de récupération. Le profil est stocké en clair ou chiffré selon le service Authenticator (OATH) du royaume : voir Chiffrement des profils.
| Propriété | Type | Défaut |
|---|---|---|
secretAttributeName | string | oathDeviceProfiles |
secretStateKey | string | clé du générateur |
recoveryCodesStateKey | string | RECOVERY_CODES_KEY |
Outcome : outcome.
Chiffrement des profils#
L’attribut oathDeviceProfiles contient un profil par appareil : le secret TOTP et les empreintes des codes de récupération. Les nœuds TOTP l’écrivent et le lisent comme le module OATH des chaînes d’authentification, selon le service Authenticator (OATH) du royaume (Services du royaume) :
| Réglage du service | Effet |
|---|---|
Schéma de chiffrement NONE (défaut) | Le profil est stocké en JSON : le secret est lisible dans l’annuaire. |
RSAES_AES256CBC_HS512 ou RSAES_AES128CBC_HS256 | Le profil est stocké sous forme de JWT chiffré avec la paire de clés désignée par le service (keystore, alias). |
- Lecture des deux formes.
TotpVerifierNodeetRecoveryCodeVerifyNodelisent un profil en clair comme un profil chiffré : un utilisateur enrôlé par le module OATH se connecte par un graphe, et inversement. - Profils déjà enrôlés. Quand le chiffrement est activé après coup, un profil en clair reste utilisable ; il est chiffré à la première vérification TOTP de l’utilisateur, ou à sa première utilisation d’un code de récupération.
- Service illisible. Si le service ou sa paire de clés ne peut pas être lu, l’enrôlement et la vérification échouent : aucun profil n’est écrit en clair par défaut.
- Désactivation. Un profil chiffré ne peut plus être lu si le schéma est remis à
NONE: gardez le chiffrement tant que des profils chiffrés existent.
Avant la version 3.38.0, les nœuds TOTP ignoraient ce service : ils stockaient toujours le profil en clair et ne savaient pas lire un profil chiffré par le module OATH.
TotpQrCodeDisplayNode : envoie l’URI otpauth:// à l’UI via un HiddenValueCallback (id totpEnrollmentUri) pour affichage du QR code.
| Propriété | Type | Défaut |
|---|---|---|
uriStateKey | string | clé du générateur |
Outcome : outcome.
TotpRecoveryCodesDisplayNode : affiche les codes de récupération puis les efface du shared state.
| Propriété | Type | Défaut |
|---|---|---|
recoveryCodesStateKey | string | clé du TotpEnrollCommitNode |
Outcome : outcome.
RecoveryCodeVerifyNode : vérifie un code de récupération à usage unique, distingue un code invalide d’un code déjà consommé.
| Propriété | Type | Défaut |
|---|---|---|
attributeName | string | oathDeviceProfiles |
Outcomes : true / false / consumed.
MfaEnrollmentCheckNode : nœud silencieux qui vérifie l’enrôlement MFA et écrit SS_ENROLLED_METHODS pour MfaChoiceNode.
| Propriété | Type | Défaut |
|---|---|---|
methodsToCheck | string (liste séparée par virgules) | totp,sms,email,passkey |
Outcomes : enrolled / notEnrolled.
MfaChoiceNode : présente un ChoiceCallback, intersecte les méthodes activées avec celles réellement enrôlées, et route automatiquement si une seule méthode est disponible.
| Propriété | Type | Défaut |
|---|---|---|
enabledMethods | string | totp,sms,email,passkey |
prompt | string | Choisissez votre méthode de vérification |
Outcomes : totp / sms / email / passkey / push.
MfaPolicyDecisionNode : décide si le MFA est requis selon l’IP (CIDR), les groupes de l’utilisateur, ou une décision par défaut.
| Propriété | Type | Défaut |
|---|---|---|
exemptCidrs | string (liste de CIDR) | "" |
exemptGroups | string (liste de groupes) | "" |
defaultDecision | string | required |
Outcomes : required / optional / exempt.
Mis à jour le