Aller au contenu
Sécurité et conformité

Gérer les droits d’accès par rôle dans une application

Rôles, permissions, cloisonnement des données entre équipes ou clients, vérification côté serveur : comment concevoir les droits d’accès d’un outil métier et ce que cela coûte (1 500€HT pour la brique comptes et rôles).

Par Damien Ladurelle · Mis à jour en · Lecture 5 min

Sommaire
  1. Pourquoi c’est le premier sujet de sécurité
  2. Concevoir la matrice des rôles
  3. Vérifier les droits au bon endroit
  4. Les erreurs classiques à contrôler
  5. Ce que cela coûte
  6. Quand une gestion fine des droits n’est pas nécessaire
  7. Comment je le mets en place
En bref

Les droits d’accès par rôle attribuent à chaque utilisateur un rôle (commercial, manager, comptable, client) qui définit ce qu’il peut voir et modifier. Ils doivent être vérifiés côté serveur et jusque dans la base de données, pas seulement masqués à l’écran. Dans mon barème, la brique comptes et rôles compte pour 1 500€HT.

Dans un outil métier, tout le monde ne doit pas tout voir. Un commercial n’a pas à consulter les salaires, un client ne doit voir que ses propres commandes, un stagiaire ne doit pas pouvoir supprimer une facture. Les droits d’accès par rôle organisent cela. Bien conçus, ils protègent vos données et simplifient l’administration. Mal conçus, ils sont la faille de sécurité la plus répandue dans les applications web. Voici comment je les conçois.

Pourquoi c’est le premier sujet de sécurité

Le Top 10 de l’OWASP, le référentiel de référence des risques de sécurité des applications web, place le « contrôle d’accès défaillant » (A01:2025 Broken Access Control) en première position dans sa version 2025 (consultée le 27 octobre 2026). Concrètement, cela recouvre des situations comme :

  • un utilisateur qui change un numéro dans l’adresse de la page et accède à la fiche d’un autre client ;
  • un bouton masqué à l’écran, mais dont l’action reste accessible en appelant directement le serveur ;
  • une page d’administration protégée seulement par le fait qu’aucun lien n’y mène.

Le RGPD impose par ailleurs de limiter l’accès aux données personnelles aux personnes qui en ont besoin (article 32 du règlement (UE) 2016/679). La CNIL détaille la gestion des habilitations dans son guide de la sécurité des données personnelles.

Concevoir la matrice des rôles

Tout commence par un tableau, rédigé pendant le cadrage avec les responsables métier. En lignes, les rôles ; en colonnes, les actions sur chaque type de donnée. Exemple d’illustration pour un outil commercial :

Action Commercial Responsable d’équipe Comptabilité Administrateur Client (espace client)
Voir les fiches clients Les siennes Celles de son équipe Toutes, en lecture Toutes La sienne
Créer un devis Oui Oui Non Oui Non
Valider une remise au-delà du seuil Non Oui Non Oui Non
Émettre une facture Non Non Oui Oui Non
Voir le chiffre d’affaires global Non Son équipe Oui Oui Non
Gérer les utilisateurs et les droits Non Non Non Oui Non

Trois principes guident ce tableau :

  1. Le moindre privilège. Chaque rôle reçoit le minimum nécessaire à son travail. On ajoute un droit quand le besoin est démontré, pas « au cas où ».
  2. Rôle et périmètre. « Responsable d’équipe » est un rôle ; « équipe Ouest » est un périmètre. Combiner les deux évite de créer un rôle par agence.
  3. La séparation des tâches. Celui qui crée une remise exceptionnelle n’est pas celui qui la valide.

Vérifier les droits au bon endroit

Masquer un bouton ne protège rien. Les droits doivent être contrôlés à trois niveaux :

  • l’interface : n’afficher que ce que l’utilisateur peut faire, pour le confort ;
  • le serveur : chaque requête vérifie l’identité et le rôle de l’utilisateur avant d’agir, c’est là que se joue la sécurité ;
  • la base de données : avec PostgreSQL, les politiques de sécurité au niveau des lignes (Row Level Security) filtrent les données directement dans la base. Une fois activées sur une table sans politique définie, aucune ligne n’est accessible par défaut.

