Beveiliging beheren met sectietoegang

U kunt sectietoegang gebruiken in het load-script voor gegevens om de beveiliging af te handelen. Op die manier kan een enkel bestand worden gebruikt om de gegevens in onder te brengen voor een aantal gebruikers of gebruikersgroepen. Qlik Sense gebruikt de informatie in de sectietoegang voor de verificatie en autorisatie en zorgt voor de dynamische reductie van de gegevens, zodat de gebruikers alleen hun eigen gegevens zien.

De beveiliging is in het bestand zelf ingebouwd, zodat ook een gedownload bestand in zekere mate is beveiligd. Als echter strenge eisen aan de beveiliging worden gesteld, dienen het downloaden van bestanden en offline gebruik te worden vermeden, en mogen bestanden uitsluitende worden gepubliceerd door de Qlik Sense-server. Aangezien alle gegevens in één bestand zijn ondergebracht, kan de bestandsgrootte fors oplopen.

Waarschuwing:

Verwijder voordat u de app publiceert alle bijgevoegde bestanden met sectietoegangsinstellingen als u blootstelling van vertrouwelijke gegevens wilt voorkomen.

Bijgevoegde bestanden worden meegeleverd wanneer de app wordt gepubliceerd. Als de gepubliceerde app wordt gekopieerd, worden de bijgevoegde bestanden meegeleverd met de kopie. Indien echter beperkingen voor sectietoegang zijn toegepast op de bijgevoegde gegevensbestanden, blijven de toegangsinstellingen niet behouden wanneer de bestanden worden gekopieerd. Gebruikers van de gekopieerde app kunnen daardoor alle gegevens in de bijgevoegde bestanden bekijken.

Waarschuwing: Een snapshot toont gegevens op basis van de toegangsrechten van de gebruiker die de snapshot maakt en de snapshot kan vervolgens worden gedeeld in een presentatie. Als gebruikers echter teruggaan naar een visualisatie vanuit een presentatie om de live gegevens in de app te bekijken, worden zij beperkt door hun eigen toegangsrechten.
Waarschuwing:

U mag geen kleuren toewijzen aan masterdimensiewaarden als u sectietoegang gebruikt of als u met gevoelige gegevens werkt, aangezien de waarden kunnen worden onthuld.

Secties in het script

Toegangsbeheer wordt geregeld via een of meer beveiligingstabellen die op dezelfde wijze in Qlik Sense worden geladen als reguliere gegevens. Deze tabellen kunnen daardoor worden opgeslagen in een normale database. De scriptinstructies voor de beveiligingstabellen worden opgegeven in de toegangssectie, die in het script wordt gestart met de instructie Section Access.

Als in het script een toegangssectie is gedefinieerd, moet het gedeelte van het script dat de appgegevens laadt, in een andere sectie worden geplaatst. Deze sectie wordt dan gestart met de instructie Section Application.

Example:  

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

Systeemvelden in sectietoegang

De toegangsniveaus worden toegewezen aan gebruikers in een of meer tabellen die worden geladen in de sectietoegang van het script. Deze tabellen kunnen verschillende gebruikersspecifieke systeemvelden bevatten, meestal USERID en het veld ACCESS waarin het toegangsniveau wordt vastgelegd. Alle systeemvelden voor sectietoegang zullen worden gebruikt voor verificatie of autorisatie. De volledige set systeemvelden voor sectietoegang wordt hieronder beschreven.

ACCESS

Definieert de bevoegdheden van de corresponderende gebruiker.

Toegang tot Qlik Sense-apps kan worden verleend aan bepaalde gebruikers of gebruikersgroepen. In de beveiligingstabel kunnen aan gebruikers de toegangsniveaus ADMIN of USER worden toegewezen. Als er geen geldig toegangsniveau is toegewezen, kan de gebruiker de app niet openen.

