Contrôle d’accès basé sur les rôles
Le contrôle d’accès basé sur les rôles (RBAC) est une méthode d'attribution de permissions aux utilisateurs en fonction de leurs rôles. Envisagez d'utiliser le RBAC dans les scénarios suivants :
- Vous avez plusieurs utilisateurs avec des besoins d'accès différents : Le RBAC est idéal lorsque les utilisateurs ont besoin de permissions variées basées sur des rôles, tels qu'admin, éditeur ou spectateur.
- Vous devez simplifier la gestion des permissions : Il est efficace pour gérer de grands groupes d'utilisateurs en attribuant des rôles plutôt qu'en définissant des permissions individuellement.
- Votre application dessert différents départements ou équipes : Il est utile dans les scénarios où différents groupes nécessitent des niveaux d'accès distincts aux ressources.
Comprendre comment fonctionne le contrôle d’accès basé sur les rôles
Permissions (Portées)
La permission fait référence à l'autorisation d'accéder à une ressource API. Dans le monde réel, des entités telles que les commandes, les produits et les documents peuvent être désignées comme ressources, et diverses actions peuvent être attribuées.
Exemples de permissions, y compris la capacité d'éditer une commande, de lire un document et de supprimer un produit, sont les suivants :
write:orders
read:documents
delete:products
La figure ci-dessus montre que la permission read:item
dans la ressource https://api-1.store.io
est différente de la permission read:item
dans la ressource https://api-2.store.io
.
Si aucune ressource API n'est fournie, la permission sera traitée comme "pour OIDC". Habituellement, ce n'est pas ce que vous voulez dans le RBAC.
Apprenez comment configurer les permissions API dans Logto.
Rôles
Les rôles sont un regroupement de permissions qui peuvent être attribuées aux utilisateurs. Ils fournissent également un moyen d'agréger les permissions définies pour différentes API, rendant l'ajout, la suppression ou l'ajustement des permissions plus efficace que de les attribuer individuellement aux utilisateurs.
Voici un exemple de rôle order_admin
avec plusieurs permissions pour deux ressources :
Il est acceptable d'avoir un chevauchement de permissions entre les rôles.
Apprenez comment configurer les rôles dans Logto.
Exemple : Une librairie en ligne
Disons que vous avez une librairie en ligne à gérer. Ici, nous simplifions grandement le modèle de contrôle d'accès à des fins de démonstration.
Le modèle est divisé en deux grandes ressources API : commandes et produits. Ils ont différents indicateurs de ressource comme ci-dessous :
- Commandes :
https://api.store.io/orders
- Produits :
https://api.store.io/products
Pour chaque ressource, vous souhaitez séparer les permissions en lecture, écriture et suppression. Vous définissez donc six permissions au total :
https://api.store.io/orders
- Permission
read:order
- Permission
write:order
- Permission
delete:order
- Permission
https://api.store.io/products
- Permission
read:product
- Permission
write:product
- Permission
delete:product
- Permission
Voici l'illustration de ce modèle :
Vous souhaitez avoir deux types d'admin, admin des commandes et admin des produits :
- Admin des commandes peut gérer les commandes et voir les produits (car les commandes se composent de produits), mais ne peut pas gérer les produits.
- Admin des produits peut gérer les produits, et ils ne devraient pas être au courant de toutes les commandes.
Vous créez donc deux rôles, order_admin
et product_admin
, avec les permissions :
order_admin
https://api.store.io/orders
read:order
,write:order
,delete:order
https://api.store.io/products
read:product
product_admin
https://api.store.io/products
read:product
,write:product
,delete:product
Voici l'illustration de ces deux rôles :
Il est acceptable d'attribuer à la fois order_admin
et product_admin
à un utilisateur, alors ils auront toutes les six permissions que vous venez de définir.
Notez que l'admin des commandes partage la permission read:product
avec l'admin des produits, et les permissions finales qu'un utilisateur détient sont l'union de toutes les permissions des rôles qui lui ont été attribués.
Ressources connexes
Maîtriser le RBAC dans Logto : Un exemple complet du monde réel
CIAM 102 : Autorisation & Contrôle d’accès basé sur les rôles