Configurar plantilla de organización
Vamos a recorrer el proceso de configuración de la función de plantilla de organización a través de Logto Console.
Primero, navega a Console > Organization template. Verás que la plantilla de organización incluye dos partes: Roles de organización y Permisos de organización. Una plantilla de organización define políticas de control de acceso compartidas (permisos y roles) para múltiples organizaciones.
Configurar a través de Logto Console
Crear permiso de organización
Los permisos de organización son una parte clave de la plantilla de organización. Estos permisos están diseñados específicamente para organizaciones dentro de tu producto. Aquí te mostramos cómo gestionarlos:
- Encuentra la pestaña de permisos de organización: Ve a la pestaña "Permisos de organización" para ver tus permisos existentes.
- Agregar, eliminar y editar: Puedes agregar fácilmente nuevos permisos de organización, eliminar los que no necesitas y editar los permisos existentes según sea necesario.
Crear rol de organización
Logto admite dos tipos de roles de organización, esto es lo mismo que el RBAC a nivel de usuario / sistema:
- Usuario: Roles que se asignan a los usuarios.
- Máquina a máquina: Roles que se asignan a aplicaciones máquina a máquina.
Logto te permite definir roles de organización de varias maneras para adaptarse a la estructura de tu sistema:
Opción 1: Permisos de organización solo roles de organización
- Cuándo usar: Tienes puntos finales separados para usuario / sistema y organización.
- Explicación: Este es el enfoque más simple si la arquitectura técnica de tu producto y el diseño de la API separan claramente los recursos a nivel de usuario / sistema de los recursos de organización. Tus roles de organización solo incluirán los permisos que defines para la organización.
Opción 2: Permisos de API solo roles de organización
- Cuándo usar: El control de acceso a nivel de usuario / sistema y a nivel de organización se maneja por los mismos puntos finales.
- Explicación: Elige esto si deseas gestionar todos los permisos a través de recursos de API unificados.
Opción 3: Permisos mixtos de API y organización en roles de organización
- Cuándo usar: Tienes puntos finales separados definidos para tu producto para nivel de usuario / sistema y nivel de organización, pero algunos roles de usuario requieren una mezcla de ambos permisos a nivel de usuario y permisos a nivel de organización.
- Explicación: Esto ofrece la mayor flexibilidad, pero también puede ser lo más complejo de gestionar.
Configurar a través de Logto Management API
Todo lo que puedes hacer en Console también se puede hacer a través de Management API, incluyendo: Gestionar la plantilla de organización para crear, eliminar o editar permisos y roles de organización.
Para una lista completa de capacidades, consulta nuestra referencia de API:
Logto Management API - rol de organización
Logto Management API - permiso de organización
Con Logto Management API, puedes crear experiencias de organización personalizadas, como permitir que los administradores de la organización se sirvan a sí mismos y creen organizaciones. Consulta esta sección para habilitar más características y gestión a nivel de organización.
Manejar cambio de permisos de miembro
Similar al RBAC de API, los permisos de los miembros pueden ser alterados durante una sesión; por ejemplo, se les pueden asignar nuevos roles o modificar los permisos de roles existentes.
¿Qué sucede cuando cambian los permisos de un miembro? Hay dos casos.
No se introducen nuevos permisos en el sistema
Los tokens de acceso de organización actuales (también conocidos como token de organización) seguirán siendo válidos hasta que expiren, incluso después de que se cambien los permisos de organización de un usuario. Sin embargo, los nuevos permisos se reflejarán en los tokens de organización subsiguientes, y cualquier permiso revocado será omitido.
Los tokens de organización tienen un tiempo de expiración fijo que no se puede cambiar, a diferencia de los tokens de acceso genéricos.
Llama a los puntos finales de Logto Management API periódicamente o establece una conexión de larga duración (por ejemplo, usando WebSocket) para obtener dinámicamente los permisos de organización del usuario. Al detectar cambios, borra el token de organización existente y los tokens recién emitidos reflejarán automáticamente los cambios en el alcance de los permisos de organización.
curl \
-X GET https://[tenant_id].logto.app/api/organizations/{id}/users/{userId}/scopes \
-H "Authorization: Bearer $ORGANIZATION_TOKEN"
Cuando se detecten cambios de permisos, primero borra el token de organización del almacenamiento y luego llama al método del SDK getOrganizationToken(organizationId)
para adquirir uno nuevo. El token de organización recién emitido debería reflejar los cambios de permisos.
Se introduce un nuevo permiso en el sistema y se asigna a un miembro
Esto sucede cuando se introducen nuevos permisos en tu plantilla de organización. En este caso, primero tendrás que incluir los nuevos alcances de permisos introducidos al inicializar el cliente de Logto. Por ejemplo:
new LogtoClient({
appId: 'your-app-id',
redirectUrl: 'your-redirect-url',
scopes: [
'urn:logto:scope:organizations',
// ... tus otros alcances de permisos de organización existentes,
'new-organization-permission-scope',
],
});
En segundo lugar, cada una de tus aplicaciones cliente necesita volver a consentir o volver a iniciar sesión para recibir el cambio de permiso nuevo. Entonces, el nuevo alcance de permiso se reflejará en los nuevos tokens de organización.
Ejemplo de código para volver a consentir:
signIn({ redirectUrl: 'your-redirect-url', prompt: 'consent' });