Auth0 offre deux façons de mettre en œuvre le contrôle d’accès basé sur les rôles (RBAC), que vous pouvez utiliser à la place du système de contrôle d’accès interne de votre API ou en combinaison avec celui-ci :
L’ensemble des fonctionnalités d’Authorization Core correspond à celui de l’Authorization Extension, améliore les performances et l’évolutivité, et offre un système RBAC plus souple que l’Authorization Extension.À l’heure actuelle, les deux implémentent les fonctionnalités clés du RBAC et vous permettent de restreindre les scopes personnalisés définis pour une API à ceux qui ont été attribués à l’utilisateur comme permissions.
Avant que l’extension puisse appliquer votre logique d’autorisation, vous devez configurer son comportement pendant la transaction de connexion. Vos paramètres de configuration seront consignés dans une règle qui s’exécute à l’exécution.
Cliquez sur Configuration en haut à droite du Authorization Dashboard.
Vous arriverez à la section Rule Configuration de la page Configuration. Toutes les modifications apportées dans les sections sous Token Contents, notamment celles liées aux groupes, aux rôles et aux autorisations, seront répercutées dans la règle que vous exporterez à la fin de cette étape.
La règle utilise l’ApiKey pour communiquer avec l’API Authorization Extension et obtenir la stratégie. L’ApiKey est enregistrée dans la configuration de la règle et sera créée automatiquement lorsque la règle sera publiée. Pour effectuer la rotation de l’ApiKey, cliquez sur le bouton Rotate; lorsque l’ApiKey est renouvelée, la configuration de la règle est mise à jour automatiquement.
Ajouter des informations d’autorisation au jeton émis
Vous pouvez stocker des données d’autorisation, comme les groupes, les rôles ou les autorisations, dans le jeton émis par Auth0. Votre application peut ensuite utiliser ces informations en inspectant le jeton et en prenant les mesures appropriées selon le contexte d’autorisation actuel de l’utilisateur.Pour ajouter au jeton des informations sur les groupes, les rôles et/ou les autorisations, activez le bouton bascule à côté de l’option que vous voulez inclure.
Le fait de stocker trop de données dans le jeton peut entraîner des problèmes de performance, voire empêcher son émission. Assurez-vous de n’y stocker que ce dont vous avez besoin. Si vous devez disposer rapidement d’une grande quantité de données utilisateur, envisagez d’utiliser un stockage persistant au lieu de les ajouter au jeton.
Il se peut que certains utilisateurs reçoivent des groupes, des rôles ou des autorisations du (IdP) que vous utilisez, comme Active Directory. Si vous souhaitez fusionner ces éléments (pour les conserver) avec ceux définis dans l’extension Authorization, assurez-vous d’activer les options Passthrough appropriées. Activez le curseur à côté des options de fusion que vous voulez activer.
Stocker les informations d’autorisation dans les profils d’utilisateur
Si votre contexte d’autorisation est volumineux (par exemple, si l’utilisateur appartient à de nombreux groupes ou s’est vu accorder de nombreuses autorisations), il peut être utile d’enregistrer une partie du contenu d’autorisation dans les profils des utilisateurs. Vous stockez ainsi moins d’information dans le jeton, ce qui réduit le risque de problèmes de performance, voire de problèmes lors de l’émission du jeton. La persistance désigne le processus consistant à enregistrer les informations sur les groupes, les rôles et les autorisations dans les profils des utilisateurs.Les données seront stockées dans le champ app_metadata de l’utilisateur, et vous pourrez ensuite utiliser la ou le Dashboard pour récupérer ces informations une fois l’utilisateur connecté.
Une fois votre règle configurée, cliquez sur Publish Rule. Cela crée une règle pour votre locataire qui s’exécute après chaque connexion d’un utilisateur.
Si vous souhaitez voir la règle que vous avez créée, vous pouvez le faire dans Auth0 Dashboard > Auth Pipeline > Rules.Vous pouvez ouvrir la règle pour consulter sa configuration exacte.