Control de acceso basado en roles en nosql
Uno de los métodos más comunes de la seguridad de los datos en NoSQL es asignar cada registro (o documento o gráfico, dependiendo del tipo de base de datos) con un conjunto de permisos vinculados a los papeles. Este es el control de acceso basado en roles, o RBAC para abreviar.
Considere la posibilidad de un comunicado de prensa para un sitio web que se almacena en un documento de base de datos (agregado) NoSQL. El papel editor puede tener permisos de actualización para el documento, mientras que un papel más público puede tener sólo permisos de lectura.
Este caso de uso requiere de la asignación papel permisos, no usuario permisos. Los usuarios se pueden asignar a uno o más roles. Por lo tanto, los usuarios heredan permisos basados en la suma de sus roles.
Tener que crear un papel con el fin de dar a un usuario permiso para realizar una función particular, puede parecer como un trabajo extra, pero este método es muy útil. Considere la posibilidad de un usuario que se muda a otro departamento o que abandona por completo.
No quiero tener que buscar manualmente para cada documento cuyos permisos mencionar este usuario y cambiar o eliminarlos. En lugar de ello basta con cambiar las asignaciones de funciones de dicho usuario en una sola operación. Usando el control de acceso basado en roles (RBAC) es mucho más fácil para el mantenimiento a largo # 8208 plazo de los permisos de seguridad.
Mira cómo manejan bases de datos de permisos y herencia papel. Considere la posibilidad de suscriptores en una compañía de seguros, donde puede haber alumno, menor, y los suscriptores de alto nivel, cada uno con el aumento del acceso a los diferentes tipos de información.
Usted puede asignar los suscriptores menores los permisos de los alumnos son asignados, además de unos cuantos más. A continuación, puede asignar permisos a todos los suscriptores Junior 'a los suscriptores de alto nivel, además de un poco más, de nuevo. Si desea agregar permisos adicionales para todas estas funciones, sin embargo, usted tiene que hacer tres cambios idénticos.
Si usted tiene cinco niveles de papeles, eso es cinco copias. Además, cada sistema tendrá una multitud de funciones como estos. Hay una manera mejor que realizar la misma tarea mundana una y otra vez: la herencia de funciones.
Algunos sistemas incluyen la herencia papel. En este caso, el papel JuniorUnderwriter hereda de la función TraineeUnderwriter, y el papel SeniorUnderwriter hereda de la función JuniorUnderwiter. Ahora todo lo que necesita hacer para añadir un permiso para todas las funciones es añadirlo a sólo el papel TraineeUnderwriter (el nivel más bajo de la herencia), y todos los roles heredarán el permiso. Herencia papel es mucho más fácil de entender y mantener.
Lógica permiso Papel se implementa generalmente con la lógica OR. Es decir, si asigna tres funciones - RoleA, RoleB y ROLEC - a un registro con un permiso de lectura, un usuario tiene este permiso si tiene RoleA O RoleB, O ROLEC. Si no asigna permisos de función de lectura de un registro, a continuación, ningún usuario tiene permisos de lectura en ese disco (herencia de lado, por supuesto).