Implementere sikkerhet på radnivå i innebygde paginerte rapporter
GJELDER FOR: Appen eier data Brukeren eier data
Denne artikkelen forklarer hvordan du bygger inn en paginert rapport som bruker RLS (sikkerhet på radnivå) i appen, eier dataprogrammet .
Merk
Denne artikkelen er bare relevant for appeierdatakunder.
Slik bruker du RLS for paginerte rapporter:
- Konfigurere miljøet til å filtrere rapporten
- Filtrere dataene på rapport- eller spørringsnivå
- Send den konfigurerte parameteren ved hjelp av et innebyggingstoken
Forutsetning
Denne artikkelen forutsetter at du vet hvordan du bygger inn en paginert Power BI-rapport. Den forklarer hvordan du genererer innebyggingstokenet slik at rapporten bare viser hva brukeren har tilgang til.
Paginerte rapporter opprettes ved hjelp av SQL Server Reporting Services-motoren, og ikke Power BI-motoren (Analysis Services), så RLS-filtreringen er konfigurert i Power BI Report Builder.
Konfigurere miljøet
Hvis du vil bruke sikkerhet på radnivå i en paginert Power BI-rapport, bruker du det innebygde feltet UserID til å tilordne en parameter. Denne parameteren brukes til å filtrere eller spørre etter dataene.
Deretter sender du UserID til bygg inn-tokenet – Generer token-API-en for å hente innebyggingstokenet.
Bruke UserID som filter på rapport- eller spørringsnivå
Du kan bruke UserId som et filter eller i en spørring til datakilden.
Filtrere dataene
Velg Filter fra venstre rute i vinduet Egenskaper for semantisk modell.
Velg parameteren du vil bruke til filtrering av dataene, på rullegardinmenyen Uttrykk .
Velg verdifunksjonsknappen.
Velg Innebygde felt fra kategorilisten i uttrykksvinduet.
Velg UserID fra Element-listen, og velg OK.
Kontroller at uttrykket er den valgte parameteren = UserID i vinduet Egenskaper for semantisk modell, og velg OK.
Bruke en spørring
Velg Parametere fra venstre navigasjonsrute i vinduet Egenskaper for semantisk modell, og velg Legg til.
Angi @UserID i Parameternavn-feltet, og legg til [&UserID] i parameterverdien.
Velg Spørring fra venstre rute, legg til UserID-parameteren i spørringen som en del av spørringen, og velg OK.
Merk
I skjermbildet nedenfor brukes fargeparameteren som et eksempel (WHERE FinalTable.Color = @UserID). Hvis det er nødvendig, kan du opprette en mer kompleks spørring.
Generer et innebyggingstoken
Når du bygger inn en paginert rapport for kundene, kan du bruke API-en For GenererTokenInGroup for rapporter for å få innebyggingstokenet. Dette tokenet kan også brukes til å filtrere noen data ut av den paginerte rapporten.
Du kan bare generere et token ved hjelp av en tjenestekontohaver. Du kan ikke generere et token som en hovedbruker. Tjenestekontohaveren må ha minst medlemstillatelser til arbeidsområdet i Power Bi-tjeneste. (Hvis tjenestekontohaveren er en bidragsyter eller visningsprogram, kan det ikke generere et token).
Hvis du vil generere et token, tilordner username
du feltet med informasjonen du vil vise. I en paginert rapport som for eksempel har en fargeparameter, begrenser innebyggingstokenet de innebygde dataene til bare dataene som har grønn som verdien i fargekolonnen, hvis du angir grønt i username
feltet.
{
"reports": [
{
"id": "8d57615e-cfed-4d60-bd21-7dc05727193c"
}
],
"identities": [
{
"username": "green",
"reports": [
"8d57615e-cfed-4d60-bd21-7dc05727193c"
]
}
]
}
Merk
Hvis du genererer innebyggingstoken uten å angi en bruker-ID, brukes objekt-ID-en til tjenestekontohaveren.
Hensyn og begrensninger
- Hovedbruker støttes ikke med paginerte rapporter for innebygging for kundene. Hovedbruker støttes for innebygging for organisasjonen.
- Tjenestekontohaveren må ha arbeidsområdetillatelser for minst medlem eller (ikke visningsprogram eller bidragsyter).