Aller au contenu principal

Gestion des organisations

Lors du développement d'une application multi-locataire, un scénario courant est de disposer d'une plateforme permettant aux membres de votre organisation de gérer eux-mêmes les ressources de leur organisation.

Prenons toujours l'exemple de la configuration de base de l'organisation qui contient à la fois un rôle d'administrateur et un rôle de membre normal.

RôlePermissions
AdminGérer les membres de l'organisation dans l'organisation, par exemple inviter, mettre à jour le rôle des membres, supprimer des membres, etc.
Gérer les informations de l'organisation, par exemple, mettre à jour le nom de l'organisation et les données personnalisées, supprimer l'organisation, etc.
MembrePeut uniquement inviter des utilisateurs dans l'organisation.

Nous pouvons donc définir le modèle d'organisation suivant :

Modèle d'organisation

Une fois le modèle d'organisation défini, vous pouvez également créer un ensemble d'API dans votre service qui appellent Management API en arrière-plan pour effectuer des actions de gestion dans une organisation spécifique. Les API de votre service doivent valider le jeton d’organisation pour s'assurer que l'utilisateur dispose des permissions requises.

Exemples d'auto-gestion des utilisateurs dans leurs propres organisations

Voici une liste de choses que vous pouvez laisser vos utilisateurs faire dans votre application multi-organisation :

Laisser tout le monde inviter des membres :

Vous pouvez permettre à la fois aux utilisateurs administrateurs et membres d'inviter d'autres personnes dans l'organisation. Consultez cette documentation pour plus de détails sur l'invitation de membres.

L'administrateur peut modifier les rôles des membres :

L'administrateur peut avoir le privilège de modifier les rôles des autres membres. Et l'administrateur peut créer des rôles plus spécifiques pour l'organisation, tels que chef de département, chef de projet, coordinateur, etc. Cela peut être mis en œuvre avec ces Management API :

curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/users/{userId}/roles \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"organizationRoleIds":["admin"]}'

Ou de manière groupée :

curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/users/roles \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"userIds":["userId1", "userId2"],"organizationRoleIds":["admin"]}'

Ajouter des bots à l'organisation

Vous pouvez également implémenter la fonctionnalité permettant aux utilisateurs administrateurs d'ajouter des bots à une organisation spécifique. Cela peut être fait en créant d'abord des applications Machine-to-Machine (M2M), puis en ajoutant ces applications M2M aux organisations en tant que bots.

curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/applications \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"applicationIds":["botAppId"]}'

Ensuite, vous pouvez également attribuer des rôles d'organisation à ces bots.

curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/applications/roles \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"applicationIds":["botApp1"],"organizationRoleIds":["botRoleId"]}'

Déverrouillez plus de possibilités avec Management API

Les exemples ci-dessus ne sont que quelques-unes des nombreuses possibilités que vous pouvez réaliser avec Management API. Consultez la liste complète des points de terminaison de Logto Management API et voyez ce que vous pouvez faire d'autre avec eux :

Récupérer les organisations

Récupérer les portées d'organisation

Récupérer le rôle d'organisation

Récupérer les invitations d'organisation