Connexion

En quoi consiste l’autorisation ?

L'autorisation est le processus qui consiste à donner à quelqu'un la capacité d'accéder à une ressource.

Bien sûr, cette définition peut sembler obscure, mais de nombreuses situations de la vie réelle peuvent aider à illustrer ce que signifie l'autorisation afin que vous puissiez appliquer ces concepts aux systèmes informatiques.

Un bon exemple est la propriété d'une maison. Le propriétaire dispose de tous les droits d'accès à la propriété (la ressource), mais peut accorder à d'autres personnes le droit d'y accéder. On dit alors que le propriétaire _autorise_des_personnes à y accéder. Cet exemple simple nous permet d'introduire quelques concepts utiles dans le contexte des autorisations.

Par exemple, l'accès à la maison est une autorisation, c'est-à-dire une action que vous pouvez effectuer sur une ressource. D'autres autorisations concernant une maison peuvent être, par exemple, de la meubler, de la nettoyer, de la réparer, etc.

Une autorisation devient un privilège (ou droit) lorsqu'elle est attribuée à quelqu'un. Ainsi, si vous donnez l'autorisation de meubler votre maison à votre décorateur d'intérieur, vous lui accordez ce privilège.

D'autre part, le décorateur peut demander l'autorisation de meubler votre maison. Dans ce cas, l'autorisation demandée est un champ d'application, c'est-à-dire l'action que le décorateur souhaite effectuer chez vous.

Parfois, l'autorisation est quelque peu liée à l'identité. Pensez au processus d'embarquement dans un avion. Vous avez votre carte d'embarquement qui indique que vous êtes autorisé à prendre cet avion. Cependant, cela ne suffit pas pour que l'agent d'embarquement vous laisse monter à bord. Il vous faut également votre passeport attestant de votre identité. Dans ce cas, l'agent d'embarquement compare le nom figurant sur le passeport avec le nom figurant sur la carte d'embarquement et vous laisse passer s'ils correspondent.

Dans le contexte de l'autorisation, votre nom est un attribut de votre identité. Les autres attributs incluent votre âge, votre langue, votre carte de crédit et tout autre élément pertinent dans un scénario spécifique.

Votre nom inscrit sur le passeport est une demande, c'est-à-dire une déclaration indiquant que vous possédez cet attribut. Quelqu'un qui lit votre nom sur votre passeport peut être sûr de votre nom parce qu'il fait confiance au gouvernement qui a délivré votre passeport.

La carte d'embarquement, avec la preuve d'identité des consommateurs, représente une sorte de « jeton d'accès » qui accorde des droits d'accès pour monter dans l'avion.

Dans les scénarios décrits ci-dessus, vous pouvez constater que l'acte d'autorisation permet aux entités d'exécuter des tâches que d'autres entités n'ont pas le droit d'accomplir.

Les systèmes informatiques qui utilisent l'autorisation fonctionnent de manière similaire.

Gestion de l'autorisation dans un système informatique

Dans les systèmes informatiques, les règles d'autorisation font partie d'une discipline informatique appelée Gestion des identités et des accès (IAM). Dans le cadre de l'IAM, l'autorisation et l'authentification aident les gestionnaires de systèmes à contrôler qui a accès aux ressources du système et à définir les privilèges des clients. La façon dont les systèmes informatiques traitent les services d'autorisation est très similaire à un processus de contrôle d'accès du monde réel.

Cas d'utilisation de l'autorisation

Prenons l'exemple d'un outil de collaboration tel que Google Docs.

L'application vous permet de créer et de partager des documents. Les autres autorisations incluent la possibilité de mettre à jour, de supprimer et de commenter un document. Si vous êtes le propriétaire d'un document, vous pouvez le partager avec une autre personne et définir une ou plusieurs règles d'accès. Par exemple, vous pouvez partager votre document avec quelqu'un en le laissant simplement ajouter des commentaires.

**Dans ce scénario:

Ressource : il s’agit du document

Propriétaire de la ressource : il s’agit de l'utilisateur qui crée un document, le propriétaire du document

Utilisateur autorisé : l'utilisateur à qui le propriétaire de la ressource donne des droits de commentaires

Le diagramme suivant représente l'autorisation d'accès aux ressources: authorization-process-diagram

Définition de l'autorisation basée sur une ou des stratégies d'autorisation

