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.
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:
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.
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.
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.
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.
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.
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).
Example:
In questo esempio solo gli utenti del gruppo Finance possono aprire il 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.
Example: Riduzione dei dati basata su ID utente
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
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 informaticaIl 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.