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:
- De omgeving instellen om het rapport te filteren
- De gegevens filteren op rapport- of queryniveau
- 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
Selecteer Filter in het venster Eigenschappen van het Semantische model in het linkerdeelvenster.
Selecteer in het vervolgkeuzemenu Expressie de parameter die u wilt gebruiken voor het filteren van de gegevens.
Selecteer de knop Waardefunctie .
Selecteer ingebouwde velden in het venster Expressie in de lijst Categorie.
Selecteer in de lijst Item de optie UserID en selecteer OK.
Controleer in het venster Eigenschappen van het Semantische model of de expressie de geselecteerde parameter = UserID is en selecteer OK.
Een query gebruiken
Selecteer parameters in het venster Eigenschappen van het Semantische model in het linkernavigatiedeelvenster en selecteer Toevoegen.
Voer in het veld Parameternaam @UserID in en voeg in de parameterwaarde [&UserID] toe.
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.
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).