Aller au contenu principal

Gestion des organisations

Lors du développement d'une application multi-locataires, 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 par les utilisateurs de 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 aux utilisateurs admin et membre d'inviter d'autres personnes dans l'organisation. Consultez cette documentation pour plus de détails sur l'invitation de membres.

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

L'admin peut avoir le privilège de modifier les rôles des autres membres. Et l'admin 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 admin 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 de l'organisation

Récupérer le rôle de l'organisation

Récupérer les invitations de l'organisation