Skip to main content
Voir en Markdown

Gestion des utilisateurs

Sovrium provisionne et gère les utilisateurs sans jamais exiger que vous touchiez à la base de données. Le premier administrateur est créé au démarrage ; chaque utilisateur suivant est créé, listé et géré via l'API d'administration authentifiée. Chaque opération est protégée par RBAC et consignée dans le journal d'audit.

La gestion des utilisateurs n'est disponible que lorsque l'authentification est configurée. Le plugin d'administration s'active dès qu'un bloc auth existe — il n'y a pas d'indicateur distinct.

Amorçage de l'administrateur

Le premier administrateur ne peut pas être créé par un autre administrateur (il n'en existe aucun) ni par auto-inscription (vous ne voulez pas qu'un inconnu s'approprie le siège d'administrateur). Trois chemins complémentaires provisionnent ce compte sur une base de données vierge.

Chemin Quand l'utiliser Mécanisme
Amorçage par variable env Déploiements automatisés / IaC Définissez AUTH_ADMIN_EMAIL + AUTH_ADMIN_PASSWORD (+ AUTH_ADMIN_NAME optionnel) ; l'administrateur est créé au premier démarrage.
Jeton à usage unique Vous ne voulez pas d'identifiants en variables env Démarrez sans AUTH_ADMIN_EMAIL et sans utilisateur ; un jeton hexadécimal de 64 caractères est affiché dans la bannière de démarrage et réclamé une fois via POST /api/admin/bootstrap/claim.
CLI Provisionnement interactif sovrium admin create <email> fonctionne sur la base de données configurée (ou le fichier SQLite par défaut) sans app.yaml requis.

Amorçage par variable d'environnement (sans configuration)

>_ terminal
AUTH_ADMIN_EMAIL=admin@example.com
AUTH_ADMIN_PASSWORD=SecureP@ssw0rd!
AUTH_ADMIN_NAME=System Administrator   # optional, defaults to "Administrator"

Au premier démarrage sur une base vierge, le serveur provisionne l'administrateur avec une adresse vérifiée et l'accès complet aux points de terminaison d'administration. Aux démarrages suivants, ce chemin ne fait rien : il ne crée jamais de doublon et ne modifie jamais un utilisateur existant, même si l'adresse correspond déjà à un rôle différent. Le succès est consigné sans le mot de passe.

Variable env Description
AUTH_ADMIN_EMAIL E-mail de l'administrateur d'amorçage. Requis pour le chemin par variable env. Doit être un format d'e-mail valide.
AUTH_ADMIN_PASSWORD Mot de passe initial. Requis pour le chemin par variable env. Doit respecter la longueur minimale (8 caractères).
AUTH_ADMIN_NAME Nom affiché. Optionnel — par défaut Administrator.

Amorçage par jeton à usage unique

Lorsque le serveur démarre sans AUTH_ADMIN_EMAIL défini et sans utilisateur en base, il génère un jeton aléatoire de 256 bits, l'affiche une fois dans la bannière de démarrage et accepte une seule réclamation :

>_ terminal
# Token appears in the banner as:
#   → First-admin token (POST /api/admin/bootstrap/claim): <64-hex-token>

curl -X POST http://localhost:3000/api/admin/bootstrap/claim \
  -H 'Content-Type: application/json' \
  -d '{ "token": "<64-hex-token>", "email": "admin@example.com", "password": "SecureP@ssw0rd!", "name": "Admin" }'
  • Seul le hachage SHA-256 est conservé ; le texte en clair est affiché sur stdout exactement une fois et n'est jamais consigné.
  • Le jeton expire après 1 heure et peut être réclamé une seule fois — les rejeux renvoient 401.
  • Dès qu'un administrateur existe, la route renvoie 404 : la fenêtre est fermée, et même un jeton valide divulgué ne peut la rouvrir.

C'est le chemin qui rend possible « lancer le binaire sur un serveur vierge, ouvrir l'URL, construire l'application en direct ». Voir Infrastructure de base de données pour la base sans configuration qui l'accompagne.

Création et gestion des utilisateurs

Une fois qu'un administrateur existe, chaque opération du cycle de vie des utilisateurs passe par l'API d'administration. Chaque point de terminaison exige une session d'administrateur authentifiée — les requêtes non authentifiées renvoient 401, et les sessions non administrateur obtiennent 404 : la surface d'administration est invisible pour qui ne peut pas s'en servir, son existence n'est donc pas découvrable.

Opération Point de terminaison Notes
Créer un utilisateur POST /api/auth/admin/create-user L'ingénieur choisit le mot de passe ; aucun e-mail n'est envoyé. Renvoie 200.
Lister les utilisateurs GET /api/auth/admin/list-users Paginé (limit/offset), renvoie des métadonnées de comptage, prend en charge la recherche par e-mail ou nom.
Obtenir un utilisateur GET /api/auth/admin/get-user/:id Détail complet incl. rôle, statut de bannissement, indicateur d'e-mail vérifié. 404 pour les identifiants inconnus.
Définir le rôle POST /api/auth/admin/set-role Attribue admin / member / viewer (ou tout rôle personnalisé).
Définir le mot de passe POST /api/auth/admin/set-user-password Réinitialise le mot de passe d'un utilisateur de manière administrative.
Lister les sessions GET /api/auth/admin/list-user-sessions Sessions actives pour un utilisateur.
Révoquer une session POST /api/auth/admin/revoke-user-session Force la déconnexion d'une session spécifique.
Usurper l'identité POST /api/auth/admin/impersonate-user Démarre/arrête l'usurpation d'identité pour les flux de support.

create-user exige que vous inventiez et transmettiez le mot de passe de l'utilisateur, et ne lui envoie rien. Pour accueillir de vraies personnes, utilisez plutôt une invitation.

Attribution de rôle

Déplacé vers Invitations.

Flux d'invitation

Déplacé vers Invitations.

Pages connexes

Dernière mise à jour 11 août 2026

Cette documentation a été rédigée avec de l'IA : des erreurs ou du contenu obsolète sont donc possibles. Sovrium est en bêta. Les contributions et corrections sont les bienvenues.

Construit avec Sovrium