Delen via


Procedure: Beveiliging op rijniveau inschakelen in Power BI voor Power Pages

Net zoals Power Pages de tool bij uitstek is om uw Microsoft Dataverse-implementatie snel uit te breiden naar openbaar in de vorm van een website, is Power BI de tool bij uitstek om elegante datagestuurde visualisaties weer te geven. De schoonheid van het Power Platform ligt in het vermogen om de twee naadloos te combineren. In het verleden moesten beheerders om een Power BI-rapport weer te geven in een webpagina het rapport op het web publiceren en insluiten in een iFrame. Zelfs als je Paginamachtigingen toepaste om de pagina met het rapport te vergrendelen, als iemand de link had die was gebruikt om het rapport in te sluiten, zou iedereen het rapport nog steeds buiten de website om kunnen openen.

Het doel van publiceren op web is om iedereen op internet in staat te stellen de gegevens te consumeren en zelfs het rapport opnieuw te delen.

Waarschuwing

Als u Publiceren op web gebruikt, kan het door u gepubliceerde rapport of visuele element door iedereen op internet worden bekeken. Voor weergave is geen verificatie nodig. Dit omvat weergave van gegevens op detailniveau die in uw rapporten zijn opgenomen. Voordat u een rapport publiceert, moet u controleren of u de gegevens en visuele elementen openbaar mag delen. Publiceer geen vertrouwelijke of eigendomsinformatie. Controleer bij twijfel vóór publicatie de beleidsregels van uw organisatie.

Met Power BI Embedded kunt u Power BI-componenten contextueel aan gebruikers leveren, automatische filters doorgeven met behulp van een filterparameter en beveiligingsmogelijkheden op rijniveau inschakelen, zodat een organisatie gegevens die zichtbaar zijn voor gebruikers echt kan beveiligen en alleen die gegevens kan weergeven die ze mogen zien.

Opmerking

Beveiliging op rijniveau wordt alleen ondersteund voor Power BI Embedded.

Vereisten

Scenario

Je werkt voor een groepsfitnessstudio en gebruikt Dataverse om groepsfitnesslessen en de aanwezigheid erbij bij te houden. De groepsfitnessinstructeurs zijn geen onderdeel van uw tenant, aangezien elk wordt behandeld als een onderaannemer. Uw website moet door deze groepsfitnessinstructeurs worden gebruikt om in te loggen en een geschiedenis van de door hen gegeven lessen, het rooster met komende lessen en bezoekersaantallen te bekijken. Ze zouden echter alleen de lessen moeten kunnen zien die ze zelf hebben gegeven, en niet die van iedereen.

De instructeurs worden vertegenwoordigd door Contactpersoonrecords in Dataverse. Wanneer ze de Power Pages-website bezoeken, doen ze dit als hun Contactpersoon record. De gegevens die ze op de website moeten zien, komen uit onze aangepaste tabel Lessen. De tabel Lessen heeft een N*:1-relatie met een contactpersoon, aangezien het formulier lessen een opzoekveld heeft met de naam Instructeur, dat voor de tabel met contactpersonen is.

Een record van een les in Dataverse.

Om beveiliging op rijniveau te laten werken voor Power Pages-gebruikers (Contactpersonen), moet er die directe relatie zijn tussen de Contactpersoon en de tabel waarnaar u rapporteert. Hieronder ziet u een voorbeeld van een gegevensmodel van dit scenario:

Relatie van contactpersoon met lessentabel.

Power BI-rapport of -dashboard configureren

  1. Open uw Power BI-rapport of -dashboard in Power BI Desktop.

    Power BI-rapport voor instructeur.

  2. We moeten de relatie tussen Contactpersoon en onze tabel (Lessen in dit scenario) wijzigen om bidirectionele filtering te gebruiken. Selecteer hiervoor het tabblad Model helemaal links.

    Optie Model in Power BI.

  3. Selecteer de regel die uw tabel Contactpersonen koppelt aan de tabel die de gegevens van uw rapport bevat - in het voorbeeld is dit vbd_class aangezien we rapporteren over lessen.

  4. In het venster Relatie bewerken ziet u twee selectielijsten. Kies in de bovenste de tabel waarover u rapporteert (vbd_class) en selecteer de kolom met de unieke id van de record.

  5. Selecteer in de onderste selectielijst de tabel Contactpersoon en selecteer de kolom Contactpersoon.

  6. Kardinaliteit geeft Veel op één aan (*:1). Wijzig de waarde Cross-filter richting in Beide.

    Koppeling tussen tabellen bewerken

  7. Selecteer OK.

  8. Terwijl we beveiliging op rijniveau (RLS) implementeren, moeten we onze rol creëren. Selecteer in het bovenste Start lint de optie Rollen beheren.

  9. Selecteer Maken onder Rollen. Geef de rol een naam. In het voorbeeldscenario werd pagesuser gebruikt.

  10. Selecteer contactpersoon in de kolom Tabellen.

  11. Vul het tekstvak aan de rechterkant in met de DAX-expressie:

    [User Name] = username()

    Opmerking

    Het veld [Username] bevindt zich op de contactpersonentabel en is geen echte gebruikersnaam. Dit verwijst naar de tabel adx_externalidentity die door Power Pages wordt gebruikt. Deze bevat de GUID die wordt verzonden naar Power BI in de functie gebruikersnaam().

    Rollen beheren Power BI.

  12. Klik op Opslaan en sla vervolgens het bestand op.

  13. Selecteer de optie Publiceren in het lint Start.

  14. Selecteer een werkruimte van een organisatie waarvan u de eigenaar bent. Die zal worden gebruikt door de Power Pages-integratie. Kies Selecteren.

