Comptes, authentification à deux facteurs et jetons API
Bucket & Code Server IDE possède ses propres comptes : un seul compte accède au panneau, à Git, SVN, Bucket et à l’éditeur avec le même nom et mot de passe. Les comptes QTS ne permettent pas de se connecter. Ce guide décrit l’authentification à deux facteurs, les mots de passe utilisés alors par git et WebDAV, les jetons API pour les scripts et la récupération de l’accès après trop de mots de passe incorrects.
- Rôlesviewer, member, developer, admin
- 2FAun code du téléphone
- Clientsjeton d’accès, mot de passe d’application
- Jetonspour les scripts et la CI
- Blocageset retour à l’accès
Les images montrent le panneau rempli selon ce guide. Le compte développeur s’appelle ola et le compte administrateur ewa; le code QR est flouté, et la clé, le mot de passe d’application et le jeton sont des exemples. Les images d’authentification à deux facteurs et de mot de passe d’application proviennent des données de test du panneau.
01Rôles
| Rôle | Autorisations |
|---|---|
| viewer / member | viewer consulte le panneau ; Backups, Storage, Users et Logs sont réservées aux administrateurs. member écrit aussi dans Git, SVN et Bucket là où il en a le droit, sans éditeur, tâches cron ni compilations. Aucun de ces rôles ne crée de dépôts Git ou d’organisations. member ne peut pas pousser vers un dépôt Git détenu ou administré par un compte de rôle inférieur à developer, ni, lorsque la CI est active, vers un dépôt avec Actions activé |
| developer | ouvre aussi l’éditeur, compile des applications, exécute ses propres tâches cron et publie des paquets dans le dépôt du NAS (un administrateur les inscrit au catalogue) |
| admin | tout : comptes, paramètres, stockage, réseau, modules, activation des applications et chargement des modules du noyau |
Le rôle developer possède les droits root sur le NAS : le terminal de l’éditeur, ses commandes cron et les workflows CI des dépôts vers lesquels il peut pousser s’exécutent tous en root. Réservez-le aux personnes auxquelles vous confieriez le mot de passe administrateur du NAS. Activez l’authentification à deux facteurs pour chaque developer et admin avant toute publication sur Internet.
02Activer l’authentification à deux facteurs
Chaque compte l’active pour lui-même sous Your account (bouton en bas de la barre d’activité).
- Appuyez sur Set up two-factor authentication.

- Scannez le code QR avec une application d’authentification sur votre téléphone ou saisissez-y la clé. Entrez le code actuel à 6 chiffres et appuyez sur Turn on. Avant sa confirmation, la connexion fonctionne comme auparavant.

- La connexion demande désormais un code après le mot de passe.


- Un code comporte 6 chiffres et change toutes les 30 secondes. Un code décalé de 30 secondes en avance ou en retard est accepté. Un même code n’est jamais accepté deux fois.
- Si un code récent échoue, l’horloge du téléphone est probablement décalée : activez l’heure automatique.
- La désactivation de l’authentification à deux facteurs exige votre mot de passe.
03Git, SVN et Bucket avec l’authentification à deux facteurs
Avec l’authentification à deux facteurs, les clients git, SVN et WebDAV n’acceptent plus le mot de passe du compte. Ils utilisent :
- Git via HTTP ou HTTPS : un jeton d’accès Forgejo créé dans Forgejo sous Settings → Applications. Les clés SSH fonctionnent comme auparavant.
- Clients SVN et WebDAV : un mot de passe d’application créé sous Your account. Ses 25 caractères aléatoires sont répartis en cinq groupes et affichés une seule fois. Un nouveau remplace l’ancien ; changer le mot de passe du compte ou désactiver l’authentification à deux facteurs le supprime.

04Jetons API pour les scripts et la CI
Un script ou une tâche CI utilise un jeton API plutôt qu’un mot de passe. Sous Your account, appuyez sur New token, donnez-lui un nom décrivant son usage et choisissez ses portées.

- Les portées
read,writeetadmincorrespondent aux rôles viewer, developer et admin. Un jeton agit avec sa portée la plus élevée, sans dépasser le rôle actuel de son propriétaire. Aucune portée ne correspond à member ; ce rôle crée des jetons read. - Le jeton est affiché une seule fois ; bvsd ne conserve que son empreinte. Un script l’envoie sous la forme
Authorization: Bearer bvs_…. - Un nouveau mot de passe révoque tous les jetons du propriétaire. Ceux d’un compte désactivé cessent de fonctionner.
- Un jeton ne peut modifier ni mot de passe ni authentification à deux facteurs, ni créer ou supprimer des jetons. Un jeton divulgué ne peut donc pas bloquer son propriétaire. Supprimez les jetons inutilisés : tout envoi ultérieur reçoit 401.
05Mots de passe incorrects et blocages
- Cinq échecs de connexion en 15 minutes depuis une adresse bloquent cette adresse pendant 15 minutes, même avec le bon mot de passe. Un client IPv6 est compté comme son réseau /64.
- Cinq échecs pour un compte depuis une adresse bloquent ce compte depuis cette adresse pendant 15 minutes.
- Les échecs pour un compte depuis plusieurs adresses ralentissent ses connexions suivantes de 125 ms à 2 secondes. Depuis le réseau local, ils ne le bloquent jamais.
- Depuis Internet, 20 échecs pour un compte depuis sa dernière connexion réussie bloquent l’accès Internet, quelles que soient les adresses utilisées. Le compte reste accessible depuis le réseau local. Le seuil se règle sur la page Users ; 0 désactive ce blocage.

Derrière un proxy inverse, le panneau ne compte l’adresse signalée par le proxy que si celui-ci est déclaré fiable. Sinon, tous les clients sont comptés sous l’adresse du proxy et cinq mots de passe incorrects de n’importe qui bloquent tout le monde.
06Ce qu’un administrateur peut faire
Sur la page Users un administrateur ouvre un compte en cliquant sur sa ligne.
- Téléphone perdu : Turn it off sous Two-factor authentication. Le mot de passe seul suffit alors jusqu’à la reconfiguration par le compte.

- Compte bloqué depuis Internet : Unlock ou un nouveau mot de passe.
- Set a new password termine les sessions du compte et révoque ses jetons API.
- Désactiver un compte termine immédiatement ses sessions et arrête ses jetons ; ses données restent. Le dernier administrateur actif ne peut être rétrogradé, désactivé ou supprimé.
- Les tâches cron d’un compte désactivé ou passé au rôle member ou viewer restent présentes sans s’exécuter. Supprimer le compte supprime ses tâches (à partir de la version 1.0.0-52, Tâches planifiées).
07Quand l’administrateur est bloqué
L’administrateur du NAS réinitialise tout compte depuis une session SSH sur le NAS. Ces commandes contactent bvsd par un socket réservé à root et chacune est inscrite dans log/audit.log dans le dossier de données :
/usr/bin/bucketvs/bin/bvs user list /usr/bin/bucketvs/bin/bvs user password administrator /usr/bin/bucketvs/bin/bvs user totp-reset administrator /usr/bin/bucketvs/bin/bvs user unlock administrator
bvs user passworddéfinit un nouveau mot de passe aléatoire de 20 caractères et l’affiche. Le compte doit choisir le sien à la prochaine connexion ; ses sessions sont terminées et ses jetons API révoqués.bvs user totp-resetdésactive l’authentification à deux facteurs du compte.bvs user unlocklève le blocage dû à trop de mots de passe incorrects depuis Internet.