Så här: Aktivera säkerhet på radnivå i Power BI på Power Pages
Precis som Power Pages är det bästa verktyget för att snabbt utöka din Microsoft Dataverse distributionen till allmänheten i form av en webbplats är Power BI det bästa verktyget för att återge datadrivna visualiseringar. Det fina med Power Platform är dess möjlighet att sömlöst blanda de två. Tidigare, för att återge en Power BI-rapport på en webbsida måste administratörer publicera rapporten på webben och bädda in den i en iFrame. Även om en tillämpade Sidbehörigheter för att låsa sidan med rapporten, om en person hade länken som användes för att bädda in rapporten, skulle vem som helst fortfarande kunna komma åt rapporten utanför webbplatsen.
Syftet med att publicera på webben är att alla personer på webben ska kunna använda informationen och till och med dela rapporten igen.
Varning
När du använder Publicera på webben kan vem som helst på Internet titta på din publicerade rapport eller ditt visuella objekt. Visning kräver ingen autentisering. Det inkluderar att visa information på detaljnivå som dina rapporter samlar ihop. Innan du publicerar en rapport bör du kontrollera att det går bra att du delar data och visualiseringar offentligt. Publicera inte konfidentiell eller tillverkarspecifik information. Om du tvekar, så kontrollera först organisationens principer innan du publicerar.
Med Power BI embedded, kan en kontextuellt serva Power BI-komponenter till användare, skicka automatiska filter med hjälp av en filterparameter och aktivera säkerhetsfunktioner på radnivå så att en organisation verkligen kan se data som är synliga för användarna och bara visa vad de är avsedda att se.
Kommentar
Säkerhet på radnivå stöds endast för Power BI embedded.
Förutsättningar
- Klientorganisation med en Microsoft Dataverse-miljö och en Power Pages webbplats som har distribuerats.
- En webbsida att bädda in i Power BI-rapport eller instrumentpanel.
- Relevanta affärsdata som lagras i Dataverse.
- Power BI Desktop.
- Kapacitet för publicering av Power BI embedded innehåll.
- Globala administratörsrättigheter för innehavare.
- Global administratör i klientorganisation med administratörsroll på Power BI tjänstarbetsytan.
- Organisation, inte personlig Power BI arbetsyta.
- Registrering/autentisering aktiverad på webbplatsen.
Scenario
Du arbetar i en gruppstudio och använder Dataverse för att spåra fitnessklasser och deras verksamhet. Gruppens fitnessinstruktörer finns inte i din klientorganisation eftersom varje klientorganisation behandlas som en entreprenör. Din webbplats ska användas av dessa grupper med fitnessinstruktörer för att logga in och se historiken över deras klasser, deras kommande schema och deltagarpriser. De bör bara kunna se de klasser som de själva har lärt sig, men inte allas.
Instruktörerna representeras av Kontakt-poster i Dataverse. När de öppnar Power Pages webbplatsen gör de det som kontakt-post. Den information som de behöver se på webbplatsen kommer från tabellen anpassade klasser. Tabellen Klasser har en N*:1-relation till en kontakt, eftersom klassformuläret har ett uppslagsfält som heter Instruktör, som är för kontakttabellen.
För att få säkerhet på radnivå att arbeta för Power Pages användare (kontakter), måste det finnas ett direkt förhållande mellan Kontakt, och tabellen du rapporterar emot. Nedan följer ett exempel på en datamodell för det här scenariot:
Konfigurera en Power BI-rapport eller instrumentpanel
Öppna rapporten Power BI eller instrumentpanelen Power BI Desktop.
Vi måste ändra relationen mellan Kontakt och tabellen (Klasser i det här scenariot) om du vill använda dubbelriktad filtrering. Det gör du genom att markera fliken Modell längst till vänster.
Välj raden som länkar till din tabell kontakt table till tabellen som innehåller din rapports data – i exempelfallet är detta vbd_class eftersom vi rapporterar om klasser.
I fönstret Redigera relation finns två plocklistor. Välj den tabell som du rapporterar om högst upp (vbd_class) och välj kolumnen som har postens unika identifierare.
I den nedre vallistan väljer du kontakt och välj kolumnen Kontakt.
Komplexiteten indikerar Många till en (*:1). Ändra värdet Korsfilterriktning till båda.
Välj OK.
När vi implementerar Säkerhet på radnivå (RLS), måste vi skapa vår roll. I den övre menyraden Start välj Hantera roller.
Välj Redigera under Skapa. Namnge rollen. I exempelscenariot används pagesuser.
Från kolumnen Tabeller välj kontakt.
Fyll i textrutan till höger med DAX-uttrycket:
[User Name] = username()
Kommentar
Fältet
[Username]
finns i kontakttabellen och är inget användarnamn. Det refererar till adx_externalidentity tabell som används av Power Pages. Det här har GUID som skickas till Power BI i username() funktionen.Klicka på Spara och spara sedan din fil.
Från menyfliksområdet, välj Publicera.
Välj en arbetsyta för organisationen som du är ägare till och som ska användas för Power Pages integreringen. Välj Välj.
Konfigurera Power BI-integrering
Se Konfigurera Power BI-integrering för att aktivera din webbplats för Power BI-integrering.
Bädda in Power BI-rapport
Navigera till Power Pages. Hitta Power Pages webbplats där rapporten ska infogas och välj Redigera för att öppna Power Pages designstudion.
Från Sidan arbetsyta väljer du webbsidan där du vill bädda in rapporten.
Lägg till ett avsnitt i webbsidans brödtext.
Välj ikonen Power BI när du uppmanas att välja vilken komponent du vill lägga till i avsnittet.
När komponenten fylls i avsnittet väljer du längst upp till vänster Redigera Power BI.
Välj åtkomsttyp. Alternativen är:
Bädda in för dina kunder: Gör att du säkert kan dela Power BI-instrumentpaneler eller rapporter med externa användare utan en Power BI-licens eller Microsoft Entra-identitet.
Inbäddad för organisationen: Detta använder Microsoft Entra autentisering att dela rapporten från Power BI så att interna användare kan se det här.
Publicera på webben: Detta gör att alla på internet kan komma åt rapporten och data.
Varning
Se till att detta inte är konfidentiell information!
Ytterligare information: Publicera på webben
Välj Inbäddning för dina kunder.
Välj din arbetsyta som innehåller rapporten eller instrumentpanelen, ange typen som Rapport eller Instrumentpanel och välj sedan rapporten eller instrumentpanelen från den sista listrutan. Om det är en rapport måste du ange vilken sida du vill infoga.
Om du vill visa koden som inbäddade rapporten eller instrumentpanelen väljer du Redigera kod högst upp till höger i studio.
När du blir tillpromptd klickar du på Öppna Visual Studio Code. Till vänster under PowerPages (arbetsyta) har namnet för Power Pages webbplatsen en listruta till webbsidan. Inom det avsnittet ser du en .css-fil, en .js-fil och HTML-kopian. Kontrollera att du finns i HTML-kopieringsfilen.
Markera CTRL + F och sök efter
{%
så att vi snabbt kan identifiera koden som innehåller referensen till vår Power BI instrumentpanel eller rapport.{%
anger att en tagg har öppnats, vilket skapar logik för språket Liquid. Liquid är en bro mellan Dataverse och vad användarna interagerar med på webbplatsen. När vi använder studioredigeraren för att infoga komponenter skapas automatiskt en del kod i webbsidans källkod. Mer information om Power BI liquid tagg hittar du här: Dataverse Liquid-taggar och Lägg till Power BI-rapport.Den fullständiga raden med liquid-kod som visas ser ut ungefär så här:
{% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000000/ReportSection" %}
Stäng fliken Visual Studio Code för webben.
I Power Pages designstudio, välj inbäddad Power BI komponenten och välj redigera Power BI.
Bläddra nedåt för att växla Tillämpa roller för sant/ja.
I textrutan Roller, skriv namnet på den roll du skapt i Power BI Desktop.
Om du se ändringar detta gjort i koden som inbäddade rapporten eller instrumentpanelen väljer du Redigera kod högst upp till höger i studio.
Den fullständiga raden med liquid-kod som visas ser ut ungefär så här:
{% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000001/ReportSection" roles:"pagesuser" %}
Stäng fliken Visual Studio Code för att gå tillbaka till designstudion.
Förhandsgranska den inbäddade rapporten eller instrumentpanelen som visas i webbläsaren genom att välja Synkronisering i det övre högra hörnet och välj sedan Granska > dator.
Om du vill testa rapporten och ingen användare är inloggad kan du se att RLS har tillämpats eftersom inga poster returneras och navigerar till Power Pages-webbplatsen:
Det finns underliggande data i den här rapporten, som när du ser den från Power BI Desktop utan RLS tillämpad kan du se att det finns flera poster totalt sett, men de är relaterade till en kontaktpost.
Om du vill testa detta ytterligare och loggar in på webbplatsen med en användare som har en motsvarande kontakt med relaterade data, kan du bara se de poster som är relaterade till den signerade användaren på webbsidan:
Sammanfattning
Du har bäddat in en Power BI-rapport eller instrumentpanel som använder säkerhet på radnivå på Power Pages-webbplatsen!
Filterrutan visas som standard. För att dölja filterrutan krävs JavaScript. Steg för att göra detta dokumenteras här: Lägga till en Power BI-rapport eller instrumentpanel till en webbsida i en portal.