Een gebruiker met ADMIN-bevoegdheden heeft toegang tot alle gegevens in de app. Een gebruiker met USER-bevoegdheden heeft alleen toegang tot gegevens zoals gedefinieerd in de beveiligingstabel.

USERID

Bevat een tekenreeks die overeenkomt met een Qlik Sense-gebruikersnaam. In Qlik Sense worden de aanmeldgegevens opgehaald uit de proxy en vergeleken met de waarde in dit veld.

GROUP

Bevat een tekenreeks die overeenkomt met een groep in Qlik Sense. Qlik Sense herleidt de gebruiker die door de proxy wordt geleverd aan de hand van deze groep.

Opmerking: Wanneer u groepen gebruikt om gegevens te verminderen, moet de accountgebruiker INTERNAL\SA_SCHEDULER nog wel het opnieuw laden van het script inschakelen in een Qlik Management Console-taak.

OMIT

Bevat de naam van het veld dat moet worden weggelaten voor deze specifieke gebruiker. Er kunnen jokertekens worden gebruikt, maar het veld mag ook leeg zijn. Een eenvoudige manier om dit te doen is het gebruik van een subveld.

Opmerking: We raden u aan OMIT niet toe te passen op sleutelvelden. Sleutelvelden die zijn weggelaten, zijn zichtbaar in de gegevensmodelviewer, maar de inhoud is niet beschikbaar. Dat kan verwarrend zijn voor een gebruiker. Daarnaast kan toepassing van OMIT op velden die in een visualisatie worden gebruikt, leiden tot een onvolledige visualisatie voor gebruikers die geen toegang hebben tot de weggelaten velden.

Qlik Sense vergelijkt de gebruiker die door de proxy wordt verstrekt met UserID en herleidt de gebruiker aan de hand van groepen in de tabel. Als de gebruiker deel uitmaakt van een groep die toegang heeft, of als de gebruiker overeenkomt, krijgt deze gebruiker toegang tot de app.

Opmerking:

Als u zichzelf hebt buitengesloten van een app door sectietoegang in te stellen, kunt u de app openen zonder gegevens en de toegangssectie bewerken in het load-script voor gegevens. Dit vereist dat u toegang hebt voor het bewerken en opnieuw laden van het load-script voor gegevens.

Ga voor meer informatie naar Een app zonder gegevens openen.

Omdat de interne logica, het kenmerk van Qlik Sense, ook wordt gebruikt in de toegangssectie, kunnen de beveiligingsvelden in verschillende tabellen worden geplaatst. Alle velden in LOAD- of SELECT-instructies in de sectietoegang moeten in HOOFDLETTERS worden geschreven. Zet een veldnaam met kleine letters in de database om naar hoofdletters met de functie Upper voordat het veld wordt gelezen door de LOAD- of SELECT-instructie.

Ga voor meer informatie naar Upper - script- en diagramfunctie.

Een jokerteken (*) wordt geïnterpreteerd als alle waarden (in de lijst) voor dit veld, dat wil zeggen een waarde elders in deze tabel. Bij het gebruik in een van de systeemvelden (USERID, GROUP) in een tabel die in de toegangssectie van het script wordt geladen, is de interpretatie alle mogelijke waarden van dit veld (ook als ze niet in de lijst staan).

Opmerking: Gegevens worden minder snel geladen QVD-bestanden als de functie upper wordt gebruikt.
Opmerking: Als u sectietoegang hebt ingeschakeld, kunt u de systeemveldnamen voor sectietoegang die hier worden genoemd niet gebruiken als veldnamen in uw gegevensmodel.

Example:

In dit voorbeeld kunnen alleen gebruikers in de financiële groep het document openen.

Toegang tot document
openen. Groeps-
User Financiën

Dynamische gegevensreductie

