Configuración
Breadcrumbs

Autorización

En Anjana Data, la autorización de los usuarios se basa en la asignación de roles a las personas dentro de unidades organizativas (OUs). Esta combinación determina qué acciones puede realizar cada usuario y en qué ámbitos dentro de la plataforma.

Tabla User-Ou-Roles del Panel de Configuración (Visión administrador)

La gestión de estas asignaciones se realiza a través de la tabla Users-OU-Roles, que actúa como el mecanismo central de control de permisos.

image-20251117-180424.png
Captura de la tabla Users-OU-Roles para asignación de roles a usuarios en OUs

Estructura de la tabla Roles

Cada registro en la tabla users_ou_role define una asignación única entre un usuario, una unidad organizativa y un rol.
Los elementos que caracterizan dicha asignación son:

  • user: identificador único del usuario.

    • Corresponde al campo id de la tabla Users.

  • ou: identificador único de la Unidad Organizativa.

    • Corresponde al campo id de la tabla Organizational Unit.

La asignación debe realizarse en una unidad organizativa hoja, nunca en un nivel intermedio o nivel raíz. Por ejemplo, si se ha configurado la unidad “Espacio de datos/Turismo”, nunca se deben asignar roles a nivel de “·Espacio de datos”

  • role: identificador único del rol.

    • Corresponde al campo id de la tabla Roles.

Asignación de roles a usuarios

Asignación de roles cross

Para asignar a un usuario un rol que ha sido configurado como Cross (ver configuración de la tabla Roles) se deben seguir los siguientes pasos:

  1. Pulsar el botón New en la esquina superior derecha. Esto abrirá un asistente (wizard) con los campos definidos en el apartado Estructura.

  2. Completar los campos conforme a lo siguiente:

    1. user: Seleccionar el identificador del usuario. Si el usuario no existe, se debe crear previamente.

    2. ou: Seleccionar la unidad por defecto Cross. Esta OU la crea internamente la plataforma, sin embargo, si se hubiera borrado a mano, se debe crear para autorizar a los roles cross.

    3. role: Seleccionar el rol de entre los roles configurados previamente. Si el rol no existe, se debe crear previamente.

  3. Pulsar en Save para guardar el rol o en Cancel para descartar.

image-20251117-181827.png
Captura de ejemplo de la asignación de un rol cross

Asignación de roles verticales

Para asignar a un usuario un rol vertical, que no ha sido configurado como cross, (ver configuración de la tabla Roles) se deben seguir los siguientes pasos:

  1. Pulsar el botón New en la esquina superior derecha. Esto abrirá un asistente (wizard) con los campos definidos en el apartado Estructura.

  2. Completar los campos conforme a lo siguiente:

    1. user: Seleccionar el identificador del usuario. Si el usuario no existe, se debe crear previamente.

    2. ou: Seleccionar la unidad organizativa hoja correspondiente. Si no existe, se debe crear previamente.

    3. role: Seleccionar el rol de entre los roles configurados previamente. Si el rol no existe, se debe crear previamente.

  3. Pulsar en Save para guardar el rol o en Cancel para descartar.

image-20251117-182107.png
Captura de ejemplo de la asignación de un rol vertical

Modificación de las autorizaciones

Para modificar la asignación de roles a usuarios en unidades organizativas se puede realizar eliminando un registro y creando uno nuevo.

Configuración de la autorización mediante acceso directo a la base de datos (Visión desarrollador)

La tabla de base de datos (BD) que contiene la parametría de la asignación de roles a usuarios tiene esta estructura:

Columna

Tipo de dato

Restricciones / Notas

user_id

int4 (INTEGER)

No nulo. Clave foránea a users.id_user. Identificador del usuario.

ou_id

int4 (INTEGER)

No nulo. Clave foránea a organizational_unit.id_organizational_unit. Identificador de la unidad organizativa.

rol_id

int4 (INTEGER)

No nulo. Clave foránea a role.id_role. Identificador del rol.

unique_idx

Restricción UNIQUE (user_id, ou_id, rol_id). Garantiza que no existan duplicados en la combinación user–OU–rol.

Claves foráneas

Columna

Tabla referenciada

Campo referenciado

Descripción

user_id

zeus.users

id_user

Valida que el usuario exista.

ou_id

zeus.organizational_unit

id_organizational_unit

Valida que la unidad organizativa exista.

rol_id

zeus.role

id_role

Valida que el rol exista.

Ejemplo de configuración mediante SQL

Para definir las asignaciones de usuario a roles:

SQL
INSERT INTO zeus.user_ou_role (user_id, ou_id, rol_id) VALUES
(1,1,1),
(1,39,4),
(2,1,15),
(2,1,16),
(2,3,2);