Saltar al contenido principal

Gestión de organizaciones

Al desarrollar una aplicación multi-tenant, un escenario común es tener una plataforma para que los miembros de tu organización autogestionen sus recursos de organización.

Tomemos como ejemplo la configuración básica de una organización que contiene tanto un rol de administrador como un rol de miembro normal.

RolPermisos
AdminGestionar miembros de la organización en la organización, por ejemplo, invitar, actualizar el rol de miembro, eliminar miembro, etc.
Gestionar información de la organización, por ejemplo, actualizar el nombre de la organización y datos personalizados, eliminar organización, etc.
MiembroSolo puede invitar usuarios a la organización.

Así que podemos definir la siguiente plantilla de organización:

Plantilla de organización

Una vez establecida la plantilla de organización, también puedes crear un conjunto de APIs en tu servicio que llamen a la Management API para realizar acciones de gestión en una organización específica. Las APIs en tu servicio deben validar el token de organización para asegurar que el usuario tiene los permisos requeridos.

Ejemplos de autogestión de usuarios en sus propias organizaciones

Aquí tienes una lista de cosas que puedes permitir que tus usuarios hagan en tu aplicación multi-organización:

Permitir que todos inviten a miembros:

Puedes permitir que tanto los usuarios administradores como los miembros inviten a otros a la organización. Consulta esta documentación para obtener detalles sobre cómo invitar a miembros.

El administrador puede modificar roles de miembros:

El administrador puede tener el privilegio de modificar los roles de otros miembros. Y el administrador puede crear roles más específicos para la organización, como líder de departamento, gerente de proyecto, coordinador, etc. Esto se puede implementar con estas Management APIs:

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"]}'

O de manera masiva:

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"]}'

Añadir bots a la organización

También puedes implementar la función para permitir que los usuarios administradores añadan bots a una organización específica. Esto se puede hacer creando primero aplicaciones Máquina a Máquina (M2M), y luego añadiendo estas aplicaciones M2M a las organizaciones como 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"]}'

Luego también puedes asignar roles de organización a estos 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"]}'

Desbloquea más posibilidades con Management API

Los ejemplos anteriores son solo algunas de las muchas posibilidades que puedes lograr con Management API. Consulta la lista completa de endpoints de Logto Management API y descubre qué más puedes hacer con ellos:

Obtener organizaciones

Obtener alcances de la organización

Obtener rol de la organización

Obtener invitaciones de la organización