Aller au contenu

Imposer le MFA

L'authentification multi-facteur est optionnelle par défaut dans AKKO v2026.04 afin que les utilisateurs de démo (alice / bob / carol / dave / eve) restent utilisables sur un cluster dev sans app TOTP. En production — et pour satisfaire NIS2 Art. 21(2)(h) (cryptographie + contrôle d'accès) — activer l'overlay MFA.

Overlay

helm upgrade akko oci://harbor.akko-ai.com/akko-charts/akko \
  --version 2026.04 \
  -f values-harbor.yaml \
  -f values-domain.yaml \
  -f values-dev-secrets.yaml \
  -f values-mfa-enforce.yaml

Ce que fait l'overlay

  1. Bascule la required action Keycloak CONFIGURE_TOTP en defaultAction=true — chaque nouveau user est invité à enrôler un TOTP à la première connexion.
  2. Marque les membres existants des groupes akko-admins + akko-engineers avec la même required action — ils doivent enrôler à leur prochaine connexion.
  3. Ajoute la required action webauthn-register (clé matérielle) sur akko-admins pour défense en profondeur.
  4. Durcit la password policy du realm : 12 chars + majuscule + chiffre + spécial + not-username + history(5).

Ce que l'overlay NE fait PAS

  • Ne force pas le MFA sur akko-analyst, akko-steward, akko-viewer — ces rôles peuvent rester en password-only si le cluster est derrière un VPN. Surcharger roleRequiredActions pour étendre.
  • Ne remplace pas les sessions Keycloak déjà ouvertes. Les utilisateurs avec session vive gardent leur session jusqu'à expiration ; ensuite la connexion suivante déclenche l'enrôlement TOTP.

Plan de rollout

Étape Qui Action
1 Admins Activer d'abord sur un realm de staging, vérifier le flow de login
2 Com' Mailer la base user 7 j à l'avance avec un lien vers « Comment enrôler TOTP »
3 Ops Appliquer l'overlay en prod pendant une fenêtre de maintenance
4 Support Surveiller la file de lockout (#akko-support Slack) pendant 48 h
5 Conformité Archiver le changement comme preuve du contrôle NIS2 Art. 21(2)(h)

Désactiver

Pour rollback en cas d'incident, omettre l'overlay et relancer un helm upgrade. Les required actions sont idempotentes et Keycloak laissera les users se connecter sans TOTP jusqu'à ce que leur enrôlement soit révoqué manuellement.

Instructions user (à localiser + distribuer)

  1. Aller sur https://cockpit.<domaine>/account.
  2. Cliquer sur Sécurité du compte → Authentification à deux facteurs.
  3. Scanner le QR code avec Google Authenticator, Microsoft Authenticator, 1Password, Bitwarden ou n'importe quelle app TOTP RFC 6238.
  4. Saisir le code à 6 chiffres.
  5. Sauvegarder les codes de récupération dans un password manager.

Observabilité

  • akko_keycloak_login_total{grant="password_and_totp"} — logins MFA
  • akko_keycloak_login_total{grant="password_and_webauthn"} — admins avec clé matérielle
  • akko_keycloak_login_failures_total — bump quand le MFA échoue

Dépannage

Symptôme Cause Correctif
Utilisateur bloqué sur « Configure TOTP » avec QR code vide Dérive horloge du pod Keycloak kubectl exec ... -- date contre un NTP
« Code invalide » à chaque tentative Décalage horloge de l'authenticator Resync NTP du téléphone, ou élargir la fenêtre Keycloak (Admin → Authentication → OTP → Window)
Lockout massif après application Overlay d'urgence sans étape com' Un admin peut réinitialiser CONFIGURE_TOTP par user via Admin → Users → Required Actions