Azure AD – MFA avec un token physique OATH (Token2)

AAD-Logo

Le renforcement de la sécurité dans le monde de l’entreprise ainsi que dans le monde personnel passe de plus en plus par le déploiement de solution de MFA. Bien que les solutions dites “Passwordless” soient privilégiées (MS Authenticator, FIDO2 …), AzureAD prend en charge d’autres solutions de MFA donc les tokens physiques (TOTP OATH). Ce type d’authentification repose sur le couple mot de passe plus un second facteur qui ici est un code à 6 digits généré par un token.

Il existe différents fabricants de token, dans ce cas si, mon choix s’est porté sur la société Token2 (https://www.token2.com/). La société Token2 possède un site marchand permettant de passer commande en ligne.

Le token utilisé pour les tests est le modèle : Token2 OTPC-P1-i

Ce modèle est programmable, ce qui n’est pas un prérequis côté AzureAD, mais m’intéresse pour d’autres sujets. Son format carte de crédit est pour moi intéressant car se glisse facilement dans un portefeuille.

La fonctionnalité OATH Hardware Tokens est toujours en version public preview. Comme d’autres méthodes d’authentification proposées par AzureAD que j’utilise au quotidien. Ce qui signifie que Microsoft supporte bien la fonctionnalité, mais avec un engagement de service moindre.

Preview Terms Of Use | Microsoft Azure

Sommaire

Prérequis

Côté AzureAD, les prérequis sont plutôt standards et simples :

  • OATH TOTP
  • SHA-1
  • Tokens that refresh codes every 30 or 60 seconds
  • Secret keys are limited to 128 characters
  • Secret key can only contain the characters a-z or A-Z and digits 2-7
  • Encoded in Base32

En résumé, un TOTP standard, mais TOTP et non HOTP.

Coté licence, AzureAD P1 et plus.

https://docs.microsoft.com/en-us/azure/active-directory/authentication/concept-authentication-oath-tokens#oath-hardware-tokens-preview

Enrollment depuis l'interface administrateur

L’enrollment /attribution d’un token à un utilisateur est réalisé depuis la console AzureAD.

Azure AD Security –> MFA –> OATH tokens.

OATH tokens

La documentation Microsoft ci-dessous décrit la mécanique d’import :

https://docs.microsoft.com/en-us/azure/active-directory/authentication/concept-authentication-oath-tokens

L’import dans AAD est réalisé à l’aide d’un fichier CSV contenant les informations du token et l’affectation de celui-ci.

Comme tout fichier d’import, celui-ci a un format spécifique :

upn,serial number,secret key,time interval,manufacturer,model
Helga@contoso.com,1234567,2234567abcdef1234567abcdef,60,Contoso,HardwareKey

Nous allons maintenant créer le fichier CSV avec les informations demandées à savoir :

  • UPN : l’utilisateur à qui sera affecté le token.
  • Serial number : numéro de série du token. Disponible sur le bon de commande et au dos du token.
  • Secret key
  • Time interval : fréquence de changement de l’OTP (30s par défaut).
  • Manufacturer : fabricant de l’OTP, ici Token2.
  • Model : modèle de l’OTP (SKU), ici OTPCP1i.

La plupart des informations demandées ne s’inventent pas. Dans le cadre de ma commande, sur la page de suivi de celle-ci, j’ai la possibilité de demander un fichier récapitulatif des ces informations.

Request seeds

Remplir le formulaire de demande. Token2 propose d’utiliser PGP pour le chiffrement du fichier. Dans le cadre du test, et pas simplicité j’ai utilisé un mot de passe, chose que je ne recommande pas en production.

Formulaire seeds

Sous quelques minutes, j’ai reçu les informations demandées par email. Après avoir extrait le fichier du zip reçu par mail (password). J’obtiens un fichier directement formaté pour l’import avec pour seul champ à complété, celui de l’UPN.

CSV reçu

Voici le fichier une fois modifiée, prêt pour l’import.

CSV modifié

Maintenant que le fichier d’import est prêt, retournons sur la console AzureAD où nous allons celui-ci.

Import CSV

Dès que l’import est lancé, il est possible de suivre celui-ci en cliquant sur le lien “Hardware token files uploaded with no errors. View details”.

Dans cet exemple, nous n’avons qu’un seul token à importer, l’usage est donc limité, mais certainement très utile en cas d’import massif.

Import en cours

Après quelques secondes (un seul token), l’import est terminé et en succès.

Import terminé

Pour finir, nous allons activer le token. Pour ce faire, cliquer sur “Activate” en fin de ligne et saisir l’OTP affiché sur le token.

Activer le token et saisant l'OTP
Token activé

A ce stade, le token est configuré et est opérationnel.

Lors de l’import en grand volume, Token2 fournissent un petit utilitaire permettant l’activation en masse des tokens :

https://www.token2.com/blog/how-to-bulk-activate-oath-hardware-tokens-with-azure-mfa/35

Utilisation coté utilisateur

Côté utilisateur, nous pouvons aller vérifier dans les options d’authentification de celui-ci :

https://mysignins.microsoft.com/security-info

Le token est bien présent.

Mysignins

Maintenant, lors de nouvelles connexions et a condition que le MFA soit activé sur le compte, il est possible de se connecter avec le couple Password + Token.

1FA password

Sur ce compte, plusieurs solutions de MFA /Passwordless sont configurées. Pour utiliser le token, cliquer sur “Sign in another way”.

Sign in another way

Choisir “Use a verification code from my mobile app“.

Je vous accorde que ce n’est pas du tout explicite et tend à induire en erreur (token physique = mobile app … ?). Je peux vous assurer que j’ai cherché un petit moment avant de trouver.

2FA use verification code

Saisir les six digits affichés sur le token pour valider le second facteur.

Enter 6 digits

L’authentification avec MFA en utilisant un token physique fonctionne.

Conclusion

Côté token, rien à redire. Le service est rendu, la finition est soignée et il fonctionne très bien. D’après les informations du fabricant, la durée de vie est donnée pour 4 à 5 ans.

Le fichier d’import contenant les seeds et autres informations sur les tokens a été récupéré par mail en quelques minutes et sans difficultés.

De plus le site Toekn2.com comporte une documentation claire, chaque token possède une matrice de compatibilité. Et surtout une partie marchande qui permet de se procurer rapidement un token sans cotation préalable (pratique pour un POC).

Les difficultés sont plutôt à mon gout côté AzureAD. L’enrollement des tokens réalisés uniquement depuis un fichier CSV et l’attribution de celui-ci en avance de phase à un utilisateur est lourd d’utilisation.

De plus, le choix du token lors de l’authentification n’est pas explicite “Use a verification code from my mobile app” pour un token physique est sujet à égarement.

Hormis, ce deux points, la solution fonctionne très bien.

Les diverses remarques /conclusions ne sont que mes observations et mon ressentis.

J’ai moi même acheté le matériel, d’autres marques sont présentes sur le marcher et proposent certainement des produits /services similaires.