Partager via


Procédure : activer la sécurité au niveau des lignes dans Power BI sur Power Pages

Tout comme Power Pages est l’outil préféré pour étendre rapidement votre déploiement Microsoft Dataverse au public sous la forme d’un site Web, Power BI est l’outil préféré pour afficher des visualisations élégantes basées sur les données. La beauté de Power Platform réside dans sa capacité à combiner parfaitement les deux. Auparavant, pour afficher un rapport Power BI dans une page Web, les administrateurs devaient publier le rapport sur le Web et l’incorporer dans un iFrame. Même si des autorisations de pages étaient appliquées pour verrouiller la page avec le rapport, si une personne utilisait le lien pour incorporer le rapport, il était toujours possible d’accéder au rapport en dehors du site Web.

L’objectif de publier sur le Web est de permettre à toute personne sur le Web de consommer les données et même de partager à nouveau le rapport.

Avertissement 

Lorsque vous utilisez Publier sur le Web, toute personne sur Internet peut afficher votre rapport ou visuel publié. L’affichage ne nécessite aucune authentification. Il comprend l’affichage des données au niveau du détail agrégées par vos rapports. Avant de publier un rapport, vérifiez que vous voulez bien partager les données et les visualisations publiquement. Ne publiez pas d’informations confidentielles ou propriétaires. En cas de doute, vérifiez les stratégies de votre organisation avant la publication.

Avec Power BI Embedded, il est possible de fournir de manière contextuelle des composants Power BI aux utilisateurs, de transmettre des filtres automatiques à l’aide d’un paramètre de filtre et d’activer les fonctionnalités de sécurité au niveau des lignes pour permettre à une organisation de sécuriser réellement les données visibles par les utilisateurs et de n’afficher que ce qu’ils sont censés voir.

Note

La sécurité au niveau des lignes n’est prise en charge que pour Power BI Embedded.

Conditions préalables

Scénario

Vous travaillez pour un club de fitness collectif et utilisez Dataverse pour suivre les cours de fitness collectif et leur participation. Les instructeurs de fitness collectif ne résident pas dans votre locataire, car chacun est traité comme un sous-traitant. Votre site Web doit être utilisé par ces instructeurs de fitness collectif pour se connecter et voir un historique de leurs cours dispensés, de leur programme à venir et des taux de participants. Cependant, ils ne doivent pouvoir voir que les cours qu’ils ont eux-mêmes dispensés, et pas ceux de tout le monde.

Les instructeurs sont représentés par des enregistrements Contact dans Dataverse. Lorsqu’ils accèdent au site Web Power Pages, ils le font avec leur enregistrement Contact. Les données qu’ils doivent voir sur le site Web proviennent de notre table personnalisée Cours. La table Cours a une relation N*:1 avec un contact, car le formulaire de cours a un champ de recherche nommé Instructeur, qui est destiné à la table de contact.

Un enregistrement d’un cours dans Dataverse.

Pour que la sécurité au niveau des lignes fonctionne pour les utilisateurs Power Pages (contacts), il doit y avoir une relation directe entre le Contact et la table pour laquelle vous générez le rapport. Vous trouverez ci-dessous un exemple de modèle de données de ce scénario :

Relation du contact avec la table de cours.

Configurer un rapport ou un tableau de bord Power BI

  1. Ouvrez votre rapport ou tableau de bord Power BI dans Power BI Desktop.

    Rapport Power BI de l’instructeur.

  2. Nous devons modifier la relation entre le Contact et notre table (Cours dans ce scénario) pour utiliser le filtrage bidirectionnel. Pour ce faire, sélectionnez l’onglet Modèle à l’extrême gauche.

    Option de modèle dans Power BI.

  3. Sélectionnez la ligne qui relie votre table contact à la table contenant les données de votre rapport ; dans l’exemple de cas, il s’agit de vbd_class puisque nous générons un rapport sur les cours.

  4. Dans la fenêtre Modifier la relation, deux listes de sélection sont disponibles. En haut, choisissez la table pour laquelle vous générez le rapport (vbd_class) et sélectionnez la colonne contenant l’identifiant unique de l’enregistrement.

  5. Dans la liste de sélection en bas, sélectionnez la table contact et sélectionnez la colonne Contact.

  6. La cardinalité indique Plusieurs à un (*:1). Définissez la valeur Direction du filtrage croisé sur Les deux.

    Modification du lien entre les tables.

  7. Sélectionnez OK.

  8. Lorsque nous implémentons la sécurité au niveau des lignes (SNL), nous devons créer notre rôle. Dans le ruban supérieur Accueil, sélectionnez Gérer les rôles.

  9. Sous Rôles, sélectionnez Créer. Nommez le rôle. L’exemple de scénario utilise pagesuser.

  10. Dans la colonne Tables, sélectionnez contact.

  11. Complétez la zone de texte à droite avec l’expression DAX :

    [User Name] = username()

    Note

    Le champ [Username] réside dans la table de contact et n’est pas un nom d’utilisateur réel. Il fait référence à la table adx_externalidentity utilisée par Power Pages. Il comporte le GUID envoyé à Power BI dans la fonction username().

    Gérer les rôles dans Power BI.

  12. Sélectionnez Enregistrer, puis enregistrez votre fichier.

  13. Dans le ruban Accueil, sélectionnez Publier.

  14. Sélectionnez un espace de travail d’organisation dont vous êtes propriétaire et qui est utilisé par l’intégration Power Pages. Choisissez Sélectionner.

