Nextcloud et le 2FA ( double facteur d’authentification)

, par  Genma , popularité : 2%

Cet article fait suite à mon article Nitrokey, clefs USB opensource comme 2nd facteurs d’authentification.

Ce billet ne sera pas un tutoriel complet, certains éléments sont assez intuitifs et faciles à mettre en place dès lors que l’on connaît un minimum Nextcloud (installation d’une application) et que l’on sait explorer la partie administration.

Introduction

Une bonne pratique de sécurité dans le cadre de l’hygiène numérique est d’activer la fonctionnalité de double facteur d’authentification (ou vérification en deux étapes, two-factor authentication en anglais, ou 2FA). Ainsi pour se connecter, on aura à saisir son identifiant (login), son mot de passe (sa phrase de passe ou mot de passe complexe issue de son gestionnaire de mot de passe préféré) et un code à usage unique (que l’on reçoit par mail, SMS ou issu d’une application ou d’un appareil physique, souvent appellé calculette quand elle nécessite la saisie d’un code préallable à la génération d’un code temporaire).

Ce second facteur, ce second code à usage unique, change régulièrement en fonction du temps, comme expliqué sur la page Mot de passe à usage unique.

Un mot de passe à usage unique (siglé OTP, de l’anglais one-time password) est un mot de passe qui n’est valable que pour une session ou une transaction.

Nextcloud et la double authentification

Nextcloud a une documentation de base en anglais sur :
- comment utiliser la double authentification Using two-factor authentication ,
 comment la configurer Configuring two-factor authentication
 comment avoir des codes de secours Recovery codes in case you lost your 2nd factor
 comment se connecter une fois le 2ème facteur activé Logging in with two-factor authentication

Activer la double authentification dans Nextcloud

Cette activation de la double authentification passe par plusieurs étapes. La première est d’installer une (ou plusieurs applications) permettant d’avoir un deuxième facteur d’authentification. Ces applications sont listées le magasin des applications Nextcloud catégorie Sécurité. Il existe plusieurs applications, chacunes d’elles ayant une fonctionnalité précise. Toutes modifient la partie administration de Nextcloud en ajoutant de entrées / champs de paramétrages, comme on peut le voir sur les capture d’écrans.

L’application principale à installer est Two-Factor TOTP Provider qui comme indiqué dans la documentation Configuring two-factor authentication ajoute la possibilité de configurer un 2nd facteur :

Le code est fourni via une application compatible TOTP (Time-based One-time Password algorithm), je ferai un billet dédié sur le sujet.

Il est possible d’utiliser différents types de matériels (token), je fais un focus sur le sujet un peu après.

Il est également possible de recevoir un code via d’autres moyens, également gérer via une application :
 Two Factor e-mail provider est une application qui permet de recevoir un code temporaire par e-mail.
 Two-Factor Gateway est une application qui permet de recevoir un code temporaire d’authentification via Signal, SMS et Télégramme.
 Two-Factor Authentication via Nextcloud notification qui permet d’utiliser n’importe lequel de vos appareils connectés comme deuxième facteur (il faut donc déjà être connecté et valider la notification reçue).

Les token hardware

Les token hardware sont les termes anglais consacrées pour désigner un matériel physique (hardware) permettant d’avoir un jeton (token) d’authentification (le jeton étant le code permettant le double facteur d’authentification). Sur sa page Using two-factor authentication with hardware tokens, on retrouve des informations très sommaires à savoi

    TOTP based:
        Nitrokey Pro
        Nitrokey Storage
    FIDO U2F based:
        Nitrokey FIDO U2F

Je vous renvoie donc sur mon article Nitrokey, clefs USB opensource comme 2nd facteurs d’authentification.

Pour l’utiliser, il faut installer l’application Two-Factor U2F : pour utiliser un appareil spécifique proposant une authentification U2F (FIDO), comme la Nitrokey (cf Nitrokey, clefs USB opensource comme 2nd facteurs d’authentification).

Autre type de matériel et autres applications :
 Two-Factor Webauthn pour les appareils Webauthn, comme la Yubikey. Sachant que les clés FIDO U2F existantes sont largement compatibles avec la norme WebAuthn Source
 Two Factor Yubikey pour les clefs Yubikey.

Cas des applicatons tiers

Dans l’écosystème Nextcloud, il y a la connexion à l’interface via un navigateur Web, mais également tout un écosystème d’applications tiers cliente (comme le logiciel de synchronisation de fichier sur PC). Une fois que l’on a activé le 2FA (Deuxième facteur d’authentification) pour renforcer la connexion à Nextcloud), ces clients ne peuvent plus se connecter uniquement avec votre mot de passe, sauf s’ils prennent également en charge l’authentification à deux facteurs. Pour résoudre ce problème, il faut générer pour ces clients des mots de passe spécifiques à l’appareil. C’est là encore documenter, en anglais. Using client applications with two-factor authentication

Si vous utilisez l’authentification à deux facteurs pour votre compte, les mots de passe spécifiques à l’appareil sont le seul moyen de configurer les clients. Le client refusera alors les connexions des clients utilisant votre mot de passe de connexion. Managing devices

Et si on perd l’application, le matériel ?

Comme indiqué dans la documentation, il est possible d’avor des codes de secours Recovery codes in case you lost your 2nd factor.

Il existe aussi une application Two-Factor Admin Support qui permet aux administrateurs de générer un code à usage unique pour que les utilisateurs se connectent à un compte protégé 2FA. Ceci est utile dans les situations où les utilisateurs ont perdu l’accès à leurs autres méthodes 2FA ou 2FA obligatoires sans aucun fournisseur 2FA précédemment activé.

Forcer la double authentification ?

L’authentification à deux facteurs peut être forcée pour tous les utilisateurs et des groupes spécifiques. S’ils n’ont pas un fournisseur à deux facteurs configuré, ils ne seront pas capable de s’identifier au système. (Mais il y a la solution de l’application de support destinée aux administrateurs, mentionnée ci-dessus). Ce forçage est donc à faire une fois que chaque utilisateur a bien activé sa double authentification.

Conclusion

Les limites de cette 2FA est dans le fait que la partie configuration / gestion du second facteur est une action utilisateur. L’administrateur peut définir plusieurs moyens (en installant les applications tiers), mais le moyen final retenu (code par application, mail, token) est à faire par l’utilisateur.

Un administrateur pourra via l’application Impersonate prendre le rôle de chaque utilisateur pour faire la configuration, mais cela reste laborieux. A voir si on ne peut pas faire une automatisation via la ligne de commande et l’outil occ. (Sujet d’un futur article ?).