Aller au contenu

Gestion des comptes administrateurs

Les comptes administrateurs sont nécessaires pour gérer les utilisateurs, configurer le contrôle d'accès basé sur les rôles (RBAC), consulter les journaux d'audit et accéder au panneau d'administration Django intégré. Tenxyte propose deux niveaux distincts de comptes administratifs.


Sommaire


Présentation

Dans Tenxyte, vous pouvez avoir un Superutilisateur complet (qui outrepasse toutes les vérifications de permissions) ou un Administrateur RBAC (un utilisateur standard auquel est assigné le rôle admin ou super_admin). Selon vos exigences de sécurité, vous pourriez n'accorder le statut de Superutilisateur qu'aux développeurs backend, tandis que le personnel de support reçoit le rôle admin.


1. Superutilisateur Django

Un Superutilisateur Django est essentiellement un compte "root" pour votre application. Cet utilisateur a is_superuser=True et is_staff=True dans la base de données.

Création

Les superutilisateurs sont généralement créés via la ligne de commande. C'est presque toujours le tout premier compte que vous créez lors de la configuration initiale de Tenxyte.

python manage.py createsuperuser

Exemple d'invite :

Email address: admin@example.com
Password: 
Password (again): 
Superuser created successfully.

Capacités

  • Outrepasse le RBAC : user.has_permission("any.permission") renvoie toujours True.
  • Accès au panneau d'administration : Peut se connecter à http://localhost:8000/admin/ pour visualiser les tables brutes de la base de données.
  • Accès à l'API : Possède un accès implicite à chaque point de terminaison de l'API automatiquement.

Note : Vous n'avez pas besoin d'assigner des rôles RBAC à un Superutilisateur.


2. Rôles d'administration RBAC

Un Administrateur RBAC est un utilisateur régulier qui a été assigné à un rôle puissant (ex: admin ou super_admin). Il n'a pas is_superuser=True.

Création

Pour créer un Administrateur RBAC, l'utilisateur doit d'abord s'inscrire normalement. Ensuite, un Superutilisateur ou un Administrateur existant peut l'élever via l'API :

POST /api/v1/auth/users/<user_id>/roles/
Authorization: Bearer <superuser_token>

{
  "role_code": "super_admin"
}

Alternativement, vous pouvez élever un utilisateur par programmation via le shell Django :

# python manage.py shell
from tenxyte.models import get_user_model
User = get_user_model()

user = User.objects.get(email="manager@example.com")
user.assign_role("super_admin")

Capacités

  • RBAC strict : Ils n'ont que les permissions explicitement accordées à leur rôle.
  • Pas d'accès à l'administration Django : Par défaut, ils ne peuvent pas accéder à /admin/ à moins que vous ne définissiez également manuellement is_staff=True sur leur compte.
  • Plus sûr pour les équipes : Idéal pour le support client, les RH ou les chefs de produit qui ont besoin d'un large accès à l'API sans accès direct à la base de données.
  • 2FA obligatoire : Les utilisateurs admin et super_admin doivent activer la 2FA avant de pouvoir se connecter. Si la 2FA n'est pas configurée, la connexion retourne 403 ADMIN_2FA_SETUP_REQUIRED.

Consultez le Guide RBAC pour plus de détails sur les rôles et permissions intégrés.

Points de terminaison d'administration

Les administrateurs disposant des permissions appropriées peuvent accéder aux groupes d'API suivants (documentés dans la Référence des Endpoints) :

Catégorie Endpoints Permission requise
Gestion des utilisateurs GET/PUT /admin/users/, ban, unban, lock, unlock users.view, users.ban, users.lock
Journaux d'audit GET /admin/audit-logs/ audit.view
Tentatives de connexion GET /admin/login-attempts/ audit.view
Gestion des jetons GET /admin/refresh-tokens/, révoquer, nettoyage blacklist tokens.view, tokens.revoke
RGPD GET /admin/deletion-requests/, traiter gdpr.view, gdpr.process
Tableau de bord GET /dashboard/stats/, auth, sécurité, rgpd, orgs dashboard.view

Comparaison

Fonctionnalité Superutilisateur Django RBAC super_admin RBAC admin
Outrepasser les permissions ✅ Oui ❌ Non (Dépend des perms assignées) ❌ Non
Accès Admin Django (/admin/) ✅ Oui ❌ Non (nécessite is_staff) ❌ Non
Gérer utilisateurs & rôles (API) ✅ Oui ✅ Oui ✅ Oui
2FA obligatoire à la connexion ✅ Oui ✅ Oui ✅ Oui
Méthode de création CLI (createsuperuser) API ou Shell API ou Shell
Idéal pour Développeurs, Administrateurs système Responsables d'équipe Personnel de support