Control de acceso basado en organización y roles: Cómo diseñar tu modelo de autorización para tu producto
Este artículo proporciona una guía detallada sobre cómo diseñar un modelo de autorización para el control de acceso basado en organización y roles, y ofrece mejores prácticas para diferentes modelos de autorización en la plataforma Logto.
¿Qué es una organización?
Definición de organización
La organización es un grupo de usuarios (identidades) y puede representar a los equipos, clientes empresariales y empresas asociadas que pueden acceder a tu aplicación.
La organización es particularmente efectiva en entornos de empresa a empresa (B2B). En contraste con los consumidores individuales, los clientes empresariales a menudo consisten en equipos, organizaciones o empresas enteras, y no solo en una persona. La introducción de una organización como entidad es importante, ya que no solo agrupa usuarios, sino que también proporciona un contexto para el aislamiento de inquilinos en aplicaciones multi-inquilino.
Casos de uso de la organización
Con este elemento fundamental, ahora puedes construir las características imprescindibles para tus productos B2B:
- Construir una arquitectura multi-inquilino para aislar los datos y recursos de los clientes.
- Los niveles de acceso a la aplicación están definidos por roles asignados a los miembros de la organización.
- Aprovisionamiento de miembros por invitación y en el momento justo.
- Las organizaciones pueden tener cada una una experiencia de autenticación de inicio de sesión único (SSO).
¿Qué es el control de acceso basado en roles?
Definición de control de acceso basado en roles
El Control de Acceso Basado en Roles (RBAC) es un método para asignar permisos a los usuarios basado en sus roles. El control de acceso basado en roles es un mecanismo de control de acceso flexible definido alrededor de roles y privilegios. Los componentes de RBAC, como los permisos de roles, las relaciones usuario-rol y rol-rol, hacen que sea sencillo realizar asignaciones de usuarios. Un estudio del NIST ha demostrado que RBAC aborda muchas necesidades de las organizaciones comerciales y gubernamentales.
Casos de uso del control de acceso basado en roles
Anteriormente, hemos desarrollado varias guías para ayudarte a usar RBAC para cumplir con los requisitos de tu negocio. Echa un vistazo a estos tutoriales fáciles de seguir para comenzar rápidamente.
🔐 Control de Acceso Basado en Roles (RBAC) | Logto Docs
Usar diferentes modelos de autorización en Logto para mejores prácticas
El control de acceso basado en roles y la organización son componentes clave de las características de autorización de Logto. Como plataforma integral de gestión de identidad, Logto ofrece soluciones personalizadas para varios escenarios y capas, atendiendo tanto a desarrolladores como a empresas para arquitecturas de productos diversas.
Control de acceso basado en roles para API
Para proteger recursos API generales que no son específicos de ninguna organización y no necesitan restricciones de contexto, la característica de API RBAC es ideal.
Solo registra la API y asigna permisos a cada recurso. Luego, controla el acceso a través de la relación entre roles y usuarios.
Aquí, los recursos de API, roles y permisos son “democratizados” bajo un sistema de identidad unificado. Esto es bastante común en productos B2C con menos jerarquía y no necesita un nivel muy profundo de aislamiento de datos.
Control de acceso basado en roles para la organización
En el entorno B2B y multi-inquilino, el aislamiento de inquilinos es necesario. Para lograr esto, las organizaciones se utilizan como un contexto para aislamiento, lo que significa que el RBAC es efectivo solo cuando un usuario pertenece a una organización específica.
El RBAC de organización se centra en controlar el acceso a nivel de organización en lugar de a nivel de API. Esto proporciona una flexibilidad significativa para la autogestión a nivel de organización a largo plazo, pero aún dentro de un sistema de identidad unificado.
Una característica clave del RBAC de organización es que los roles y permisos son generalmente los mismos en todas las organizaciones por defecto, lo que hace que la “plantilla de organización” de Logto sea extremadamente significativa para mejorar la eficiencia del desarrollo.
Esto se alinea con la filosofía compartida de las aplicaciones multi-inquilino, donde las políticas de control de acceso y las identidades son componentes de infraestructura comunes a todos los inquilinos (inquilinos de aplicaciones), una práctica común en los productos SaaS.
Elegir y diseñar el modelo de autorización apropiado
Al seleccionar el modelo de autorización adecuado, considera estas preguntas:
- ¿Estás desarrollando un producto B2C, B2B, o una combinación de ambos tipos? ¿Las identidades se consideran como identidades empresariales?
- ¿Tu aplicación necesita una arquitectura multi-inquilino?
- ¿Hay necesidad de un cierto nivel de aislamiento en tu aplicación, según lo determinado por la unidad de negocio?
- ¿Qué permisos y roles necesitan definirse dentro del contexto de la organización, y cuáles no?
Una aplicación B2C
Usemos un ejemplo de aplicación web: BookHarber, una librería en línea. BookHarber ofrece una amplia gama de características para clientes y personal, asegurando una experiencia de compra perfecta y segura.
Las características clave de BookHarber incluyen:
- Navegación y compra de libros: Los usuarios pueden buscar y comprar fácilmente libros de una colección diversa, que abarca varios géneros y autores.
- Gestión de pedidos y seguimiento logístico: Los clientes registrados pueden gestionar sus pedidos, rastrear el envío y recibir actualizaciones sobre sus compras.
- Ofertas especiales y actividades festivas: BookHarber proporciona descuentos exclusivos y promociones durante eventos especiales y festivos para involucrar y recompensar a su base de clientes.
- Soporte al cliente: Los clientes pueden abrir tickets de soporte para abordar cualquier inquietud o problema que puedan encontrar, recibiendo una asistencia rápida del personal de BookHarber.
- Gestión de clientes: Los miembros del personal con diferentes roles tienen la habilidad de gestionar varios aspectos de la plataforma, como cuentas de clientes, procesamiento de pedidos y resolución de problemas.
Roles
En el ecosistema de BookHarber, podemos identificar varios roles clave de usuario, como:
- Invitado: Usuarios no registrados que pueden navegar por el sitio web, buscar libros y ver ofertas especiales.
- Cliente: Usuarios registrados que pueden comprar libros, gestionar pedidos, rastrear la logística y abrir tickets de soporte.
- Administrador de la tienda: Miembros del personal responsables de supervisar la gestión y operaciones generales de la plataforma. Con acceso completo.
- Gerente de libros: Miembros del personal encargados de la gestión de libros y categorías.
- Agente de servicio al cliente: Miembros del personal encargados de responder a los tickets de soporte.
- Proveedor de logística de terceros: Socios externos responsables de gestionar y rastrear el envío y la entrega de pedidos.
- Personal de marketing: Miembros del personal responsables de la promoción de BookHarber, responsables de gestionar ofertas especiales y eventos.
Anteriormente, hemos desarrollado varias guías para ayudarte a usar RBAC para cumplir con los requisitos de tu negocio. Echa un vistazo a estos tutoriales fáciles de seguir para comenzar rápidamente.
Dominando RBAC en Logto: Un Ejemplo Real Integral
Aplicación B2B
Las aplicaciones multi-inquilino a menudo encuentran su lugar en soluciones de empresa a empresa (B2B) como herramientas de productividad, sistemas de planificación de recursos empresariales (ERP) y otros productos de software como servicio (SaaS). En este contexto, cada "inquilino" típicamente representa a un cliente empresarial, el cual podría tener múltiples usuarios (sus empleados). Además, un cliente empresarial podría tener múltiples inquilinos para representar distintas organizaciones o divisiones empresariales.
Crear algunas organizaciones
Definir plantilla de organización para control de acceso a nivel de organización
Aplicación híbrida B2B y B2C
Las aplicaciones B2B van más allá de los productos SaaS y a menudo involucran el uso de aplicaciones multi-inquilino. En contextos B2B, estas aplicaciones sirven como una plataforma común para varios equipos, clientes empresariales y empresas asociadas para acceder a tus aplicaciones.
Por ejemplo, considera una empresa de transporte que proporciona tanto aplicaciones B2C como B2B. Las aplicaciones B2B sirven a múltiples clientes empresariales, y emplear una arquitectura multi-inquilino puede ayudar en la gestión de sus empleados y recursos. Para ilustrar, si la empresa desea mantener un sistema de identidad de usuario unificado, puede diseñar una arquitectura como el siguiente ejemplo:
Usemos a Sarah como ejemplo. Sarah tiene tanto una identidad personal como una empresarial. Ella utiliza el servicio de transporte como pasajera y también trabaja como conductora en su tiempo libre. En su rol profesional, también gestiona su propio negocio personal y usa esta identidad empresarial para ser socia con la Empresa 1.
Configuraciones de entidades en Logto
Mapa de identidad y roles de un usuario
Definir recursos de API, roles de usuario
Configurar organizaciones
Perfil de Sarah
Construye tu autorización hoy.
Logto ofrece tanto control de acceso basado en roles (RBAC) como características de organización para cumplir con tus requisitos de autorización. Estas características están diseñadas para integrarse fácilmente en varias partes de tu producto. Para más información, echa un vistazo a nuestras secciones sobre organizaciones y RBAC, o puedes probar Logto ahora mismo.