Ce troisième niveau est celui que j’utilise avec Supabase. Il sert de filet de sécurité : même si une erreur se glisse dans le code de l’application, la base refuse de renvoyer les données d’un autre client ou d’une autre équipe.

Les erreurs classiques à contrôler

Ce sont les points que je contrôle en priorité lors de la reprise ou de l’audit d’une application :

  • des droits vérifiés uniquement dans le navigateur, fréquents dans les prototypes générés rapidement ;
  • des identifiants séquentiels dans les adresses, qui permettent de deviner les fiches voisines ;
  • un compte administrateur partagé par plusieurs personnes, sans traçabilité ;
  • des comptes jamais désactivés après un départ ;
  • des droits accumulés au fil des changements de poste.

D’autres failles fréquentes sont détaillées dans les failles les plus fréquentes dans les applications de PME.

Ce que cela coûte

Dans mon barème, les droits d’accès s’ajoutent au prix de base de l’application sous forme de briques (montants HT) :

Brique Ce qu’elle couvre Prix
Comptes et rôles Connexion, rôles, permissions, administration des utilisateurs 1 500€HT
Back-office Interface d’administration complète 2 000€HT
Espace client ou partenaire Accès externe cloisonné, chacun ne voit que ses données 2 500€HT
Connexion à d’autres outils Par exemple, connexion unique avec Microsoft 365 ou Google 2 000€HT

Un outil avec plusieurs espaces cloisonnés en est l’illustration : O’GYM réunit une app adhérent, des espaces coach et partenaire et une administration, chacun avec ses propres droits. La connexion avec l’annuaire de l’entreprise est détaillée dans connexion unique (SSO) avec Microsoft 365 ou Google.

Quand une gestion fine des droits n’est pas nécessaire

Je le dis franchement : pour un outil utilisé par cinq personnes qui ont toutes besoin de tout voir, deux rôles suffisent (utilisateur et administrateur). Une matrice détaillée ajoute du coût de conception et d’administration sans bénéfice. La finesse des droits doit suivre la sensibilité des données et le nombre d’équipes, pas l’inverse.

Comment je le mets en place

  1. Au cadrage : la matrice des rôles, validée par les responsables métier et la liste des administrateurs.
  2. Aux maquettes : chaque rôle teste ses propres écrans.
  3. Au développement : contrôle côté serveur et politiques au niveau de la base, tests automatiques qui vérifient qu’un rôle ne peut pas accéder aux données d’un autre.
  4. À la mise en ligne : journal des modifications de droits et procédure de revue périodique.

Les droits d’accès font partie de toute application métier que je développe. Pour estimer votre projet, cochez les briques utiles dans l’estimateur.

Questions fréquentes

Combien de rôles faut-il prévoir ?

Le moins possible. Quatre à six rôles couvrent la plupart des outils métier. Au-delà, on combine un rôle avec un périmètre (agence, région, client) plutôt que de multiplier les rôles. Une matrice trop fine devient impossible à administrer et finit contournée.

Peut-on se connecter avec les comptes Microsoft 365 ou Google de l’entreprise ?

Oui, grâce à la connexion unique (SSO). L’identité vient de votre annuaire, les droits restent gérés dans l’application. Quand un salarié quitte l’entreprise, la désactivation de son compte principal lui retire aussi l’accès à l’outil.

Qui doit pouvoir modifier les droits ?

Un nombre restreint d’administrateurs, nommément désignés. Chaque modification de droits doit être journalisée : qui a donné quel accès, à qui et quand. C’est la première chose que l’on vérifie après un incident.

Que se passe-t-il quand un salarié change de poste ?

Son rôle est modifié, pas complété. L’erreur classique consiste à ajouter les nouveaux droits sans retirer les anciens : au bout de quelques années, les plus anciens salariés ont accès à tout. Une revue des droits une à deux fois par an évite cette dérive.

Vous hésitez pour votre projet ?

On en parle 30 minutes : je vous dis franchement quelle option je choisirais à votre place.

Réserver un appel de 30 min English version