Te enseñaremos paso a paso cómo diseñar permisos del sistema, pero no digas simplemente que no lo sabes después de leerlo.
Hasta la fecha, el modelo de diseño de acceso más popular es el modelo RBAC, control de acceso basado en roles.
El modelo RBAC-0 es el modelo de permisos más básico y central. Incluye usuarios/roles/permisos. Los usuarios y los roles están en una relación de muchos a muchos, y los roles y permisos también están en. una relación de muchos a muchos.
Los usuarios son los sujetos que inician las operaciones y se pueden dividir en usuarios 2B y 2C por tipo. Pueden ser usuarios del sistema de gestión backend, empleados internos del sistema OA o usuarios orientados a C, como los usuarios de Alibaba Cloud.
El rol actúa como un puente para conectar la relación entre usuarios y permisos. Cada rol se puede asociar con múltiples permisos y un usuario está asociado con múltiples roles, por lo que el usuario tiene múltiples permisos para múltiples roles.
Algunas personas pueden preguntarse por qué los usuarios no están asociados directamente con los permisos. En un sistema con una base de usuarios pequeña, como un sistema pequeño con 20 personas, el administrador puede asociar usuarios directamente con permisos y la carga de trabajo no es grande. Simplemente seleccione un usuario y verifique los permisos requeridos.
Pero en los sistemas empresariales reales, la base de usuarios es relativamente grande y muchos tienen los mismos permisos. Este es un permiso de acceso común. Si el administrador autoriza a más de 100 personas, la carga de trabajo será enorme.
Esto introduce el concepto de "rol". Un rol puede asociarse con varios usuarios. El administrador solo necesita entregar el rol al usuario, y luego el usuario tendrá todos los permisos bajo el rol. , que no sólo mejora la eficiencia, sino que tiene una gran escalabilidad.
Los permisos son recursos a los que los usuarios pueden acceder, incluidos permisos de página, permisos de operación y permisos de datos:
Lo anterior es el diseño central y el análisis del modelo de RBAC, también conocido como RBAC-0. RBAC también proporciona modelos extendidos basados en los conceptos básicos. Incluye los modelos RBAC-1, RBAC-2 y RBAC-3. Estos tres tipos se presentan a continuación.
Este modelo introduce el concepto de roles jerárquicos, es decir, existe una relación superior-subordinada entre roles. La relación de herencia entre roles se puede dividir en relación de herencia general y relación de herencia restringida.
Las relaciones de herencia generales solo requieren que la relación de herencia de roles sea una relación de orden parcial absoluta, lo que permite la herencia múltiple entre roles.
La relación de herencia restringida requiere además que la relación de herencia de roles sea una estructura de árbol para lograr una herencia única entre roles. Este diseño puede agrupar y jerarquizar roles, simplificando hasta cierto punto la gestión de permisos.
Realice un control de restricciones de roles basado en el modelo central y agregue la relación de separación de funciones al modelo RBAC2.
Estipula las reglas obligatorias que se deben seguir al otorgar permisos a roles, o al asignar roles a usuarios, y cuando los usuarios activan roles en un momento determinado.
La separación de responsabilidades incluye la separación estática de responsabilidades y la separación dinámica de responsabilidades. Incluye principalmente las siguientes restricciones:
La gestión de autoridad más completa, basada en RBAC-0, integra RBAC-1 y RBAC-2.
Cuando aumenta la base de usuarios de la plataforma, aumentan los tipos de roles y algunas personas tienen los mismos atributos, como todos los empleados del departamento financiero. Si los roles se asignan directamente a los usuarios, la carga de trabajo de. el administrador será enorme.
Si los usuarios con los mismos atributos se dividen en un grupo de usuarios, el administrador asigna directamente una función al grupo de usuarios y cada usuario del grupo de usuarios puede tener la función. Después de que otros usuarios se unan al grupo de usuarios, pueden obtener automáticamente todas las funciones del grupo de usuarios, salir del grupo de usuarios o revocar las funciones del grupo de usuarios. Los administradores no necesitan administrar las funciones manualmente.
Según si el grupo de usuarios tiene una relación superior-subordinado, se puede dividir en grupos de usuarios superior-subordinado y grupos de usuarios ordinarios:
Cada empresa involucrará organizaciones y puestos. Lo siguiente se centrará en estos dos individuos.
Podemos asociar organizaciones con roles. Luego de que el usuario se una a la organización, obtendrá automáticamente todos los roles de la organización, sin necesidad de que los administradores se los otorguen manualmente, lo que reduce en gran medida la carga de trabajo. Al mismo tiempo, los usuarios pueden ajustar roles en lotes ajustando las organizaciones.
Otra función de la organización es controlar los permisos de datos y asociar roles con organizaciones, de modo que los roles solo puedan ver los permisos de datos de esa organización.
Cada departamento organizacional tendrá múltiples puestos, como director del departamento financiero, contador, cajero y otros puestos. Aunque todos están en el mismo departamento, cada puesto tiene una autoridad diferente. Cuanto más alto es el puesto, mayor es la autoridad.
El director tiene plena autoridad, y el contador y el cajero también tienen cierta autoridad. En circunstancias especiales, una persona puede desempeñar múltiples funciones.
Basado en el escenario anterior, se puede diseñar un nuevo modelo de permisos, como se muestra en la siguiente figura:
Dependiendo de la complejidad del sistema, la relación de muchos a muchos y la relación uno a uno puede cambiar.
La autorización consiste en otorgar un rol a un usuario. Según el proceso, se puede dividir en autorización manual y autorización de aprobación. El centro de autoridad puede configurar ambos al mismo tiempo, lo que puede mejorar la flexibilidad de la autorización.
Con el modelo de permisos anterior, no es difícil diseñar la estructura de la tabla. La siguiente es la estructura de la tabla en múltiples sistemas. Bajo el diseño simple, se proporcionan las ideas principales:
Uno de los marcos se puede usar en el proyecto. Sus ventajas, desventajas y cómo usarlos se presentarán en detalle en artículos posteriores.
Se puede decir que el sistema de permisos es el más básico de todo el sistema, pero también puede resultar muy complejo. En proyectos reales, habrá múltiples sistemas, múltiples tipos de usuarios y múltiples escenarios de uso, lo que requerirá un análisis detallado de problemas específicos, pero el modelo RBAC central permanece sin cambios y podemos expandirlo según sea necesario.