Dans cette 4ème partie nous allons aborder la gestion et l’utilisation des seconds facteurs authentification (2FA). Si vous ne les avez pas encore lus, les premiers articles sont accessibles ici : Partie 1 / Partie 2 / Partie 3

FreeIPA supporte plusieurs types d’OTP (one time password) comme second facteur : HOTP (counter-based; RFC 4226) ou TOTP (time-based; RFC 6238).

Activation

Il est possible d’activer les OTP de façon globale ou par utilisateur, en cli :

Globalement :

[root@freeipa0 ~]# ipa config-mod --user-auth-type=otp
 [...]
 Default user authentication types: otp

Pour un seul utilisateur :

[root@freeipa0 ~]# ipa user-mod testuser1 --user-auth-type=otp
-------------------------
Modified user "testuser1"
-------------------------
  [...]
  User authentication types: otp

Il est possible d’arriver au même résultat par l’interface Web :

IPA Server -> Configuration -> Default user authentication types

Par utilisateur, Identity -> otpuser -> User authentication type

Il est ensuite possible pour les utilisateurs d’activer un second facteur

2FA TOTP

C’est le plus répandu et le plus facile à mettre en place, il suffit d’une application mobile compatible (Authy, andOTP, FreeOTP, Google Authenticator…)

Une fois activé de façon globale ou individuellement, l’utilisateur doit ajouter un “token” dans son interface de gestion, il est aussi possible de le faire a la place de l’utilisateur : en tant qu’administrateur, via le menu Authentication -> OTP Token.

Dans le menu des actions, “Add OTP Token” :

Choisir TOTP et Nommer l’OTP :

Un QR Code est affiché, il faut le scanner avec une application compatible :

Une fois le QR Code scanné, l’application proposera un OTP à 6 chiffres qu’il faut désormais saisir au login à la suite du mot de passe dans l’interface Web (exemple : “motdepasse123456”).

En SSH le mot de passe et le second facteur sont demandés séparément :

user@desktop ~> ssh testuser1@freeipa0.demo.local                                                                                                                                                                                              
First Factor:
Second Factor: 
Last login: Mon Jul  9 17:14:05 2018 from 192.168.56.1
[testuser1@freeipa0 ~]# 

De façon générale, quand on se connecte sur un client ou est installé SSSD, le 2nd facteur est demandé séparément, pour les anciennes versions de SSSD ou en authentification LDAP, l’otp est saisi directement a la suite du mot de passe.

C’est tout pour la mise en place d’un second facteur TOTP pour un utilisateur FreeIPA, a savoir qu’il est possible de déléguer l’OTP a une solution tiers via Radius (Serveur yubikey, freeradius par exemple), il est également possible d’enroller directement une yubikey comme 2nd facteur pour un utilisateur FreeIPA, au lieu d’un TOTP, cela n’est possible qu’en ligne de commande pour le moment : https://www.freeipa.org/page/V4/OTP#Programmable_Hardware_Tokens

La partie 5 de cette série sera dédiée au relations d’approbation entre FreeIPA et Active Directory.