Explicación del modelo de multi-tenancy de Logto
Echa un vistazo a cómo diseñamos el modelo de multi-tenancy de Logto y los beneficios que aporta a las aplicaciones SaaS.
Echa un vistazo a cómo diseñamos el modelo de multi-tenancy de Logto y los beneficios que aporta a las aplicaciones SaaS.
Es posible que hayas oído hablar de algunos productos que utilizan el término "multi-tenancy" para representar el aislamiento de identidad: cada inquilino tiene su propio conjunto de usuarios, roles, permisos y datos.
Puede ser contraintuitivo, pero de hecho, "multi-tenancy" indica lo contrario: múltiples inquilinos comparten recursos en una sola instancia. Para los usuarios, una identidad en una aplicación es como una licencia de conducir. Por ejemplo, con una licencia de conducir, puedes conducir en diferentes estados (una identidad para múltiples organizaciones), en lugar de solicitar una nueva licencia de conducir para cada estado.
En Logto, nos dimos cuenta de esta confusión al principio de nuestro diseño, y nos esforzamos en hacerlo bien para tus aplicaciones y tus usuarios. Aquí está nuestro diseño:
Este modelo proporciona la flexibilidad y reutilización para gestionar identidades, especialmente para aplicaciones SaaS. Si observamos algunas aplicaciones SaaS populares, podemos ver que todas pueden encajar en este modelo. El término "organización" puede ser diferente en cada aplicación, como "espacio de trabajo", "equipo", etc. Pero el concepto es el mismo.
Por ejemplo, en Notion (una herramienta de colaboración popular):
Por lo tanto, los usuarios pueden cambiar entre espacios de trabajo fácilmente sin cambiar de cuenta ni volver a iniciar sesión, y esto mantiene el aislamiento entre los espacios de trabajo. Traduciendo esto al modelo de Logto, significa:
De acuerdo con los diferentes roles, un usuario puede tener diferentes permisos en diferentes espacios de trabajo (organizaciones).
Para los usuarios, pueden disfrutar de una verdadera experiencia de inicio de sesión único. Cambiar entre organizaciones es tan fácil como cambiar entre pestañas.
Una ventaja de las aplicaciones SaaS es que son estandarizadas y escalables. Por ejemplo, puedes crear un nuevo espacio de trabajo en Notion con unos pocos clics, y está listo para usar.
Cuando tu aplicación crece, puedes querer añadir más roles y permisos a cada organización. Por ejemplo, un nuevo rol "invitado" y un nuevo permiso "invitar:invitado". Puede ser una pesadilla si necesitas actualizar todas las organizaciones existentes una por una.
Con Logto, puedes actualizar la plantilla de organización, y todas las organizaciones existentes se actualizarán automáticamente.
En Logto, utilizamos el mismo modelo de control de acceso (RBAC) tanto para las organizaciones como para los recursos de la API. Esto significa que no necesitas aprender un nuevo modelo de control de acceso si estás familiarizado con RBAC. Mientras tanto, están aislados entre sí, por lo que puedes utilizarlos para diferentes casos de uso.
La parte más emocionante es que puedes utilizarlos al mismo tiempo. Extendamos el ejemplo de Notion:
La mayoría de los SDKs de Logto soportan ambos tipos de RBAC.
Las diferencias
El RBAC de organización y el RBAC de recurso de la API son diferentes en los siguientes aspectos:
Construir una aplicación SaaS es difícil, y esperamos que Logto pueda ayudarte a centrarte en tu negocio principal. No dudes en darnos tu opinión si tienes alguna pregunta o sugerencia.