Share via


Beveiliging op rijniveau implementeren in ingesloten gepagineerde rapporten

VAN TOEPASSING OP: App is eigenaar van gegevens die gebruiker eigenaar is van gegevens

In dit artikel wordt uitgelegd hoe u een gepagineerd rapport insluit dat gebruikmaakt van beveiliging op rijniveau (beveiliging op rijniveau) in uw app die eigenaar is van de gegevenstoepassing .

Notitie

Dit artikel is alleen relevant voor klanten die eigenaar zijn van gegevens.

RLS gebruiken voor gepagineerde rapporten:

  1. De omgeving instellen om het rapport te filteren
  2. De gegevens filteren op rapport- of queryniveau
  3. De geconfigureerde parameter doorgeven met behulp van een insluittoken

Vereisten

  • In dit artikel wordt ervan uitgegaan dat u weet hoe u een gepagineerd Power BI-rapport kunt insluiten. Hierin wordt uitgelegd hoe u het insluittoken genereert, zodat in het rapport alleen wordt weergegeven waartoe de gebruiker toegangsmachtigingen heeft.

  • Gepagineerde rapporten worden gemaakt met behulp van de SQL Server Reporting Services-engine en niet met de Power BI-engine (Analysis Services), dus de RLS-filtering is ingesteld in Power BI Report Builder.

De omgeving instellen

Als u beveiliging op rijniveau wilt toepassen op een gepagineerd Power BI-rapport, gebruikt u de ingebouwde gebruikers-id om een parameter toe te wijzen. Deze parameter wordt gebruikt om uw gegevens te filteren of er query's op uit te voeren.

Geef vervolgens de UserID door aan het Insluittoken - Token-API genereren om het insluittoken op te halen.

UserID gebruiken als filter op rapport- of queryniveau

U kunt UserId gebruiken als filter of in een query voor de gegevensbron.

De gegevens filteren

  1. Selecteer Filter in het venster Eigenschappen van het Semantische model in het linkerdeelvenster.

    Schermopname van het Power BI Report Builder-filter.

  2. Selecteer in het vervolgkeuzemenu Expressie de parameter die u wilt gebruiken voor het filteren van de gegevens.

    Schermopname van de waarde Kleur geselecteerd in het menu Expressie.

  3. Selecteer de knop Waardefunctie .

    Power BI Report Builder-waarde

  4. Selecteer ingebouwde velden in het venster Expressie in de lijst Categorie.

    Schermopname van het expressievenster met ingebouwde velden geselecteerd als Categorie en ExecutionTime geselecteerd als Item.

  5. Selecteer in de lijst Item de optie UserID en selecteer OK.

    Power BI Report Builder UserID

  6. Controleer in het venster Eigenschappen van het Semantische model of de expressie de geselecteerde parameter = UserID is en selecteer OK.

    Semantische modeleigenschappen van Power BI Report Builder

Een query gebruiken

  1. Selecteer parameters in het venster Eigenschappen van het Semantische model in het linkernavigatiedeelvenster en selecteer Toevoegen.

    Power BI Report Builder-parameters

  2. Voer in het veld Parameternaam @UserID in en voeg in de parameterwaarde [&UserID] toe.

    Parameternaam van Power BI Report Builder

  3. Selecteer query in het linkerdeelvenster, voeg in de query de parameter UserID toe als onderdeel van uw query en selecteer OK.

    Notitie

    In de onderstaande schermopname wordt de kleurparameter gebruikt als voorbeeld (WHERE FinalTable.Color = @UserID). Indien nodig kunt u een complexere query maken.

    Power BI Report Builder-query's bewerken

Een insluittoken genereren

Wanneer u een gepagineerd rapport voor uw klanten insluit, gebruikt u de Reports GenerateTokenInGroup-API om het insluittoken op te halen. Dit token kan ook worden gebruikt om bepaalde gegevens uit het gepagineerde rapport te filteren.

U kunt alleen een token genereren met behulp van een service-principal. U kunt geen token genereren als hoofdgebruiker. De service-principal moet ten minste lidmachtigingen hebben voor de werkruimte in de Power BI-service. (Als de service-principal een inzender of viewer is, kan deze geen token genereren).

Als u een token wilt genereren, wijst u het username veld toe met de informatie die u wilt weergeven. Als u bijvoorbeeld in een gepagineerd rapport met een kleurparameter groen invoert in het username veld, beperkt het insluittoken de ingesloten gegevens tot alleen de gegevens die groen zijn als de waarde in de kleurkolom.

{
 "reports": [
 {
  "id": "8d57615e-cfed-4d60-bd21-7dc05727193c"
 }
 ],
 "identities": [
 {
  "username": "green",
  "reports": [
  "8d57615e-cfed-4d60-bd21-7dc05727193c"
  ]
 }
 ]
}

Notitie

Als u een insluittoken genereert zonder een gebruikers-id op te geven, wordt de object-id van de service-principal gebruikt.

Overwegingen en beperkingen

  • Hoofdgebruiker wordt niet ondersteund met gepagineerde rapporten voor insluiten voor uw klanten. Hoofdgebruiker wordt ondersteund voor insluiten voor uw organisatie.
  • De service-principal moet werkruimtemachtigingen hebben van ten minste lid of (niet viewer of inzender).

Een insluittoken genereren