Hola,
estamos actualizando en mi trabajo el sistema de permisos que utilizamos en nuestras aplicaciones puesto que hoy en día los clientes demandan cada vez combinaciones de permisos más locas, el caso es que estamos interesados en aplicar el esquema RBAC o lo que viene siendo lo mismo el sistema de permisos por roles (Pagína no disponible criptored.
He estado leyendo documentación y demás, mas o menos tengo ya generado el esquema para almacenar los permisos pero tengo una duda, en cualquier documentación de RBAC se refiere a aquello que quieres proteger como los "objetos", pero en nuestro caso, vamos a proteger los registros de una tabla de digamos, clientes, dicha tabla tiene algunos campos donde aplicaremos los permisos, por ejemplo, en el caso de los clientes, existirá un campo con el ref_grupo del grupo de usuarios que puede ver ese registro, o ref_empresa de la empresa con la que está asociada el cliente.
Mi solución ha sido algo así como cuando un rol se ha relacionado con permisos relacionarlo con una serie de valores que deben tener sus atributos (los cuales ya se especifican sus nombres en la tabla de objetos a proteger), por ejemplo, el objeto cliente tiene los atributos [ref_emp][ref_grupo], cuando se relaciona el usuario, el rol y el permiso se asocia con una tabla donde se especifica que se debe filtrar por ref_emp in (1) and ref_grupo in (1, 2) y con ref_emp in (2) and ref_grupo in (2, 3) por ejemplo.quedando la SQL de esta manera: SELECT * FROM clientes WHERE (ref_emp in (1) and ref_grupo in (1, 2)) OR (ref_emp in (2) and ref_grupo in (2, 3)).
¿Como lo veis?
Un saludo.
estamos actualizando en mi trabajo el sistema de permisos que utilizamos en nuestras aplicaciones puesto que hoy en día los clientes demandan cada vez combinaciones de permisos más locas, el caso es que estamos interesados en aplicar el esquema RBAC o lo que viene siendo lo mismo el sistema de permisos por roles (Pagína no disponible criptored.
He estado leyendo documentación y demás, mas o menos tengo ya generado el esquema para almacenar los permisos pero tengo una duda, en cualquier documentación de RBAC se refiere a aquello que quieres proteger como los "objetos", pero en nuestro caso, vamos a proteger los registros de una tabla de digamos, clientes, dicha tabla tiene algunos campos donde aplicaremos los permisos, por ejemplo, en el caso de los clientes, existirá un campo con el ref_grupo del grupo de usuarios que puede ver ese registro, o ref_empresa de la empresa con la que está asociada el cliente.
Mi solución ha sido algo así como cuando un rol se ha relacionado con permisos relacionarlo con una serie de valores que deben tener sus atributos (los cuales ya se especifican sus nombres en la tabla de objetos a proteger), por ejemplo, el objeto cliente tiene los atributos [ref_emp][ref_grupo], cuando se relaciona el usuario, el rol y el permiso se asocia con una tabla donde se especifica que se debe filtrar por ref_emp in (1) and ref_grupo in (1, 2) y con ref_emp in (2) and ref_grupo in (2, 3) por ejemplo.quedando la SQL de esta manera: SELECT * FROM clientes WHERE (ref_emp in (1) and ref_grupo in (1, 2)) OR (ref_emp in (2) and ref_grupo in (2, 3)).
¿Como lo veis?
Un saludo.