Les systèmes informatiques exploitent plusieurs stratégies d'autorisation différentes pendant le déploiement des applications. Les plus importantes sont le contrôle d'accès basé sur les rôles (Role-Based Access Control, RBAC) et le contrôle d'accès basé sur les attributs (Attribute-Based Access Control, ABAC). Récemment, Auth0 a étudié et résolu la question du contrôle d'accès basé sur les relations (Relationship Based Access Control, ReBAC). Il existe de nombreuses autres alternatives, notamment le Graph-Based Access Control (GBAC) et le Discretionary Access Control (DAC). Chacune de ces stratégies aide les développeurs d'applications à gérer des exigences et des services d'autorisation différents.

Contrôle d'accès basé sur les attributs (ABAC) et autorisation

Lorsqu'il utilise l'ABAC, un système informatique détermine si un utilisateur dispose de privilèges d'accès suffisants pour exécuter une action en fonction d'une caractéristique (attribut ou revendication) associé à cet utilisateur. Un exemple de cas d'utilisation de ce processus d'autorisation est un magasin en ligne qui vend des boissons alcoolisées. Un utilisateur de la boutique en ligne doit s'inscrire et fournir une preuve de son âge. Dans le contexte de l'autorisation, ce scénario peut être décrit comme suit:

  • Le magasin en ligne est le propriétaire de la ressource

  • La boisson alcoolisée est la ressource

  • L'âge du consommateur validé lors du processus d'enregistrement est une revendication, c'est-à-dire la preuve de l'attribut d'âge de l'utilisateur

La présentation de la revendication d'âge permet au magasin de traiter les demandes d'accès pour acheter de l'alcool. Dans ce cas, la décision d'accorder l'accès à la ressource est donc prise en fonction de l'attribut de l'utilisateur.

Contrôle d'accès basé sur les rôles (RBAC) et autorisation

Le RBAC, quant à lui, traite l'autorisation comme des autorisations associées à des rôles et non directement à des utilisateurs. Un rôle n'est rien d'autre qu'une collection d'autorisations. Par exemple, imaginez que vous travaillez en tant que chef de service dans une entreprise. Dans cette situation, vous devriez avoir des autorisations qui reflètent votre rôle. Par exemple, la capacité d'approuver les demandes de vacances et les demandes de dépenses, d'assigner des tâches, etc. Pour attribuer ces autorisations, un gestionnaire de système doit d'abord créer un rôle appelé « Responsable » (ou similaire). Il attribue ensuite ces autorisations à ce rôle et vous associe au rôle « Responsable ». Bien entendu, d'autres utilisateurs ayant besoin du même ensemble d'autorisations peuvent être associés à ce rôle.

L'avantage du RBAC est que la gestion des privilèges d'autorisation devient plus facile, car les gestionnaires de système peuvent traiter les utilisateurs et les autorisations en bloc, au lieu de devoir les traiter un par un.

Contrôle d'accès basé sur les relations (ReBAC) et autorisation

Le contrôle d'accès basé sur les relations examine la question suivante en ce qui concerne l'autorisation : « Cet utilisateur a-t-il une relation suffisante avec cet objet ou cette action pour pouvoir y accéder ? » La relation peut provenir d'un attribut de l'utilisateur, comme le fait d'être membre d'un groupe de rôles lié à l'objet, ou d'une relation directe, comme le fait de partager un document. Parfois, le parcours d'un diagramme des groupes, des rôles, des organisations et des objets nécessite l'exploration de nombreux nœuds pour établir une relation entre un utilisateur et ce qu'il essaie de faire. C'est à la personne qui met en œuvre le système ReBAC de déterminer quelles relations sont essentielles pour obtenir l'accès et quelles autorisations ces relations accordent.

Auth0 a récemment publié un aperçu pour la communauté des développeurs de son futur produit Auth0 Fine Grained Authorization, basé sur ReBAC. Vous en apprendrez davantage en consultant notre page Aperçu pour développeurs concernant Fine Grained Authorization.

Vous souhaitez en savoir plus ?

Poursuivez la lecture de notre page Introduction à l'IAM pour explorer d'autres sujets relatifs à la gestion des identités et des accès.

Quick assessment

Pour quelles raisons utiliseriez-vous l'autorisation pour contrôler une ressource informatique ? (sélectionnez toutes les raisons qui s'appliquent)

Quick assessment

Quelle stratégie d'autorisation vous permet de créer des collections d'autorisations qui peuvent être facilement attribuées ou retirées à un utilisateur en une seule fois ?

Commencez à construire gratuitement