Estudio de caso: Construir multi-tenencia con Logto Organizations
Aprende cómo configurar una base de identidad sólida y escalable para la multi-tenencia con Logto Organizations.
Aprende cómo configurar una base de identidad sólida y escalable para la multi-tenencia con Logto Organizations.
Hoy en día, la multi-tenencia se ha convertido en una parte esencial de una aplicación o SaaS. A menudo, implica la compleja relación entre usuarios, organizaciones, roles y permisos. Por ejemplo, un usuario puede ser miembro de múltiples organizaciones y viceversa; un usuario también puede tener diferentes roles en diferentes organizaciones.
Esto puede llevar a dolores de cabeza no solo al principio, sino también en el mantenimiento a largo plazo de una aplicación. El modelo tradicional de control de acceso basado en roles (RBAC) puede resolver parcialmente este problema, pero rápidamente se convierte en una pesadilla cuando el número de usuarios y organizaciones crece.

Por ejemplo, al principio, podrías tener solo dos roles en cada organización: admin y member. Cuando tienes 10 organizaciones, gestionarás 20 roles; cuando tienes 1,000 organizaciones, gestionarás 2,000 roles.
A medida que el negocio crece, puedes necesitar añadir más roles, como guest, developer, etc. La complejidad del modelo RBAC crecerá exponencialmente.
Tuvimos el mismo problema cuando construimos Logto Cloud. Pronto nos dimos cuenta de que es un problema común en la industria, y necesitamos solucionarlo. Y Logto Organizations está aquí para rescatarte.
Una pregunta rápida: ¿por qué las aplicaciones SaaS son SaaS? Creemos que la escalabilidad es una de las razones más importantes. En otras palabras, lo que funciona para un cliente debería funcionar para todos los clientes.
Esto lleva al concepto de "plantilla de organización". Una plantilla de organización es un modelo del control de acceso para cada organización: define los roles y permisos que aplican a todas las organizaciones.
Digamos que tenemos dos roles para cada organización:
admin: puede gestionar la organización, incluyendo añadir / eliminar miembros, cambiar roles, etc.member: puede acceder a los recursos de la organización e invitar a nuevos miembros.Podemos crear una plantilla de organización con la siguiente configuración:

Dado que configuramos la plantilla de organización, gestionar usuarios se vuelve fácil y natural. Puedes añadir un usuario a una organización mediante Logto Console (la interfaz web) o a través de Logto Management API
Consulta Configurar organizaciones para aprender más.
Añadimos dos organizaciones con la siguiente configuración:
admin, y Bob tiene el rol member.member.

En tu aplicación para clientes, ahora puedes solicitar un token de acceso a la organización (token de organización) desde Logto. El token de organización es un token JWT que contiene la información necesaria para que tu servicio verifique si el usuario tiene el permiso en la organización.
Los pasos detallados para solicitar un token de organización se describen en Integrar Organizaciones con tu aplicación.
Supongamos que Alice ha iniciado sesión en tu aplicación y quiere eliminar un usuario en la Organización A. Tu aplicación puede solicitar un token de organización para "Organización A" con el permiso remove:member (alcance). Logto verificará si Alice tiene el permiso en la organización y devolverá un token de organización ya que ella tiene el rol admin:
Aquí hay algunos ejemplos de casos de error:
admin en la Organización A.admin en la Organización B.Después de que tu aplicación reciba el token de organización, puede llamar a tu servicio con el token de organización agregándolo en el encabezado Authorization.
En tu servicio, puedes verificar el token de organización mediante el proceso estándar de verificación JWT. Consulta Verificar tokens de organización para más detalles.
Cuando necesites actualizar la plantilla de organización, por ejemplo, añadir un nuevo rol llamado developer, puedes hacerlo en Logto Console o a través de Logto Management API. El cambio se aplicará automáticamente a todas las organizaciones sin tiempo de inactividad.

Con Logto Organizations, gestionar y escalar la multi-tenencia se vuelve estándar y cómodo. Puedes centrarte en la lógica de tu negocio y dejar la identidad y control de acceso a Logto.