Vai al contenuto principale
Gestione della sicurezza con la section access

IN QUESTA PAGINA

Gestione della sicurezza con la section access

È possibile utilizzare l'accesso alla sezione nello script di caricamento dei dati per gestire l'accesso ai dati a livello di riga. In questo modo, è possibile utilizzare un singolo file per conservare i dati per utenti o gruppi di utenti. Qlik Sense utilizza le informazioni in Section Access per l'autorizzazione a livello di riga; in questo modo, i dati vengono ridotti in modo dinamico, in modo che gli utenti vedano solo i dati a cui sono autorizzati ad accedere.

Le opzioni di sicurezza sono incorporate nel file stesso, pertanto anche un file scaricato può ritenersi in qualche modo protetto. Tuttavia, se i requisiti di sicurezza sono elevati, sarebbe necessario prevenire il download dei file e l'utilizzo offline. I file devono essere pubblicati solo dal server Qlik Sense. Poiché tutti i dati sono memorizzati in un file, è possibile che tale file sia di dimensioni molto grandi.

L'app deve essere pubblicata prima dell'applicazione dei controlli di accesso alle sezioni. Se l'app verrà ricaricata non verrà applicato alcun script di accesso alle sezioni nuovo o modificato.

Nota di 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.
Nota di avvisoUno 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.
Nota di 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 dalla configurazione colore.

Sezioni nello script

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

Se nello script è definita una sezione di autorizzazione, 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;

AuthorizationTable:

Load ACCESS, USERID, REGION From ... ;

 

Section Application;

Load ... From ... ;

Campi di sistema della sezione relativa al controllo degli accessi

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 è 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.

Se Section Access viene utilizzato in uno scenario di generazione di app On-demand (ODAG) nell'app modello, deve essere incluso l'utente INTERNAL\SA_API come ADMIN nella tabella Section Access. Ad esempio:

Section Access; LOAD * inline [ ACCESS, USERID ADMIN, INTERNAL\SA_API ];

NTNAME

Un campo che dovrebbe contenere una stringa corrispondente a un nome utente o nome di gruppo del Dominio Windows. Se viene utilizzato un metodo di autenticazione diverso, esso dovrebbe contenere il nome di un utente autenticato.

Qlik Sense recupererà le informazioni di accesso dal sistema operativo e le confronterà con il valore in questo campo.

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.

Nota informatica USERID e NTNAME utilizzano entrambi le stesse informazioni di autenticazione, pertanto non è necessario spuntarli entrambi sulla stessa riga nella tabella di autorizzazione. La differenza tra i due campi è che NTNAME controlla anche i gruppi.

USER.EMAIL

Attualmente non supportato, lo sarà in Qlik Sense ma con una corrispondenza limitata ai caratteri speciali.

GROUP

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

Nota informaticaQuando si utilizzano i gruppi per ridurre i dati e si desidera accedere a Qlik Management Console, l'utente account INTERNAL\SA_SCHEDULER è ancora richiesto.

SERIAL

Contiene una stringa corrispondente alla piattaforma. Nel campo contenente la stringa ‘QLIKSENSE’ o un carattere jolly ‘*’, l'accesso può essere consentito, in base agli altri campi nella tabella di autorizzazione.

Nota informaticaSe il campo SERIAL contiene un numero di licenza, la riga Section Access negherà l'accesso al documento. Questa impostazione è valida solo in QlikView.

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 informaticaSi raccomanda di non applicare OMIT sui campi chiave. I campi chiave omessi sono visibili nel sistema di visualizzazione modello dati, ma il loro contenuto non è disponibile e questo può confondere gli utenti. 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 confronta l'utente con l'ID utente e risolve l'utente rispetto ai gruppi nella tabella. Se l'utente appartiene a un gruppo a cui è consentito l'accesso, o in caso di corrispondenza utente, sarà possibile accedere all'app.

Nota informatica

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 in 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 jolly (*) 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 informaticaAl momento di caricare i dati da un file QVD, la funzione Upper rallenta la velocità di caricamento.
Nota informaticaSe 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 Finance

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 fa corrispondere le selezioni effettuate nei campi in Section Access a tutti i campi dell'applicazione della sezione, rispettando esattamente gli stessi nomi di campo (i nomi di campo devono essere scritti in maiuscolo). Dopo avere effettuato le selezioni, Qlik Sense nasconde definitivamente all'utente tutti i dati esclusi da queste selezioni.
Nota informaticaTutti 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 informaticaSe 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) è incluso sia nella sezione relativa al controllo degli accessi che nell'applicazione della sezione (tutti i valori di campo sono in maiuscolo). In genere i due campi sono diversi e separati; tuttavia, utilizzando la sezione relativa al controllo degli accessi, 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 può 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 informatica

    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

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