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.

    Screenshot of the Power BI Report Builder filter.

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

    Screenshot shows the value Color selected from the Expression menu.

  3. Klik op de knop Waardefunctie .

    Power BI Report Builder value

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

    Screenshot shows the Expression window with Built-in Fields selected as Category and ExecutionTime selected as Item.

  5. Selecteer In de lijst Item de optie UserID en klik op OK.

    Power BI Report Builder UserID

  6. Controleer in het venster Semantische modeleigenschappen of de expressie de geselecteerde parameter = UserID is en klik op OK.

    Power BI Report Builder semantic model properties

Een query gebruiken

  1. Selecteer parameters in het venster Semantische modeleigenschappen in het linkernavigatiedeelvenster en klik op Toevoegen.

    Power BI Report Builder parameters

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

    Power BI Report Builder parameter name

  3. Selecteer query in het linkerdeelvenster, voeg in de query de parameter UserID toe als onderdeel van uw query en klik op 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 queries edit

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 van leden of hoger hebben (niet viewer of inzender).

Een insluittoken genereren