Qu'est-ce qu'AuthZ (Autorisation) ?
Explorez la définition de l'AuthZ, AuthN vs AuthZ, comment l'AuthZ fonctionne et les meilleures pratiques en matière d'autorisation.
Qu'est-ce qu'AuthZ, et en quoi est-il différent d'AuthN ?
AuthZ est l'abréviation d'autorisation. L'autorisation est un mécanisme distinct de l'authentification. Alors que l'authentification identifie qui vous êtes, l'autorisation détermine si vous pouvez accéder à des ressources spécifiques et quelles actions vous pouvez y effectuer.
Dans des exemples concrets, les ressources peuvent inclure des logiciels, des systèmes, des documents, des commandes et des actifs. L'autorisation ajoute une couche supplémentaire de contrôle, spécifiant qui peut accéder à ces ressources et dans quelles conditions.
Comment fonctionne l'AuthZ ?
L'autorisation est distincte de l'authentification mais souvent connectée à celle-ci. Par exemple, des protocoles standard comme OAuth 2.0, OIDC, et SAML intègrent des mécanismes d'autorisation basés sur des jetons.
Dans un système d'autorisation basé sur des jetons, un serveur d'autorisation accorde un jeton d'accès aux utilisateurs. Ce jeton, qui inclut des permissions, détermine si l'utilisateur peut accéder à certaines ressources.
Attribuer des permissions directement aux utilisateurs peut être inefficace, surtout lorsque des conditions plus détaillées sont nécessaires. Par exemple, l'accès pourrait dépendre de circonstances spécifiques, comme la localisation de l'utilisateur, rendant nécessaires des politiques de contrôle d'accès pour une meilleure gestion des permissions.
Voici un flux étape par étape sur le fonctionnement de l'autorisation :
- Initier l'authentification : L'utilisateur se connecte en sélectionnant un identifiant et une méthode, comme utiliser un email et un mot de passe.
- Demande d'autorisation : Après s'être connecté, l'utilisateur demande l'accès à une ressource, incluant des détails comme son ID utilisateur et ses rôles.
- Validation du contrôle d'accès : Le système vérifie la demande par rapport à des politiques d'autorisation prédéfinies, telles que des règles basées sur les rôles ou les attributs.
- Décision d'autorisation : Le système détermine s'il faut accorder ou refuser l'accès en fonction des politiques et des permissions.
Pour comprendre en détail le flux de demande d'autorisation OAuth 2.0, consultez la demande d'autorisation
Quels sont les types d'autorisation ?
Contrôle d'accès basé sur les rôles et son fonctionnement
Le contrôle d'accès basé sur les rôles (RBAC) utilise des rôles pour gérer l'accès. Chaque utilisateur se voit attribuer un ou plusieurs rôles prédéfinis, et chaque rôle comprend un ensemble de permissions. La clé du RBAC est de comprendre la relation entre les sujets (ou utilisateurs), les rôles et les permissions.
Pour comprendre comment fonctionne le contrôle d'accès basé sur les rôles (RBAC), vous devez connaître :
- Sujets : Il peut s'agir d'utilisateurs ou d'entités non humaines, comme
utilisateur
ouapplication machine à machine
. - Rôles : Représentent des fonctions ou des responsabilités professionnelles, par ex.,
admin
membre
- Permissions : Spécifient quelles actions sont autorisées sur des ressources spécifiques, par ex.,
lire : commande
.
Contrôle d'accès basé sur les attributs et son fonctionnement
Le contrôle d'accès basé sur les attributs (ABAC) est largement utilisé dans l'autorisation et prend en charge des scénarios plus complexes en utilisant des attributs spécifiques d'une entité, au-delà des seuls rôles.
Par exemple, une entreprise gère une plateforme de partage de documents mondiale où les employés ont besoin d'un accès contrôlé aux fichiers sensibles en fonction de leur rôle professionnel, de leur emplacement et du niveau de classification du document.
Les attributs peuvent être définis de la manière suivante :
- Attributs de l'utilisateur : Rôle (par ex., "Manager," "Ingénieur"), localisation (par ex., "USA," "Europe").
- Attributs de la ressource : Type de document (par ex., "Rapport financier," "Fichier de conception"), niveau de classification (par ex., "Confidentiel").
- Attributs de l'environnement : Temps d'accès (par ex., "Pendant les heures de travail"), type d'appareil (par ex., "Ordinateur portable de l'entreprise").
Il existe également d'autres modèles de contrôle d'accès tels que le contrôle d'accès basé sur les politiques (PBAC). Chaque modèle a ses forces et ses faiblesses, et le choix du modèle dépend de votre cas d'utilisation et de vos exigences.
Cas d'utilisation et exemples d'AuthZ
Logiciel B2C
Les logiciels B2C nécessitent souvent des rôles spécifiques basés sur les besoins de l'entreprise. Par exemple, une application de gestion de librairie pourrait inclure des rôles avec différentes responsabilités, comme la gestion des ressources et des services.
Application multi-locataire B2B
Les applications B2B utilisent souvent une architecture multi-locataires, où chaque locataire représente une organisation. Au sein de l'organisation, des rôles comme admin et membre sont nécessaires. C'est là que l'autorisation (AuthZ) joue un rôle clé dans la gestion des utilisateurs au niveau de l'organisation, souvent en utilisant le contrôle d'accès basé sur les rôles (RBAC).
Autorisation machine à machine
La communication machine à machine se produit directement entre les services sans interaction humaine. Par exemple, l'appel de services API par. Elle implique souvent des jetons (par ex., jetons d'accès OAuth 2.0) pour garantir un accès sécurisé, dynamique et granulaire.
Quelles sont les meilleures pratiques pour l'AuthZ ?
Voici quelques meilleures pratiques pour l'autorisation (AuthZ) afin d'assurer un contrôle d'accès sécurisé et efficace :
-
Principe du moindre privilège
Cela garantit que le risque d'accès non autorisé ou de dommages provenant de comptes compromis est minimisé. Les utilisateurs et les systèmes ne doivent accéder qu'aux ressources et actions nécessaires à leur rôle.
-
Utiliser l'autorisation basée sur les jetons
Le contrôle d'accès basé sur les jetons offre plus de flexibilité et un contrôle plus précis tout en respectant les normes ouvertes. Utilisez des jetons sécurisés (par ex., OAuth 2.0, JWTs) pour accorder un accès sensible au temps et à l'étendue.
-
Auditer et surveiller régulièrement
Examiner régulièrement les journaux d'accès et les politiques d'autorisation est nécessaire pour repérer des anomalies ou des permissions obsolètes.
-
Appliquer la séparation des tâches
Commencez par mettre en œuvre des permissions fines, comme définir des actions et des ressources spécifiques (par ex., lire, écrire, supprimer). En créant des rôles, utilisez des noms de rôle clairs et appliquez une séparation des tâches pour minimiser le risque de fraude ou d'erreurs par un seul utilisateur.
-
Soutenir la multi-location (si applicable)
Pour les systèmes multi-locataires, l'isolation des locataires est importante. En la combinant avec le contrôle d'accès basé sur les rôles, vous pouvez réaliser une séparation des ressources de données, garantissant que les rôles appropriés ne peuvent accéder qu'aux ressources de leur locataire. Cela empêche un accès accidentel ou malveillant aux ressources d'autres locataires.
-
Révoquer l'accès dynamiquement
Lors de la conception de votre système AuthZ, assurez-vous que les permissions peuvent être mises à jour ou révoquées immédiatement si les conditions changent (par ex., mises à jour des rôles, ou fin d'emploi). Cela peut être réalisé par le biais de vérifications dynamiques des API, de webhooks ou d'autres méthodes. L'objectif est de prévenir en temps réel un accès non autorisé.
Quelles sont les différences entre AuthZ (Autorisation) et Auth (Authentification) ?
La différence entre l'authentification et l'autorisation réside dans leur objectif et processus au sein de la gestion de l'identité et de l'accès.
AuthN (Authentification) répond à la question : « Qui êtes-vous et quelle identité possédez-vous ? » C'est le processus de vérification de l'identité d'un utilisateur, service ou appareil. L'authentification garantit que l'entité tentant d'accéder à un système ou une ressource est authentique. Les méthodes courantes incluent les mots de passe, les données biométriques et l'authentification à deux facteurs (2FA). Par exemple, lorsque vous vous connectez à un compte avec votre email et mot de passe, le système confirme votre identité grâce à l'authentification.
AuthZ (Autorisation) répond à la question : « Que vous est-il permis de faire ? » C'est le processus d'octroi ou de refus d'accès à des ressources en fonction des permissions ou des rôles de l'utilisateur. L'autorisation se produit après l'authentification et détermine quelles actions l'utilisateur authentifié peut effectuer. Par exemple, après s'être connecté, un utilisateur admin peut avoir accès à la modification des paramètres, tandis qu'un utilisateur régulier peut seulement les visualiser.
En résumé, AuthN (authentification) confirme l'identité, tandis qu'AuthZ (autorisation) définit l'accès. L'authentification se produit en premier, suivie de l'autorisation pour assurer une utilisation sécurisée et appropriée des ressources.
Construire AuthZ (Autorisation) avec Logto
Logto Cloud offre des services clés d'autorisation basés sur des protocoles de normes ouvertes comme OIDC, OAuth 2.0 et SAML. Les fonctionnalités incluent le contrôle d'accès basé sur les rôles, organisations (multi-location) et réclamations de jetons personnalisés pour répondre à vos besoins d'autorisation sous différents angles.