Gestione della sicurezza mediante la sezione relativa al controllo degli accessi

È possibile utilizzare la sezione relativa al controllo degli accessi nello script di caricamento dei dati per gestire la sicurezza. In questo modo, è possibile utilizzare un singolo file per conservare i dati di un certo numero di utenti singoli o di gruppi di utenti. Qlik Sense utilizza le informazioni della sezione relativa al controllo degli accessi per le operazioni di autenticazione e autorizzazione; in questo modo, i dati vengono ridotti in modo dinamico e vengono visualizzati solo i dati pertinenti agli utenti.

Nota: I gruppi di utenti non sono supportati in Kubernetes.

Le opzioni di sicurezza sono incorporate nel file stesso, pertanto anche un file scaricato può ritenersi in qualche modo protetto. Se, tuttavia, i requisiti di sicurezza sono elevati, è consigliabile impedire il download di file e il relativo utilizzo offline e i file dovrebbero essere pubblicati solo dal server di Qlik Sense. Poiché tutti i dati sono memorizzati in un file, le dimensioni di tale file possono essere molto grandi.

Avviso:

Per evitare di esporre dati con restrizioni, rimuovere tutti i file allegati con impostazioni Section Access prima di pubblicare l'app.

Quando l'app viene pubblicata, sono inclusi i file allegati. Se l'app pubblicata viene copiata, i file allegati sono inclusi nella copia. Tuttavia, se ai file di dati allegati sono state applicate limitazioni di Section Access, le impostazioni di Section Access non verranno mantenute nei file copiati e gli utenti dell'app copiata potranno vedere tutti i dati nei file allegati.

Avviso: Uno snapshot visualizza i dati in base ai diritti di accesso dell'utente che lo esegue e può essere quindi condiviso in un racconto. Tuttavia, quando gli utenti tornano a una visualizzazione da un racconto per vedere i dati attivi nell'app, la visualizzazione è limitata dai loro diritti di accesso.
Avviso:

Non assegnare colori ai valori della dimensione principale se si utilizza Section Access o si trattano dati sensibili, poiché i valori potrebbero essere esposti.

Sezioni nello script

Il controllo degli accessi viene gestito mediante una o più tabelle di sicurezza caricate secondo la normale procedura di caricamento dei dati utilizzata da Qlik Sense. Ciò consente di memorizzare queste tabelle in un database standard. Le istruzioni dello script che gestiscono le tabelle di sicurezza sono incluse nella sezione relativa al controllo degli accessi, riconoscibile nello script perché inizia con l'istruzione Section Access.

Se nello script è definita una sezione relativa al controllo degli accessi, la parte dello script relativa al caricamento dei dati dell'app deve essere inserita in una sezione diversa, che inizia con l'istruzione Section Application.

Example:  

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

Campi di sistema di Section Access

I livelli di accesso vengono assegnati agli utenti tramite una o più tabelle caricate in Section Access. Queste tabelle possono contenere diversi campi di sistema specifici dell'utente, in genere USERID e il campo che definisce il livello di accesso, ACCESS. Tutti i campi di sistema di Section Access vengono utilizzati nelle operazioni di autenticazione o autorizzazione. Di seguito è descritto il gruppo completo dei campi del sistema della sezione relativa al controllo degli accessi.

ACCESS

Definisce il tipo di accesso dell'utente corrispondente.

L'accesso alle app Qlik Sense può essere autorizzato per utenti o gruppi di utenti specifici. Nella tabella di sicurezza è possibile assegnare agli utenti i livelli di accesso ADMIN o USER. Se non viene assegnato alcun livello di accesso valido, all'utente non sarà consentito aprire l'app.

I privilegi ADMIN consentono di accedere a tutti i dati nell'app. I privilegi USER consentono di accedere solo ai dati definiti nella tabella di sicurezza.

USERID

Contiene una stringa corrispondente al nome utente di Qlik Sense. Qlik Sense recupera le informazioni di accesso dal proxy e le confronta con il valore incluso in questo campo.

GROUP

Contiene una stringa corrispondente a un gruppo in Qlik Sense. Qlik Sense risolverà l'utente specificato dal proxy confrontandolo con questo gruppo.

Nota: Quando si utilizzano i gruppi per ridurre i dati e si desidera utilizzare Qlik Management Console, sarà comunque necessario l'utente dell'account INTERNAL\SA_SCHEDULER.

OMIT

Contiene il nome del campo che deve essere omesso per questo utente specifico. È possibile utilizzare caratteri speciali e il campo può essere vuoto. Un modo semplice per agire in questo senso consiste nell'utilizzare un campo secondario.

Nota: Si sconsiglia di applicare OMIT a campi chiave. Se omessi, i campi chiave sono comunque visibili nel sistema di visualizzazione modello dati, ma il loro contenuto non è disponibile e questo può confondere l'utente. Inoltre l'applicazione di OMIT su campi utilizzati in una visualizzazione può rendere quest'ultima incompleta per gli utenti che non hanno accesso ai campi omessi.

Qlik Sense confronterà l'utente fornito dal proxy con UserID e lo risolverà relativamente ai gruppi nella tabella. Se l'utente appartiene a un gruppo a cui è consentito l'accesso oppure l'utente corrisponde, questi otterrà l'accesso all'app.

Nota:

Se non è possibile accedere a un'app dopo aver impostato la sezione relativa al controllo degli accessi, sarà comunque possibile aprirla senza dati e modificare la sezione relativa al controllo degli accessi nello script di caricamento dei dati. L'utente deve disporre dell'accesso per la modifica e il ricaricamento dello script di caricamento dei dati.