Power BI-integratie configureren

Raadpleeg Power BI-integratie instellen om uw website in te schakelen voor Power BI-integratie.

Power BI-rapport insluiten

  1. Navigeer naar Power Pages. Zoek de Power Pages-website waarin u het rapport wilt insluiten en selecteer Bewerken om de Power Pages-ontwerpstudio te openen.

  2. Selecteer in de werkruimte Pagina's de webpagina waar u het rapport wilt insluiten.

  3. Voeg een sectie toe aan de hoofdtekst van de webpagina.

  4. Kies het pictogram Power BI wanneer daarom wordt gevraagd om te kiezen welk onderdeel u toevoegt binnen de sectie.

    Voeg een sectie toe aan een webpagina.

  5. Wanneer de component de sectie vult, selecteert u in de linkerbovenhoek Power BI bewerken.

  6. Selecteer Toegangstype. De opties zijn:

    1. Insluiten voor klanten: Hiermee kunt u de Power BI delen met externe gebruikers zonder Power BI-licentie of een Microsoft Entra-identiteit.

    2. Insluiten voor organisatie: Hierbij wordt Microsoft Entra-verificatie gebruikt om het rapport te delen vanuit Power BI zodat interne gebruikers dit kunnen zien.

    3. Publiceren op web: Hiermee kan iedereen op internet het rapport en de gegevens openen.

    Let op

    Zorg ervoor dat dit geen vertrouwelijke informatie is!

    Aanvullende informatie: Publiceren op web

    Kies Insluiten voor klanten.

  7. Selecteer uw werkruimte die het rapport of dashboard bevat, geef het type op als Rapport of Dashboard en kies vervolgens het rapport of dashboard uit de laatste vervolgkeuzelijst. Als dit een rapport is, moet u aangeven welke pagina u wilt insluiten.

    Rapport selecteren.

  8. Selecteer Code bewerken in de rechterbovenhoek van de studio om de code waarin het rapport of dashboard is ingesloten te bekijken.

    Bewerkt code.

  9. Selecteer Visual Studio Code openen wanneer daarom wordt gevraagd. Aan de linkerkant, onder PowerPages (Werkruimte) heeft de naam van de Power Pages-website een vervolgkeuzelijst naar de webpagina. Binnen die sectie ziet u een .css-bestand, een .js-bestand en de HTML-kopie. Controleer of u in het HTML-bestand bent opgenomen.

    VS Code.

  10. Selecteer CTRL + F en zoek naar {%, zodat we snel de code kunnen identificeren die de verwijzing naar ons Power BI-dashboard of -rapport bevat. {% geeft de opening van een tag aan, die logica creëert voor de taal Liquid. Liquid is onze brug tussen Dataverse en waar gebruikers op de website mee werken. Wanneer we de studio-editor gebruiken om componenten in te sluiten, wordt er automatisch een stukje liquid code gemaakt in de broncode van de webpagina. Meer informatie over de Power BI liquid code vindt u hier: Dataverse Liquid codes en Power BI- rapport toevoegen.

  11. De volledige regel liquid code die u ziet, lijkt hierop:

    {% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000000/ReportSection" %}
    
  12. Sluit het tabblad Visual Studio Code voor het web.

  13. Kies in de Power Pages-ontwerpstudio de ingesloten Power BI-component en kies de optie Power BI bewerken.

  14. Scrol omlaag om Rollen toepassen op waar/ja te zetten.

  15. Typ in het tekstvak Rollen de naam van de rol die u in Power BI Desktop hebt gemaakt.

    Voeg rollen toe aan Power BI-component.

  16. Selecteer Code bewerken in de rechterbovenhoek van de studio om de wijzigingen die hierdoor in de code waarin het rapport of dashboard is ingesloten zijn gemaakt te bekijken.

  17. De volledige regel liquid code die u ziet, lijkt nu hierop:

    {% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000001/ReportSection" roles:"pagesuser" %}
    
  18. Sluit het tabblad Visual Studio Code om terug te keren naar de ontwerpstudio.

  19. Bekijk een voorbeeld van het resulterende ingesloten rapport of dashboard in uw browser door de optie Synchroniseren te kiezen in de rechterbovenhoek en vervolgens Voorbeeld > Bureaublad te kiezen.

  20. Om het rapport te testen, kunt u zonder ingelogde gebruiker zien dat de RLS is toegepast, aangezien er geen records worden geretourneerd die naar de Power Pages-website navigeren:

    Leeg rapport.

    Dit rapport bevat onderliggende gegevens, want wanneer u dit bekijkt vanuit Power BI Desktop zonder dat de RLS is toegepast, kunt u zien dat er in totaal meerdere records zijn, maar dat deze zijn gerelateerd aan een contactpersoonrecord.

  21. Om dit verder te testen, als we inloggen op de website met een gebruiker die een overeenkomstige contactpersoon heeft met gerelateerde gegevens, kunt u alleen de records zien die betrekking hebben op de ingelogde gebruiker op de webpagina:

    Lessenrapport op webpagina.

Overzicht

U hebt een Power BI-rapport of -dashboard ingesloten dat beveiliging op rijniveau gebruikt in uw Power Pages-website!

Het deelvenster Filteren wordt standaard uitgevouwen. Voor het verbergen van het filtervenster is JavaScript vereist. De stappen hiervoor vindt u hier: Een Power BI-rapport of -dashboard toevoegen aan een webpagina in een portal.