Nextcloud, second facteur d’authentification (2FA) et code de récupération

, par  Genma , popularité : 6%

Introduction

Un deuxième facteur d’authentification, en plus du mot de passe, permet une meilleure sécurisation d’un accès à un compte sur une application et Nextcloud n’échappe pas à cette bonne pratique. Je ne détaillerai pas ici, sur la mise en place de la double authentification, je vous renvoie à la page de documentation utilisateur en français de Nextcloud sur le sujet

Cette page explique comment générer des codes de récupération pour pouvoir se connecter tout de même en cas de perte du 2ème facteur (physique ou logiciel).

La génération de ces codes doit être idéalement faite lors de la mise en place de la double authentification, mais il peut arriver qu’on oublie de le faire, qu’on perde ces codes (qui une fois générés doivent être soigneusement protégés - dans un contenant chiffré par exemple - et sauvegardés). Et le jour où on en a besoin, on ne les a pas. Dans ce cas, comment faire ?

Plusieurs possibilités

Un administrateur a accès à l’interface de gestion de Nextcloud

Dans le cas où on est plusieurs sur une instance Nextcloud, on peut définir plusieurs personnes comme ayant les droits administrateurs, installer l’application "Impersonate". L’application permet à un administrateur, depuis l’interface de gestion des comptes, de prendre l’identité d’un autre utilisateur et d’ainsi pouvoir accéder au paramétrage du compte du dit utilisateur. On peut alors demander la génération de code de récupération et les fournir à l’utilisateur.

Ne marche pas si on est le seul administrateur et que ce compte administrateur a un 2ème facteur d’authentification... auquel on n’a plus accès.

La solution ? La ligne de commande

Depuis la ligne de commande (avec l’outil occ), il est possible de gérer la double authentification des utilisateurs de Nextcloud. C’est dans la documentation administrateur, en anglais, que l’on trouve quelques explications et commandes, dont celle permettant de désactiver la double authentification (ce qui doit être fait de façon temporaire, l’utilisateur devra alors la remettre ou l’administrateur lui forcer).

Il faut effectivement désactiver la double authentification, il semble qu’il n’y ait pas d’options en ligne de commande pour regénérer des codes de secours.

Je mets ici quelques commandes :

user@nextcloud:/var/www/nextcloud# sudo -u nextcloud php8.1 occ twofactorauth:state genma
Two-factor authentication is enabled for user genma

Enabled providers:
- backup_codes
- u2f
Disabled providers:
- totp

Les options possibles de cette commande étant :
 twofactorauth:cleanup
 twofactorauth:disable
 twofactorauth:enable
 twofactorauth:enforce
 twofactorauth:state

Les noms en anglais sont assez explicites.