Beveiliging op rijniveau implementeren in ingesloten gepagineerde rapporten

Van toepassing op:✅ Power BI ingesloten analyses voor uw klanten (App-owns-data)

In dit artikel wordt uitgelegd hoe u een gepagineerd rapport dat gebruikmaakt van RLS (beveiliging op rijniveau), kunt insluiten in uw app owns data-toepassing.

Notitie

Dit artikel is alleen relevant voor klanten met het model 'app-beheert-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 de Insluittoken - Token genereren-API 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.

    Op de schermafbeelding is de waarde Kleur geselecteerd in het menu Expressie.

  3. Selecteer de knop Waardefunctie .

    Power BI Report Builder-waarde

  4. Selecteer in het venster Expressie in de lijst CategorieIngebouwde velden.

    De schermopname toont het venster Expressie, 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 semantisch model of de expressie de door u 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 veld username, beperkt het insluitingstoken de ingesloten gegevens tot alleen de gegevens waarvoor in de kleurkolom groen als waarde is opgegeven.

{
 "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 voor Insluiten voor uw klanten niet ondersteund met gepagineerde rapporten. Hoofdgebruiker wordt ondersteund bij insluiten voor uw organisatie.
  • De serviceprincipal moet machtigingen voor de werkruimte hebben van minimaal lid (dus niet lezer of bijdrager).

Een insluittoken genereren