Gegevensbeveiliging beheren met Sectietoegang
Sectietoegang wordt gebruikt om de beveiliging van een applicatie te beheren. Het is eigenlijk een deel van het load-script voor gegevens waaraan u een beveiligingstabel toevoegt om te definiëren welke gebruiker wat te zien krijgt. Qlik Sense gebruikt deze informatie om gegevens te beperken tot de juiste reikwijdte wanneer de gebruiker de applicatie opent, dat wil zeggen, een deel van de gegevens in de applicatie wordt verborgen voor de gebruiker op basis van hun identiteit. Sectietoegang is nauw verbonden met de gegevens in de applicatie en vertrouwt hierop bij het beheer van de toegang. Deze vorm van dynamische gegevensreductie kan gericht zijn op rijen of kolommen van een tabel of een combinatie van beide. Ga voor meer informatie naar Betrouwbaarheid en beveiliging bij Qlik.
Secties in het load-script
De toegang tot gegevens wordt beheerd door middel van één of meer beveiligingstabellen, die op dezelfde wijze worden geladen als de gegevens normaal worden geladen. Deze tabellen kunnen daardoor worden opgeslagen in een standaarddatabase of in een spreadsheet. De scriptinstructies voor de beveiligingstabellen worden opgegeven in de autorisatiesectie, die in het script wordt gestart met de instructie Section Access.
Als in het script een autorisatiesectie is gedefinieerd, moet het gedeelte van het script dat de applicatiegegevens laadt in een andere sectie worden geplaatst. Deze sectie wordt dan gestart met de instructie Section Application.
Nadat u het load-script hebt gewijzigd, moet u de gegevens laden zodat de wijzigingen van kracht worden.
Systeemvelden in sectietoegang
De toegangsniveaus worden toegewezen aan gebruikers in één of meer beveiligingstabellen die worden geladen in het gedeelte Section Access van het script. Deze tabellen moeten minimaal twee systeemvelden bevatten: ACCESS, dat is het veld dat het toegangsniveau definieert, en USERID of USER.EMAIL . Optionele systeemvelden kunnen afhankelijk van de gebruikscase worden toegevoegd. De volledige set systeemvelden voor Section Access wordt hieronder beschreven.
ACCESS
Definieert de bevoegdheden van de corresponderende gebruiker.
Toegang tot Qlik Sense-applicaties kan worden verleend aan bepaalde gebruikers. In de beveiligingstabel kunnen aan gebruikers de toegangsniveaus ADMIN of USER worden toegewezen. Een gebruiker met ADMIN-bevoegdheden heeft toegang tot alle gegevens in de applicatie, met uitzondering van de beveiligingstabel. Een gebruiker met USER-bevoegdheden heeft alleen toegang tot gegevens zoals gedefinieerd in de beveiligingstabel. Als er geen toegangsniveau wordt toegewezen, kan de gebruiker de applicatie niet openen.
Als Section Access is gebruikt in een in laadscenario, INTERNAL\SA_SCHEDULER, dit is de Scheduler Service voor de gebruiker, zijn ADMIN-bevoegdheden vereist om de lading uit te voeren. Bijvoorbeeld:
Als u het account INTERNAL\SA_SCHEDULER niet wilt gebruiken, raadpleeg dan Imitatie gebruiken voor het laden van gegevens voor een alternatieve methode.
Als Sectietoegang wordt gebruikt bij het genereren van een on-demand-applicatie (ODAG) scenario in de sjabloon-applicatie, moet de INTERNAL\SA_API-gebruiker worden opgenomen als ADMIN in de Sectietoegang-tabel. Bijvoorbeeld:
USERID
Bevat een tekenreeks die overeenkomt met een Qlik Sense domeinnaam en gebruikersnaam. Qlik Sense haalt de aanmeldgegevens op uit de proxyservice en vergelijkt deze met de waarde in dit veld.
Een jokerteken (*) wordt geïnterpreteerd als alle gebruikers en is onderhevig aan aanvullende voorwaarden die in de beveiligingstabel zijn opgegeven. In de onderstaande beveiligingstabel kunnen de tenantbeheerders in Qlik Sense alle getoonde REDUCTION-waarden bekijken.
NTNAME
Een veld moet een tekenreeks bevatten die overeenkomt met een gebruikersnaam of groepsnaam van een Windows NT-domein. Als er een ander verificatiesysteem wordt gebruikt, moet de naam van een geverifieerde gebruiker zijn opgenomen. Qlik Sense haalt de aanmeldingsinformatie op van het besturingssysteem en vergelijkt deze 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 proxyservice wordt geleverd aan de hand van deze groep.
SERIAL
Bevat een tekenreeks die overeenkomt met het platform. Als het veld de tekenreeks ‘QLIKSENSE’ of een jokerteken ‘*’ bevat, kan er toegang worden verleend, afhankelijk van de andere velden in de beveiligingstabel.
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.
Gebruikerstoegang tot een applicatie beheren
Sectietoegang, in zijn eenvoudigste vorm, kan worden gebruikt om specifieke gebruikers toegang tot de applicatie te ontzeggen. Gebruikers worden toegang tot een applicatie ontzegd door middel van uitsluiting. Met andere woorden, als een specifieke gebruikers-ID niet in de beveiligingstabel staat, heeft deze geen toegang tot de applicatie. De enige uitzondering op deze regel is als een jokerteken (*) is toegewezen aan het veld USERID in een van de rijen in de beveiligingstabel. Een jokerteken betekent in dit geval dat alle geverifieerde gebruikers toegang hebben tot de applicatie. Hier is een voorbeeld van een beveiligingstabel met een lijst met gebruikers-ID's:
Gebruikerstoegang beheren voor specifieke gegevens in een applicatie
Met dynamische gegevensreductie wordt de toegang beperkt tot de rijen en kolommen in de gegevenstabellen in Qlik Sense-applicaties totdat de gebruiker is geverifieerd om zelf de applicatie te openen.
Toegang tot gegevens op rijniveau beheren
U kunt de toegang tot gegevens op rijniveau beperken door een kolom voor gegevensreductie aan de beveiligingstabel toe te voegen in de Access Section van het load-script. Specifieke records (rijen) kunnen worden verborgen door de gegevens in Sectietoegang te koppelen aan de werkelijke gegevens: Welke gegevens moeten worden weergegeven of uitgesloten, wordt geregeld door een of meer reductievelden met dezelfde naam in de onderdelen Sectietoegang of Section Application van het script. Nadat een gebruiker zich heeft aangemeld, kopieert Qlik Sense de selecties in reductievelden in Section Access naar de velden in Section Access met precies dezelfde veldnamen (de veldnamen moeten worden geschreven in hoofdletters). Nadat de selecties zijn gemaakt, worden alle gegevens die door deze selecties voor de gebruiker zijn uitgesloten, permanent verborgen in Qlik Sense. Als er een jokerteken (*) is gebruikt als een veldwaarde in de kolom voor gegevensreductie, krijgt de gebruiker toegang tot toegangsrecords die zijn gekoppeld aan alle geselecteerde reductievelden in de beveiligingstabel.
Als Qlik Sense het reductieveld in Section Access vergelijkt met velden in het gegevensmodel, worden de volgende gedragingen verwacht:
-
Als een veldwaarde in het gegevensmodel overeenkomt met het reductieveld in Sectietoegang, wordt de applicatie geopend met gegevens die aan de match voor de opgegeven gebruiker zijn gekoppeld. Overige gegevens worden verborgen.
-
Als de waarde van het reductieveld niet overeenkomt met enkele waarden in het gegevensmodel, wordt de applicatie niet geopend voor een normale GEBRUIKER. Niet-gereduceerd wordt echter wel geopend voor een gebruiker gemarkeerd als ADMIN.
Het gebruik van verschillende reductievelden in Sectietoegang wordt niet aanbevolen, omdat het andere toegangscombinaties toestaat dan de beoogde combinaties.
Het jokerteken* in de kolom voor gegevensreductie verwijst alleen naar alle waarden in de beveiligingstabel. Als er waarden in de Section Application zijn die niet beschikbaar zijn in de reductiekolom van de beveiligingstabel, worden ze beperkt.
Voorbeeld: Gegevensreductie op rijniveau op basis van de identiteit van de gebruiker
In dit voorbeeld komt het veld REDUCTION (hoofdletters) nu in zowel Section Access als Section Application voor (alle veldwaarden zijn ook in hoofdletters). De twee velden zouden normaal gesproken verschillend en gescheiden zijn, maar bij gebruik van Sectietoegang worden deze velden gekoppeld en het aantal records dat de gebruiker te zien krijgt beperkt.
Het resultaat is:
- Gebruiker ADMIN ziet alle velden en alleen de records die andere gebruikers in dit voorbeeld kunnen zien als REDUCTION = 1 of REDUCTION =2 is.
- Gebruiker A ziet alle velden, maar alleen de records die zijn gekoppeld aan REDUCTION=1.
- Gebruiker B ziet alle velden, maar alleen de records die zijn gekoppeld aan REDUCTION=2.
- Gebruiker C kan alle velden en alleen de records zien die andere gebruikers kunnen zien wanneer REDUCTION = 1 of REDUCTION =2.
Toegang tot gegevens op kolomniveau beheren
U kunt de toegang tot gegevens op kolomniveau beperken door het OMIT-systeemveld aan de beveiligingstabel toe te voegen in het script voor Sectietoegang. Het volgende voorbeeld is gebaseerd op het vorige voorbeeld waarbij de rij voor gegevensreductie al aanwezig is.
Voorbeeld: Kolom voor gegevensreductie op basis van de identiteit van de gebruiker
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.
Toegang tot gebruikersgroepen beheren
Sectietoegang biedt u de optie de gegevens die zichtbaar zijn voor gebruikers op basis van een groepslidmaatschap te beperken. Om uw gegevens te beperken voor gebruikersgroepen, voegt u de veldnaam GROUP toe aan de beveiligingstabel in de Access Section en definieert u waarden voor het veld GROUP .
Voorbeeld: Gegevensreductie op basis van gebruikersgroepen
Het resultaat is:
- Gebruikers die tot de ADMIN-groep behoren zien alle velden en alleen de records die andere gebruikers in dit voorbeeld kunnen zien als REDUCTION gelijk is aan 1, 2 of 3.
- 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.
Qlik Sense vergelijkt de gebruiker met UserID en zet de gebruiker om tegen 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 applicatie.
Imitatie gebruiken voor het laden van gegevens
Standaard wordt het interne systeemaccount, SA_SCHEDULER, gebruikt om laadtaken uit te voeren. Dit account heeft verhoogde bevoegdheden en kan technisch gezien alle gegevensbronnen gebruiken. Er is echter een instelling in de QMC waarbij gebruik wordt gemaakt van imitatie om laadtaken uit te voeren met de machtigingen van de applicatie-eigenaar in plaats van het interne systeemaccount. Als u deze instelling configureert, wordt de toepassingseigenaar en niet SA_SCHEDULER gebruikt voor ladingen. Dit betekent dat u SA_SCHEDULER niet toevoegt aan de Sectietoegang-tabel, maar juist de toepassingseigenaar toevoegt. In een taakketen kunnen applicaties verschillende eigenaren hebben met toestemmingen voor bronnen, afhankelijk van de toegangsrechten van elke eigenaar. Zie Servicecluster (alleen in het Engels) voor meer informatie.
Gebruikerstoegang beheren in een omgeving met meerdere clouds
Voor een Qlik Sense-omgeving met meerdere clouds bestaat een combinatie van mechanismen voor gebruikersauthenticatie. In Qlik Sense Enterprise on Windows wordt gewoonlijk de USERID in de beveiligingstabel voor Section Access geverifieerd door de proxyservice. In Qlik Cloud wordt een identiteitsprovider met de authenticatierol gebruikt. Daardoor zal de Section Access die is ingesteld voor een on-premises omgeving zoals Qlik Sense Enterprise on Windows niet werken in een cloudomgeving.
Bij gebruik van een OIDC- of SAML-identiteitsprovider (Qlik IdP of een aangepaste IdP) met Qlik Cloud, wordt de subject claim gebruikt voor het identificeren van gebruikers als ze zich aanmelden. Met Sectietoegang wordt de waarde van het veld USERID in de beveiligingstabel vergeleken met de waarde van de subject claim. Bij het instellen van uw tenant, moet u ervoor zorgen dat de SAM-accountnaam is toegewezen aan de subject claim van uw identiteitsprovider. Als uw SAM accountnaam bijvoorbeeld AD_DOMAIN\Dev is, moet u de subject claim instellen op AD_DOMAIN\Dev. Als u de waarde wilt bekijken van de subject claim van de IdP, voegt u /api/v1/diagnose-claims toe aan de tenant-URL in de browser, bijvoorbeeld: your-tenant.us.qlikcloud.com/api/v1/diagnose-claims. In het JSON -antwoord heeft de subject claim de naam sub.
Als u de SAM-accountnaam niet kunt gebruiken, kunt u een gebruiker op een andere manier verifiëren. Aangezien e-mailadressen doorgaans hetzelfde blijven in verschillende omgevingen, kunt u de GEBRUIKER gebruiken.het veld EMAIL in plaats van het veld USERID in de beveiligingstabel. Hier volgt een voorbeeld van hoe de beveiligingstabel er uit kan komen te zien:
| TOEGANG | USERID | GEBRUIKERE-mail | Opmerking | COUNTRY |
|---|---|---|---|---|
| GEBRUIKER |
ABC\Joe |
* | Access-on-prem | Verenigde Staten |
| GEBRUIKER | * |
joe.smith@example.com |
Access-in-cloud | Verenigde Staten |
| GEBRUIKER |
ABC\Ursula |
* | Access-on-prem | Duitsland |
| GEBRUIKER | * |
ursula.schultz@example.com |
Access-in-cloud | Duitsland |
| GEBRUIKER |
ABC\Stefan |
* | Access-on-prem | Zweden |
| GEBRUIKER | * |
stefan.svensson@example.com |
Access-in-cloud | Zweden |
Autorisatiescript:
Houd er rekening mee dat er voor elke gebruiker twee records aanwezig zijn: één voor on-premises toegang en één voor cloudtoegang. De jokertekens zorgen ervoor dat de relevante authenticatievelden worden gebruikt. In dit voorbeeld wordt COUNTRY gebruikt als veld voor gegevensreductie.
Gebruiken van Section Access en Insight Advisor Chat
Als u applicaties die gebruikmaken van sectie-toegang beschikbaar wilt maken in Insight Advisor Chat, moet u zorgen dat de volgende servicegebruikers beheerderstoegang hebben in het script voor sectie-toegang:
-
INTERNAL/sa_repository: hiermee wordt het script voor sectietoegang beschikbaar, samen met de opslagplaatsservice voor het beheer van gebruikerstoegang.
-
INTERNAL/sa_scheduler: hierdoor wordt de applicatie opnieuw geladen met behulp van de QMC-taken.
Als er gevoelige gegevens aanwezig zijn in namen van applicaties, velden of masteritems, worden deze mogelijk weergegeven door applicaties die Sectietoegang gebruiken beschikbaar te maken voor Insight Advisor Chat. Onder applicatiesuggesties voor queries vallen applicaties in streams waartoe gebruikers toegang hebben. Hieronder kunnen applicaties vallen waartoe gebruikers geen toegang hebben in de Sectietoegang van een applicatie. Het selecteren van deze applicaties zal echter niets doen. Als gebruikers op Dimensies of Metingen klikken om de beschikbare items van een applicatie met behulp van Sectietoegang te bekijken, zien gebruikers mogelijk items waartoe ze geen toegang hebben. Als gebruikers op deze items klikken, krijgen ze echter geen gegevens te zien.
Bijvoorbeeld:
Zodra deze gebruikers zijn opgenomen in het script voor Sectietoegang, kunt u de applicatie beschikbaar maken voor Insight Advisor Chat. Zodra de applicatie opnieuw is geladen, is die beschikbaar in Insight Advisor Chat.
QVD's gebruiken met sectietoegang
QVD-bestanden kunnen als reguliere lading of als een geoptimaliseerde lading worden gelezen. Een geoptimaliseerde lading betekent dat er geen gegevenstransformaties zijn gemaakt tijdens de lading en er in de WHERE-clausule geen filters aanwezig zijn.
Geoptimaliseerde ladingen werken niet als u QVD's gebruikt met sectietoegang. Als u een QVD-bestand wilt gebruiken om gegevens te laden in sectietoegang, moet u de QVD-bestanden uitbreiden. De makkelijkste manier om het QVD-bestand uit te breiden is om de opmaak te wijzigen tijdens het laden van de gegevens.
In het volgende voorbeeld is het QVD-bestand niet uitgebreid omdat de gegevens nog niet zijn opgemaakt.
Voorbeeld: Niet-werkend voorbeeld met geen gegevensopmaak (geoptimaliseerde lading)
In plaats daarvan kunt u de functie upper() gebruiken om de gegevens op te maken die naar het QVD-bestand worden uitgebreid.
Voorbeeld: Werkend voorbeeld met gegevensopmaak
U kunt ook de instuctie Where 1=1 toevoegen aan de LOAD-instructie
Voorbeeld: Ander werkend voorbeeld met gegevensopmaak
Richtlijnen en tips voor het gebruik van Section Access
Hier volgen enkele belangrijke feiten en handige tips voor Section Access.
- Alle veldnamen en -waarden in LOAD- of SELECT-instructies in de Access Section moeten in HOOFDLETTERS worden geschreven. Zet een veldnaam met kleine letters in de database om naar hoofdletters met de functie Hoofdletters voordat het veld wordt gelezen door de LOAD- of SELECT-instructie.
Ga voor meer informatie naar Upper Script- en diagramfunctie.
- U kunt de systeemveldnamen voor Sectietoegang die in uw gegevensmodel als veldnamen worden weergegeven niet gebruiken.
- Als u wijzigingen aanbrengt in een ontwikkelkopie van een gepubliceerde applicatie, moet de ontwikkelkopie opnieuw worden gepubliceerd voordat Sectietoegang besturingselementen worden toegepast op de gepubliceerde applicatie.
- 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 applicatie te bekijken, worden zij beperkt door hun eigen toegangsrechten.
- U moet geen kleuren toewijzen aan masterdimensiewaarden als u sectietoegang gebruikt of als u met gevoelige gegevens werkt, omdat de waarden door de kleurconfiguratie mogelijk kunnen worden onthuld.
- Verwijder voordat u de applicatie publiceert alle bijgevoegde bestanden met sectietoegangsinstellingen als u blootstelling van vertrouwelijke gegevens wilt voorkomen. Bijgevoegde bestanden worden meegeleverd wanneer de applicatie wordt gepubliceerd. Als de gepubliceerde applicatie 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 applicatie kunnen daardoor alle gegevens in de bijgevoegde bestanden bekijken.
- Een jokerteken (*) wordt geïnterpreteerd als alle waarden (in de lijst) voor het veld in de 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).
- Beveiligingsvelden kunnen in verschillende tabellen worden geplaatst.
- Gegevens uit een QVD-bestand worden minder snel geladen als de functie Hoofdletters wordt gebruikt.
-
Als u zichzelf hebt buitengesloten van een applicatie door Sectietoegang in te stellen, kunt u de applicatie openen zonder gegevens en Section Access 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 applicatie openen zonder gegevens.
- Door een binair laden worden de toegangsbeperkingen overgenomen door de nieuwe Qlik Sense-applicatie.