Équipes et Gestion des Rôles (RBAC)
La page Équipes (/teams, code source src/app/teams/page.tsx) permet aux administrateurs de piloter les membres de l'organisation, d'attribuer précisément les profils d'habilitation RBAC et de superviser la conformité d'accès (MFA, dates de dernière connexion).
Le modèle RBAC de TkushPatch est fondé sur le principe de moindre privilège et intègre nativement la séparation des responsabilités exigée dans les environnements critiques.
1. Vue d'Ensemble des 5 Rôles Plateforme
Chaque utilisateur invité dans l'organisation se voit affecter l'un des 5 rôles stricts :
| Rôle RBAC | Nom d'usage | Périmètre fonctionnel | Restrictions majeures |
|---|---|---|---|
ROLE_ADMIN | Super Administrateur / Tenant Owner | Contrôle total du compte, gestion des abonnements, invitation des membres, réglage des politiques globales et des clés de signature. | Ne peut pas s'auto-approuver en mode multi-membres strict. |
ROLE_RELEASE_DEVELOPER | Développeur Mobile Lead (Maker) | Déclaration des versions Store multi-ABI, création de patchs OTA, téléversement des assets, symboles Dart et support N3. | ❌ Aucun accès à la Signature cryptographique (/approvals), au rollout canary (/rollout) ni aux logs d'audit (/audit). |
ROLE_SECURITY_OFFICER | Responsable Sécurité (Checker / RSSI) | Approbation 4-yeux, ordonnancement des signatures moteur cryptographique, promotion des patchs et audit de sécurité. | ❌ Pas de modification des assets OTA ni d'administration d'infrastructure. |
ROLE_SRE_ADMIN | Ingénieur SRE / Infrastructure | Gestion des pourcentages de déploiement progressif, ciblage pays, engagement du Kill-Switch et purge Day-2. | ❌ Incapable de signer du code ou d'inviter des membres dans l'organisation. |
ROLE_AUDITOR_READONLY | Auditeur Réglementaire (Externe) | Consultation en lecture seule stricte du cockpit, des journaux d'audit certifiés et des métriques de télémétrie. | ❌ Tout bouton d'action ou de modification est strictement masqué et rejeté par l'API. |
2. Cycle de Vie d'un Compte Collaborateur
La gestion des membres suit trois statuts normalisés :
INVITED: Invitation transmise par email avec le rôle attribué (Administrateur, Développeur, Auditeur).ACTIVE: Compte configuré avec mot de passe et authentification à deux facteurs activée.SUSPENDED: Accès révoqué par un administrateur en cas de départ ou d'incident de sécurité.
Statuts disponibles
INVITED: L'invitation a été envoyée par courriel. Le jeton d'invitation est valide pendant 48 heures.ACTIVE: L'utilisateur s'est connecté, a défini son mot de passe et a validé son défi 2FA OTP initial.SUSPENDED: L'accès à la console et aux API de management est immédiatement révoqué sans supprimer l'historique d'audit.
3. Inviter un Nouveau Collaborateur
Seuls les utilisateurs disposant du rôle ROLE_ADMIN peuvent ajouter de nouveaux membres.
- Rendez-vous sur la page
/teams. - Cliquez sur le bouton Inviter un collaborateur.
- Renseignez l'adresse email professionnelle du membre.
- Sélectionnez le rôle approprié parmi les 5 options disponibles.
- Cliquez sur Envoyer l'invitation (
POST /api/admin/v1/teams/invite).
L'utilisateur reçoit un courriel contenant un lien sécurisé à usage unique pointant vers la mire d'enregistrement (/register?token=...).
4. Supervision de l'Authentification MFA et Réinitialisation
La conformité de sécurité bancaire requiert l'activation systématique du second facteur (2FA OTP) pour l'accès au Control Plane.
Sur le tableau des membres de /teams :
- Une pastille verte 2FA Actif indique que le collaborateur valide un code à chaque connexion.
- Une pastille ambre 2FA En attente signale un compte dont le premier enrôlement OTP n'est pas encore finalisé.
Procédure de Réinitialisation 2FA (Perte de boîte mail ou d'appareil)
En cas de perte d'accès aux codes de secours ou de dysfonctionnement du canal OTP :
- L'administrateur clique sur le menu contextuel du collaborateur.
- Il sélectionne Réinitialiser le facteur 2FA.
- L'action exige la confirmation du mot de passe administrateur et déclenche un enregistrement immédiat dans le journal d'audit légal (
audit_action: USER_MFA_RESET). - À sa prochaine connexion, l'utilisateur est guidé vers une procédure d'enrôlement réinitialisée.
5. Sécurité et Révocation Immédiate
Lorsqu'un collaborateur quitte l'organisation ou que ses habilitations changent :
- Suspension instantanée : En cliquant sur Suspendre, tous les jetons JWT actifs du membre sont invalidés côté serveur.
- Révocation des sessions CLI : Si le collaborateur s'était authentifié sur son poste via
tk-ota-push login, ses sessions en ligne de commande sont automatiquement fermées lors de la suspension de son compte web. - Immuabilité de l'audit : Les actions passées du collaborateur (approbations, créations de releases) restent scellées dans le journal d'audit avec son identité d'origine.