Qlik Sense ondersteunt dynamische gegevensreductie, waarbij sommige gegevens in een app op basis van de aanmeldgegevens voor sectietoegang voor een gebruiker kunnen worden verborgen:

  • Velden (kolommen) kunnen worden verborgen via het systeemveld OMIT.
  • Records (rijen) kunnen worden verborgen door de gegevens in de sectietoegang te koppelen aan de werkelijke gegevens: Welke waarden moeten worden weergegeven of uitgesloten, wordt geregeld door een of meer velden met dezelfde naam in de sectietoegang en sectietoepassing. Nadat een gebruiker zich heeft aangemeld, probeert Qlik Sense de selecties in velden in de sectietoegang te kopiëren naar de velden in de sectietoegang met precies dezelfde veldnamen (de veldnamen moeten worden geschreven in HOOFDLETTERS). Nadat de selecties zijn gemaakt, worden alle gegevens die door deze selecties zijn uitgesloten, in Qlik Sense permanent voor de gebruiker verborgen.
Opmerking: Alle gebruikte veldnamen in de hierboven beschreven overdracht en alle veldwaarden in deze velden moeten in hoofdletters zijn. Alle veldnamen en veldwaarden worden immers standaard omgezet in hoofdletters in sectietoegang.
Opmerking: De accountgebruiker INTERNAL\SA_SCHEDULER met ADMIN-toegang moet het opnieuw laden van het script inschakelen in een Qlik Management Console-taak.

Example: Gegevensreductie op basis van gebruikers-id

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;

Het veld REDUCTION (hoofdletters) komt nu in zowel sectietoegang als sectietoepassing voor (alle veldwaarden zijn ook in hoofdletters). De twee velden zouden normaal gesproken geheel verschillend en gescheiden zijn, maar bij gebruik van sectietoegang worden deze velden gekoppeld en wordt het aantal records dat de gebruiker te zien krijgt beperkt.

Het veld OMIT in sectietoegang legt vast welke velden moeten worden verborgen voor de gebruiker.

Het resultaat is:

  • Gebruiker ADMIN ziet alle velden en alleen de records die andere gebruikers in dit voorbeeld kunnen zien als REDUCTION gelijk is aan 1, 2 of 3.
  • Gebruiker A ziet alle velden, maar alleen de records die zijn gekoppeld aan REDUCTION=1.
  • Gebruiker B ziet alle velden behalve NUM, en alleen de records die zijn gekoppeld aan REDUCTION=2.
  • Gebruiker C ziet alle velden behalve ALPHA, en alleen de records die zijn gekoppeld aan REDUCTION=3.

Example: Gegevensreductie op basis van gebruikersgroepen

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;

Het resultaat is:

  • Gebruikers die behoren tot de ADMIN-groep hebben toestemming om alle gegevens en alle velden te zien.
  • Gebruikers die behoren tot de A-groep hebben toestemming om gegevens te zien die zijn gekoppeld aan REDUCTION=1 in alle velden.
  • Gebruikers die behoren tot de B-groep hebben toestemming om gegevens te zien die zijn gekoppeld aan REDUCTION=2, maar niet in het NUM-veld.
  • Gebruikers die behoren tot de C-groep hebben toestemming om gegevens te zien die zijn gekoppeld aan REDUCTION=3, maar niet in het ALPHA-veld.
  • Gebruikers die behoren tot de GROUP1-groep hebben toestemming om gegevens te zien die zijn gekoppeld aan REDUCTION=3 in alle velden.
  • De gebruiker INTERNAL\SA_SCHEDULER behoort tot geen enkele groep, maar heeft toestemming om alle gegevens in alle velden te zien.

    Opmerking:

    Het jokerteken (*) in deze rij verwijst alleen naar alle waarden binnen de sectietoegangstabel. Als er waarden in de sectietoepassing zijn die niet beschikbaar zijn in het veld REDUCTION in de sectietoegang, worden ze beperkt.

Overgenomen toegangsbeperkingen

Door een laadinstructie met binary worden de toegangsbeperkingen overgenomen door de nieuwe Qlik Sense-app.