Gestionar la seguridad con sección de acceso

Puede utilizar la sección de acceso en el script de carga de datos para controlar la seguridad. De esta forma, puede incluir los datos de diferentes usuarios o grupos de usuarios en un solo archivo. Qlik Sense utiliza la información de la sección de acceso para los procesos de autenticación y autorización, y reduce dinámicamente los datos para que los usuarios sólo puedan ver sus propios datos.

Nota: Kubernetes no admite grupos de usuarios.

La seguridad se incorpora en el propio archivo, lo que significa que los archivos descargados siempre estarán protegidos, hasta cierto punto. No obstante, si se requiere una seguridad elevada, se debe evitar la descarga de archivos y su uso sin conexión; asimismo, los archivos solamente los debe publicar el servidor Qlik Sense. Como todos los datos se almacenan en un solo archivo, el tamaño de dicho archivo puede llegar a ser considerable.

Advertencia:

Para evitar exponer datos restringidos, elimine todos los archivos adjuntos con la configuración de sección de acceso antes de publicar la app.

Los archivos adjuntos se incluyen cuando la app se publica. Si la app publicada se copia, los archivos adjuntos se incluyen en la copia. Sin embargo, si se han aplicado restricciones de sección de acceso a los archivos de datos adjuntos, la configuración de la sección de acceso no se conserva al copiarse los archivos, por lo que los usuarios de la app copiada podrán ver todos los datos en los archivos adjuntos.

Advertencia: Una captura de imagen muestra los datos conforme a los derechos de acceso que posea el usuario que toma la captura y esta captura puede después compartirse en una historia. No obstante, cuando los usuarios retornan a una visualización desde una historia para ver los datos en vivo en la app, se ven restringidos por sus propios derechos de acceso.
Advertencia:

No debe asignar colores a valores de dimensión maestra si utiliza sección de acceso o trabaja con datos confidenciales, porque los valores pueden quedar expuestos.

Secciones en el script

El control de acceso se gestiona mediante una o varias tablas de seguridad cargadas de la misma manera que los datos se cargan normalmente en Qlik Sense. Esto permite almacenar las tablas en una base de datos normal. Las sentencias de script que gestionan las tablas de seguridad se proporcionan en la sección de acceso, lo que en el script se inicia mediante la sentencia Section Access.

Si se define una sección de acceso en el script, la parte del script que carga los datos de la app deberá colocarse en una sección distinta, iniciada por la sentencia Section Application.

Example:  

Section Access;
LOAD * inline
[ACCESS,USERID
USER,U ];
Section Application;
LOAD... ... from... ...

Campos de sistema en la sección de acceso

Los niveles de acceso se asignan a los usuarios en una o varias tablas cargadas dentro de la sección de acceso. Estas tablas pueden contener diferentes campos de sistema específicos de usuario, generalmente USERID, y el campo que define el nivel de acceso, ACCESS. Todos los campos de sistema de la sección de acceso se emplearán para autenticación y autorización. A continuación se describen todos los campos de sistema de la sección de acceso.

ACCESS

Define el tipo de acceso que debe tener un usuario específico.

El acceso a las apps de Qlik Sense puede autorizarse a determinados usuarios o grupos de usuarios específicos. En la tabla de seguridad, se puede asignar a los usuarios a los niveles de acceso ADMIN o USER. Si no se asigna un nivel de acceso válido, el usuario no podrá abrir la app.

Una persona con privilegios de ADMIN tiene acceso a todos los datos de la app. Una persona con privilegios de USER solo puede acceder a los datos tal como se define en la tabla de seguridad.

USERID

Contiene una cadena que corresponde a un nombre de usuario de Qlik Sense. Qlik Sense recibirá la información de inicio de sesión del proxy y la comparará con el valor introducido en este campo.

GROUP

Contiene una cadena que corresponde a un grupo de Qlik Sense. Qlik Sense resolverá el usuario proporcionado por el proxy con este grupo.

Nota: Cuando utilice grupos para reducir datos y desee Qlik Management Console, todavía se requiere el usuario de la cuenta INTERNAL\SA_SCHEDULER.

OMIT

Contiene el nombre del campo que se debe omitir para este usuario específico. Se puede hacer uso de comodines y el campo puede dejarse vacío. Una forma sencilla de realizar esto consiste en utilizar un subcampo.

Nota: Le recomendamos que no aplique OMIT en campos clave. Los campos clave que se omiten están visibles en el visor del modelo de datos, pero el contenido no está disponible, lo que podría ser confuso para el usuario. Además, aplicar OMIT en campos que se utilizan en una visualización puede dar como resultado una visualización incompleta para usuarios que no tengan acceso a los campos omitidos.

Qlik Sense comparará el usuario proporcionado por el proxy con UserID y resolverá el usuario con los grupos de la tabla. Si el usuario pertenece a un grupo con permiso de acceso, o si el usuario coincide, podrá acceder a la app.

Nota:

Si ha quedado bloqueado y no logra acceder a una app mediante la sección de acceso, puede abrir la app sin sus datos y editar la sección de acceso en el script de carga de datos. Esto requiere acceso a edición y carga del script de carga de datos.

Para más información, vea Abrir una app sin datos.

Como en la sección de acceso también se utiliza la misma lógica interna característica de Qlik Sense, los campos de seguridad se pueden colocar en diferentes tablas. Todos los campos enumerados en sentencias LOAD o SELECT en la sección de accesso deben escribirse en MAYÚSCULAS. Convierta cualquier nombre de campo de la base de datos que contenga letras minúsculas a mayúsculas utilizando la función Upper antes de que la sentencia LOAD o SELECT lea el campo.

Para más información, vea Upper - función de script y de gráfico.

