Plantilla de organización
Una plantilla de organización es un diseño de control de acceso para aplicaciones multi-tenant. Se basa en los fundamentos de RBAC (Control de Acceso Basado en Roles) pero está adaptada para entornos multi-tenant, donde las organizaciones representan negocios, grupos o usuarios.
A nivel de organización, se necesita control de acceso para gestionar permisos para recursos.
Aquí tienes un ejemplo usando Notion, una herramienta de colaboración popular, y una típica aplicación multi-tenant. Admite varias características para autenticación y autorización:
- Puedes crear y unirte a múltiples espacios de trabajo con una sola cuenta, en lugar de necesitar cuentas separadas para cada espacio de trabajo.
- Notion utiliza el mismo conjunto de niveles de acceso, como "Propietario del espacio de trabajo" y "Miembro", en todos los espacios de trabajo, aunque podrías esperar diferentes niveles de acceso para cada uno.
En este capítulo, nos centraremos en la plantilla de organización, que se refiere al diseño de autorización a nivel de organización.
Para configurarlo correctamente, necesitas entender cómo funcionan las organizaciones y las diferentes entidades involucradas. Si aún no lo has revisado, asegúrate de leer esos capítulos.
Entender la plantilla de organización
Permiso de organización
El permiso de organización se refiere a la autorización para realizar una acción en el contexto de la organización. Un permiso de organización debe representarse como una cadena significativa, que también sirva como nombre e identificador único.
Por ejemplo, edit:resource
.
Los permisos de organización no son significativos sin el contexto de una organización. Por ejemplo, edit:resource
en el contexto de la organización org1
es diferente de edit:resource
en el contexto de la organización org2
porque apuntan a diferentes recursos (org 1
vs org 2
).
Rol de organización
Un rol de organización es una colección de permisos de organización o permisos de API (permisos de API definidos directamente en recursos de API en Logto Console) que pueden asignarse a los usuarios.
Los roles de organización no son significativos sin el contexto de una organización. Por ejemplo, admin
en el contexto de la organización org1
es diferente de admin
en el contexto de la organización org2
.
¿Puedo asignar permisos definidos a nivel de recurso de API a roles de organización?
Sí, puedes asignar permisos de API a roles de organización, no solo permisos a nivel de organización.
Los recursos de API en Logto Cloud protegen principalmente recursos a nivel de usuario/sistema, pero cuando los sistemas y las organizaciones comparten endpoints, Logto te permite asignar permisos de API a roles de organización para mayor flexibilidad.
Plantilla de organización
La plantilla de organización se refiere a una colección de permisos y roles de organización que se aplican a cada organización. Se considera como control de acceso basado en roles a nivel de organización.
Piensa en una típica aplicación de colaboración, y naturalmente comparten la misma "plantilla" de control de acceso que define los niveles de acceso y lo que los usuarios pueden hacer en la organización. Lo llamamos "plantilla de organización" en Logto.
Tomemos un ejemplo para entender cómo se conecta todo:
John, Sarah están en diferentes organizaciones con diferentes roles en el contexto de diferentes organizaciones.
De este diagrama, aquí hay alguna información que necesitas saber:
- John está afiliado a dos organizaciones, usando el correo electrónico
[email protected]
como su identificador único. Ocupa el puesto deadmin
enOrganización A
y es uninvitado
enOrganización B
. - Sarah está asociada con una sola organización y usa el correo electrónico
[email protected]
como su identificador único. Ella es laadmin
deOrganización B
. - Los roles de
Admin
,Miembro
yInvitado
están designados dentro de las organizaciones y estos roles son consistentes en varias organizaciones. - Se pueden crear roles adicionales dentro de la configuración de la plantilla de organización. Estos roles recién creados se aplicarán y compartirán en todas las organizaciones.
En Logto, la plantilla de organización es un modelo de control de acceso diseñado específicamente para organizaciones. Aunque se basa en el Control de Acceso Basado en Roles (RBAC), está destinado a diferentes escenarios.
Usa la plantilla de organización cuando necesites configurar roles y permisos para una organización.
Para una aplicación B2C simple sin un nivel de organización, utiliza RBAC a nivel de usuario/sistema en su lugar.
Puedes usar tanto la plantilla de organización como el RBAC a nivel de usuario/sistema en Logto, permitiendo un enfoque más robusto para satisfacer tus requisitos específicos de negocio y producto.