Per ulteriori informazioni, vedere Apertura di un'app senza dati.

Poiché nella sezione relativa al controllo degli accessi viene utilizzata la stessa logica interna distintiva di Qlik Sense, i campi di sicurezza potrebbero essere localizzati in tabelle differenti. Tutti i campi elencati nelle istruzioni LOAD o SELECT di Section Access devono essere scritti in MAIUSCOLO. Convertire qualsiasi nome di campo del database contenente caratteri minuscoli in caratteri maiuscoli tramite la funzione Upper prima che il campo venga letto dall'istruzione LOAD o SELECT.

Per ulteriori informazioni, vedere Upper - funzione dello script e del grafico.

Il carattere speciale * viene interpretato come tutti i valori (elencati) di questo campo, ossia un valore elencato in qualsiasi punto all'interno di questa tabella. Se viene utilizzato in un campo del sistema (USERID, GROUP) in una tabella caricata nella sezione dello script relativa al controllo degli accessi, viene interpretato come tutti i valori possibili di tale campo (inclusi quelli non compresi nell'elenco).

Nota: Quando si caricano dati da un file QVD, l'utilizzo della funzione upper rallenta la velocità di caricamento.
Nota: Se si è abilitata la sezione relativa al controllo degli accessi, non è possibile utilizzare i relativi nomi dei campi del sistema elencati qui come nomi dei campi del modello dati.

Example:

In questo esempio solo gli utenti del gruppo finance possono aprire il documento.

Accesso al documento
Access Proprietario
USER Finanza

Riduzione dinamica dei dati

Qlik Sense supporta la riduzione dinamica dei dati, che consente di nascondere alcuni dati in un'app a utenti specifici, in base alle impostazioni di Section Access:

  • I campi (colonne) possono essere nascosti utilizzando il campo di sistema OMIT.
  • I record (righe) possono essere nascosti collegando i dati di Section Access con i dati reali: la selezione dei valori da visualizzare/escludere viene controllata tramite uno o più campi aventi nomi comuni in Section Access e Section Application. Dopo l'autenticazione dell'utente, Qlik Sense esegue un tentativo di associare le selezioni effettuate nei campi nella sezione relativa al controllo degli accessi a tutti i campi nella sezione dell'applicazione, rispettando esattamente gli stessi nomi di campo (i nomi di campo devono essere scritti in MAIUSCOLO). Dopo l'applicazione delle selezioni, Qlik Sense nasconderà definitivamente all'utente tutti i dati esclusi da queste selezioni.
Nota: Tutti i nomi di campo utilizzati nel trasferimento descritto sopra e tutti i valori di campo in questi campi devono essere in caratteri maiuscoli in quanto, per impostazione predefinita, tutti i nomi di campo e i valori di campo vengono convertiti in caratteri maiuscoli nella sezione relativa al controllo degli accessi.
Nota: Se si desidera abilitare il ricaricamento dello script in un'attività di Qlik Management Console, è richiesto l'utente dell'account INTERNAL\SA_SCHEDULER con accesso ADMIN.

Example: Riduzione dei dati basata su ID utente

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;

Il campo REDUCTION (maiuscolo) esiste ora sia in Section Access che in Section Application (sono in maiuscolo anche tutti i valori di campo). In genere i due campi sono completamente diversi e separati; tuttavia, utilizzando Section Access, questi campi vengono collegati e il numero dei record visualizzati dall'utente viene ridotto.

Il campo OMIT in Section Access definisce i campi da nascondere all'utente.

Il risultato sarà:

  • L'utente ADMIN potrà visualizzare tutti i campi e solo i record che possono vedere gli altri utenti in questo esempio quando REDUCTION è 1, 2 o 3.
  • L'utente A può visualizzare tutti i campi, ma solo i record associati a REDUCTION=1.
  • L'utente B può visualizzare tutti i campi eccetto NUM e solo i record associati a REDUCTION=2.
  • L'utente C può visualizzare tutti i campi eccetto ALPHA e solo i record associati a REDUCTION=3.

Example: Riduzione dei dati basata su gruppi di utenti

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;

Il risultato sarà:

  • Gli utenti che appartengono al gruppo ADMIN possono visualizzare tutti i dati e tutti i campi.
  • Gli utenti che appartengono al gruppo A possono visualizzare i dati associati a REDUCTION=1 in tutti i campi.
  • Gli utenti che appartengono al gruppo B possono visualizzare i dati associati a REDUCTION=2 ma non nel campo NUM.
  • Gli utenti che appartengono al gruppo C possono visualizzare i dati associati a REDUCTION=3 ma non nel campo ALPHA.
  • Gli utenti che appartengono al gruppo GROUP1 possono visualizzare i dati associati a REDUCTION=3 in tutti i campi.
  • L'utente INTERNAL\SA_SCHEDULER non appartiene ad alcun gruppo ma può visualizzare tutti i dati in tutti i campi.

    Nota:

    Il carattere speciale * in questa riga si riferisce soltanto a tutti i valori nella tabella Section Access. Eventuali valori presenti in Section Application ma non disponibili nel campo REDUCTION in Section Access verranno ridotti.

Restrizioni di accesso ereditate

Nota: Questa funzionalità non è disponibile in Kubernetes.

Un caricamento binario fa sì che la nuova app Qlik Sense erediti le restrizioni di accesso.