Configurer l’intégration de Power BI

Reportez-vous à Configurer l’intégration de Power BI pour activer votre site Web pour l’intégration de Power BI.

Incorporer un rapport Power BI

  1. Accédez à Power Pages. Recherchez le site Web Power Pages dans lequel vous allez incorporer le rapport, puis sélectionnez Modifier pour ouvrir le studio de conception Power Pages.

  2. Dans l’espace de travail Pages, sélectionnez la page Web dans laquelle vous souhaitez incorporer le rapport.

  3. Ajoutez une section au corps de la page Web.

  4. Choisissez l’icône Power BI lorsque vous êtes invité à choisir le composant que vous ajoutez dans la section.

    Ajouter une section à une page Web.

  5. Lorsque le composant remplit la section, sélectionnez Modifier Power BI dans le coin supérieur gauche.

  6. Sélectionnez Type d’accès. Les options sont les suivantes :

    1. Incorporer pour vos clients : vous permet de partager Power BI avec des utilisateurs externes sans licence Power BI ni identité Microsoft Entra.

    2. Incorporer pour votre organisation : utilise l’authentification Microsoft Entra pour partager le rapport depuis Power BI afin que les utilisateurs internes puissent le voir.

    3. Publier sur le Web : permet à toute personne sur Internet d’accéder au rapport et aux données.

    Avertissement

    Assurez-vous qu’il ne s’agit pas d’informations confidentielles !

    Informations supplémentaires : Publier sur le Web

    Choisissez Incorporer pour vos clients.

  7. Sélectionnez votre espace de travail contenant le rapport ou le tableau de bord, spécifiez le type Rapport ou Tableau de bord, puis choisissez le rapport ou le tableau de bord dans la dernière liste déroulante. S’il s’agit d’un rapport, vous devez spécifier la page que vous incorporez.

    Sélectionner un rapport.

  8. Pour voir le code qui a incorporé le rapport ou le tableau de bord, sélectionnez Modifier le code dans le coin supérieur droit du studio.

    Modifier le code.

  9. Lorsque vous y êtes invité, sélectionnez Ouvrir Visual Studio Code. Sur la gauche, sous PowerPages (espace de travail), le nom du site Web Power Pages comporte une liste déroulante vers la page Web. Dans cette section, vous voyez un fichier .css, un fichier .js et la copie HTML. Assurez-vous que vous êtes dans le fichier de copie HTML.

    VS Code.

  10. Sélectionnez CTRL + F et recherchez {% afin que nous puissions identifier rapidement le code contenant la référence à notre tableau de bord ou rapport Power BI. {% indique l’ouverture d’une balise, ce qui crée une logique pour le langage Liquid. Liquid est notre passerelle entre Dataverse et ce avec quoi les utilisateurs interagissent sur le site Web. Lorsque nous utilisons l’éditeur de studio pour incorporer des composants, une partie du code Liquid est automatiquement créée dans le code source de la page Web. Vous trouverez plus d’informations sur la balise Liquid Power BI ici : Balises Liquid Dataverse et Ajouter un rapport Power BI.

  11. La ligne complète du code Liquid que vous voyez ressemble à :

    {% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000000/ReportSection" %}
    
  12. Fermez l’onglet Visual Studio Code pour le Web.

  13. Dans le studio de conception Power Pages, sélectionnez le composant Power BI incorporé et choisissez Modifier Power BI.

  14. Faites défiler vers le bas pour basculer Appliquer les rôles sur vrai/oui.

  15. Dans la zone de texte Rôles, saisissez le nom du rôle que vous avez créé dans Power BI Desktop.

    Ajouter des rôles à un composant Power BI.

  16. Pour voir les modifications apportées au code qui a incorporé le rapport ou le tableau de bord, sélectionnez à nouveau Modifier le code dans le coin supérieur droit du studio.

  17. La ligne complète du code Liquid que vous voyez ressemble maintenant à :

    {% 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. Fermez l’onglet Visual Studio Code pour revenir au studio de conception.

  19. Prévisualisez le rapport ou le tableau de bord incorporé résultant dans votre navigateur en sélectionnant Synchroniser dans le coin supérieur droit, puis en sélectionnant Aperçu > Bureau.

  20. Pour tester le rapport, sans utilisateur connecté, vous pouvez voir que la sécurité au niveau des lignes a été appliquée, car aucun enregistrement n’est renvoyé en naviguant vers le site Web Power Pages :

    Rapport vide.

    Ce rapport contient des données sous-jacentes, car lorsque vous l’affichez à partir de Power BI Desktop sans la sécurité au niveau des lignes appliquée, vous pouvez voir qu’il existe plusieurs enregistrements, mais ils sont liés à un enregistrement de contact.

  21. Pour le tester davantage, si nous nous connectons au site Web avec un utilisateur qui a un contact correspondant avec des données associées, vous ne pouvez voir que les enregistrements liés à l’utilisateur connecté sur la page Web :

    Rapport de cours sur la page Web.

Synthèse

Vous avez incorporé un rapport ou un tableau de bord Power BI qui utilise la sécurité au niveau des lignes dans votre site Web Power Pages !

Le volet de filtre s’affiche par défaut. Le masquage du volet de filtre nécessite JavaScript. Les étapes à suivre sont documentées ici : Ajouter un rapport ou un tableau de bord Power BI à une page Web dans un portail.