Gestion des permissions et des ressources
Utilisez l'organisation comme ressource et appliquez un modèle d'organisation pour la protéger. Par exemple, chaque organisation possède ses propres documents au sein d'un tenant. Seuls les utilisateurs ayant les bons rôles peuvent modifier ou supprimer ces documents.
Voir Permissions d’organisation pour plus de détails.
Utiliser le contrôle d’accès basé sur les rôles (RBAC) d’organisation pour gérer les permissions des utilisateurs
Avec la configuration ci-dessus, vous pouvez envoyer des invitations par e-mail, et les invités peuvent rejoindre l'organisation avec le rôle attribué.
Les utilisateurs ayant des rôles différents dans l'organisation auront différentes portées (permissions) dans leurs jetons d’organisation. Votre application cliente et vos services backend doivent vérifier ces portées pour déterminer les fonctionnalités visibles et les actions autorisées.
Gérer les mises à jour de portée dans les jetons d’organisation
Cette section aborde des sujets avancés concernant la gestion du modèle d'organisation et les scénarios d'autorisation. Si vous n'êtes pas familier avec ces concepts, lisez d'abord Autorisation et Modèle d’organisation.
La gestion des mises à jour de portée dans les jetons d’organisation implique :
Révoquer des portées existantes
Par exemple, rétrograder un administrateur en membre non-administrateur doit supprimer des portées à l'utilisateur. Dans ce cas, effacez le jeton d’organisation mis en cache et récupérez-en un nouveau avec un jeton de rafraîchissement. Les portées réduites seront immédiatement reflétées dans le nouveau jeton d’organisation émis.
Accorder de nouvelles portées
Cela peut être divisé en deux scénarios :
Accorder de nouvelles portées déjà définies dans votre système d’authentification
De manière similaire à la révocation de portées, si la nouvelle portée accordée est déjà enregistrée auprès du serveur d’authentification, émettez un nouveau jeton d’organisation et les nouvelles portées seront immédiatement reflétées.
Accorder de nouvelles portées nouvellement introduites dans votre système d’authentification
Dans ce cas, déclenchez un processus de reconnexion ou de reconsentement pour mettre à jour le jeton d’organisation de l’utilisateur. Par exemple, appelez la méthode signIn dans le SDK Logto.
Vérifier les permissions en temps réel et mettre à jour le jeton d’organisation
Logto fournit une Management API pour récupérer en temps réel les permissions d’un utilisateur dans l’organisation.
GET /api/organizations/{id}/users/{userId}/scopes(Références API)
Comparez les portées dans le jeton d’organisation de l’utilisateur avec les permissions en temps réel pour déterminer si l’utilisateur a été promu ou rétrogradé.
-
Si rétrogradé, effacez le jeton d’organisation mis en cache et le SDK émettra automatiquement un nouveau jeton avec les portées mises à jour.
const { clearAccessToken } = useLogto();
...
// Si les portées récupérées en temps réel sont inférieures à celles du jeton d’organisation
await clearAccessToken();Cela ne nécessite pas de processus de reconnexion ou de reconsentement. De nouveaux jetons d’organisation seront émis automatiquement par le SDK Logto.
-
Si une nouvelle portée est introduite dans votre système d’authentification, déclenchez un processus de reconnexion ou de reconsentement pour mettre à jour le jeton d’organisation de l’utilisateur. Par exemple, avec le SDK React :
const { clearAllTokens, signIn } = useLogto();
...
// Si les portées récupérées en temps réel comportent de nouvelles portées attribuées par rapport à celles du jeton d’organisation
await clearAllTokens();
signIn({
redirectUri: '<your-sign-in-redirect-uri>',
prompt: 'consent',
});Le code ci-dessus déclenche une navigation vers l’écran de consentement et redirige automatiquement vers votre application avec les portées mises à jour dans le jeton d’organisation de l’utilisateur.