Un carácter comodín, por ejemplo el asterisco (*), se interpreta como todos los valores (incluidos en la lista) de este campo, es decir, un valor que aparece en otros lugares de la tabla. Si se usa en uno de los campos de sistema (USERID, GROUP) de una tabla cargada en la sección de acceso del script, se interpretará como todos los valores posibles (también los no enumerados) de este campo.

Nota: Cuando se cargan datos desde un archivo QVD, el uso de la función superior ralentizará la velocidad de carga.
Nota: Si ha habilitado la sección de acceso, no podrá utilizar los nombres de campos de sistema de la sección de acceso indicados aquí como nombres de campos en el modelo de datos.

Example:

En este ejemplo, solo los usuarios del grupo financiero pueden abrir el documento.

Acceso al documento
Acceso Grupo
USUARIO Finanzas

Reducción dinámica de datos

Qlik Sense admite la funcionalidad de reducción dinámica de datos, mediante la cual algunos de los datos de una app pueden ocultarse a la vista de un usuario conforme al inicio de sesión efectuado en la sección de acceso:

  • Los campos (columnas) se pueden ocultar utilizando el campo de sistema OMIT.
  • Los registros (filas) pueden ocultarse enlazando los datos de la sección de acceso con los datos reales: La selección de valores que se habrán de mostrar o excluir se controla teniendo uno o más campos con nombres comunes en la sección de acceso y en la sección de la aplicación. Una vez que el usuario ha iniciado sesión, Qlik Sense tratará de contrastar las selecciones de campos de la sección de acceso con los campos de la sección de aplicación que tengan exactamente los mismos nombres de campo (los nombres de los campos deben estar en MAYÚSCULAS). Una vez que el usuario ha iniciado la sesión, Qlik Sense ocultará de forma permanente todos los datos excluidos por estas selecciones de la vista del usuario.
Nota: Todos los nombres de campo empleados en la transferencia descrita anteriormente y todos los valores de campo de estos campos deberán ir en mayúsculas, ya que todos los nombres de campo y los valores de campo se convierten por defecto en mayúsculas en la sección de acceso.
Nota: Si desea habilitar la carga de script en una tarea Qlik Management Console, se requiere el usuario de la cuenta INTERNAL\SA_SCHEDULER con acceso a ADMIN.

Example: Reducción de datos basada en ID de usuario

section access;
LOAD * inline [
ACCESS, USERID,REDUCTION, OMIT
USER, AD_DOMAIN\ADMIN,*,
USER, AD_DOMAIN\A,1,
USER, AD_DOMAIN\B, 2,NUM
USER, AD_DOMAIN\C, 3, ALPHA
ADMIN, INTERNAL\SA_SCHEDULER,*,
];
section application;
T1:
LOAD *,
NUM AS REDUCTION;
LOAD
Chr( RecNo()+ord('A')-1) AS ALPHA,
RecNo() AS NUM
AUTOGENERATE 3;

El campo REDUCTION (mayúsculas) existe ahora tanto en la sección de acceso como en la sección de aplicación (todos los valores de campos van también en mayúsculas). Por lo general, serían dos campos totalmente diferentes y separados; pero al utilizar la sección de acceso, estos campos se vinculan y se reduce el número de registros que se muestran al usuario.

El campo OMIT, en la sección de acceso, define los campos que deberían ocultarse del usuario.

El resultado será:

  • El usuario ADMIN puede ver todos los campos y solo aquellos registros que otros usuarios pueden ver en este ejemplo cuando REDUCTION sea 1, 2 o 3.
  • El usuario A puede ver todos los campos, pero solo aquellos registros que estén asociados a REDUCTION=1.
  • El usuario B puede ver todos los campos excepto NUM, y solo aquellos registros asociados a REDUCTION=2.
  • El usuario C puede ver todos los campos excepto ALPHA, y solo aquellos registros asociados a REDUCTION=3.

Example: Reducción de datos basada en grupos de usuarios

section access;

LOAD * inline [

ACCESS, USERID, GROUP, REDUCTION, OMIT

USER, *, ADMIN, *,

USER, *, A, 1,

USER, *, B, 2, NUM

USER, *, C, 3, ALPHA

USER, *, GROUP1, 3,

ADMIN, INTERNAL\SA_SCHEDULER, *, *,

];

section application;

T1:

LOAD *,

NUM AS REDUCTION;

LOAD

Chr( RecNo()+ord('A')-1) AS ALPHA,

RecNo() AS NUM

AUTOGENERATE 3;

El resultado será:

  • Los usuarios que pertenecen al grupo ADMIN pueden ver todos los datos y todos los campos.
  • Los usuarios que pertenecen al grupo A pueden ver los datos asociados a REDUCTION=1 en todos los campos.
  • Los usuarios que pertenecen al grupo B pueden ver los datos asociados a REDUCTION=2, pero no en el campo NUM
  • Los usuarios que pertenecen al grupo C pueden ver los datos asociados a REDUCTION=3, pero no en el campo ALPHA
  • Los usuarios que pertenecen al grupo GROUP1 pueden ver los datos asociados a REDUCTION=3 en todos los campos
  • El usuario INTERNAL\SA_SCHEDULER no pertenece a ningún grupo, pero se le permite ver todos los datos de todos los campos.

    Nota:

    El carácter comodín *, en esta fila se refiere solo a todos los valores dentro de la tabla de la sección de acceso. Si hay valores en la aplicación de sección que no están disponibles en el campo REDUCTION en la sección de acceso, se reducirán.

Restricciones de acceso heredadas

Nota: Esta funcionalidad no está disponible en Kubernetes.

Una carga binaria hará que la nueva app de Qlik Sense herede las restricciones de acceso.