Partager via


Sécurité au niveau des lignes (SNL) dans Power BI Report Server

La configuration de la sécurité au niveau des lignes (SNL) avec Power BI Report Server peut restreindre l’accès aux données pour certains utilisateurs. Les filtres limitent l’accès aux données au niveau des lignes, et vous pouvez définir des filtres dans des rôles. Si vous utilisez les autorisations par défaut dans Power BI Report Server, tout utilisateur disposant d’autorisations Serveur de publication ou Gestionnaire de contenu sur le rapport Power BI peut affecter des membres à des rôles pour ce rapport.

Vous configurez SNL pour les rapports importés dans Power BI avec Power BI Desktop. Vous pouvez également configurer SNL sur les rapports qui utilisent DirectQuery, comme SQL Server. Gardez à l’esprit que SNL n’est pas respectée si votre connexion DirectQuery utilise l’authentification intégrée pour les lecteurs de rapports. Pour les connexions actives Analysis Services, la sécurité au niveau des lignes doit être configurée sur le modèle local. L’option de sécurité ne s’affiche pas pour les jeux de données d’une connexion active.

Définir des rôles et des règles dans Power BI Desktop

Vous pouvez définir des rôles et des règles dans Power BI Desktop. Avec cet éditeur, vous pouvez basculer entre l’utilisation de l’interface déroulante par défaut et une interface DAX. Lorsque vous publiez sur Power BI, les définitions de rôles sont également publiées.

Pour définir des rôles de sécurité :

  1. Importez les données dans votre rapport Power BI Desktop ou configurez une connexion DirectQuery.

    Notes

    Vous ne pouvez pas définir de rôles dans Power BI Desktop pour les connexions actives Analysis Services. Vous devez le faire dans le modèle Analysis Services.

  2. Sous l’onglet Modélisation, sélectionnez Gérer les rôles.

    Capture d’écran de l’onglet Modélisation, mettant en évidence l’option Gérer les rôles.

  3. Dans la fenêtre Gérer les rôles, sélectionnez Nouveau pour créer un rôle.

    Capture d’écran de la fenêtre Gérer les rôles, mettant en évidence le bouton Créer un nouveau rôle.

  4. Sous Rôles, fournissez un nom pour le rôle, puis sélectionnez Entrée.

    Capture d’écran de la fenêtre Gérer les rôles, mettant en évidence le fait de renommer un rôle.

    Remarque

    Vous ne pouvez pas définir un rôle avec une virgule, par exemple London,ParisRole.

  5. Sous Sélectionner des tables, sélectionnez la table à laquelle vous souhaitez appliquer un filtre de sécurité au niveau des lignes.

  6. Sous Filtrer les données, utilisez l’éditeur par défaut pour définir vos rôles. Les expressions créées retournent une valeur true ou false.

    Capture d’écran de l’éditeur par défaut de la fenêtre Gérer les rôles pour définir la sécurité au niveau des lignes.

    Remarque

    Tous les filtres de sécurité au niveau des lignes pris en charge dans Power BI ne peuvent pas être définis à l’aide de l’éditeur par défaut. Les limitations incluent les expressions qui ne peuvent aujourd’hui être définies qu’à l’aide de DAX, y compris des règles dynamiques comme username() ou userprincipalname(). Pour définir des rôles à l’aide de ces filtres, basculez vers l’éditeur DAX.

  7. Si vous le souhaitez, sélectionnez Basculer vers l’éditeur DAX pour passer à l’éditeur DAX afin de définir votre rôle. Les expressions DAX renvoient une valeur true ou false. Par exemple : [Entity ID] = “Value”. L’éditeur DAX est complet avec la saisie semi-automatique pour les formules (intellisense). Vous pouvez sélectionner la coche au-dessus de la zone d’expression pour valider l’expression et la touche X au-dessus de la zone d’expression pour rétablir les modifications.

    Capture d’écran de la fenêtre Gérer les rôles, mettant en évidence un exemple d’expression DAX.

    Notes

    Vous pouvez utiliser username() dans cette expression. N’oubliez pas que username() est au format DOMAINE\nom_utilisateur dans Power BI Desktop. Dans le service Power BI et Power BI Report Server, c’est le nom d’utilisateur principal (UPN) de l’utilisateur qui est employé. En outre, dans cette zone d’expression, utilisez des virgules pour séparer les arguments de fonction DAX, même si vous utilisez des paramètres régionaux qui utilisent normalement des séparateurs de points-virgules, tels que le français ou l’allemand.

  8. Vous pouvez revenir à l’éditeur par défaut en sélectionnant Basculer vers l’éditeur par défaut. Toutes les modifications apportées dans l’une ou l’autre interface de l’éditeur sont conservées lors du changement d’interface dans la mesure du possible. Lorsque vous utilisez l’éditeur DAX pour définir un rôle qui ne peut pas être défini dans l’éditeur par défaut et que vous tentez de basculer vers l’éditeur par défaut, un avertissement s’affiche vous indiquant que le changement d’éditeur peut provoquer la perte de certaines informations. Pour conserver ces informations, sélectionnez Annuler et poursuivez la modification de ce rôle dans l’éditeur DAX.

    Capture d’écran de la boîte de dialogue confirmant que vous souhaitez basculer vers l’éditeur par défaut.

    Remarque

    Dans cette zone d’expression, utilisez des virgules pour séparer les arguments de fonction DAX, même si vous utilisez des paramètres régionaux qui utilisent normalement des séparateurs de points-virgules, tels que le français ou l’allemand.

  9. Cliquez sur Enregistrer.

Vous ne pouvez pas attribuer d’utilisateurs à un rôle dans Power BI Desktop. Vous devez le faire dans le service Power BI. Dans Power BI Desktop, vous pouvez activer la sécurité dynamique en utilisant les fonctions DAX username() ou userprincipalname() et en configurant les relations appropriées.

Filtrage croisé bidirectionnel

Par défaut, le filtrage de la sécurité au niveau des lignes utilise des filtres unidirectionnels, et ce que les relations soient unidirectionnelles ou bidirectionnelles. Vous pouvez activer manuellement le filtrage croisé bidirectionnel avec la sécurité au niveau des lignes.

  • Sélectionnez la relation et cochez la case Appliquer le filtre de sécurité dans les deux directions.

    Appliquer un filtre de sécurité

Cochez cette case en cas d’implémentation d’une sécurité dynamique au niveau des lignes basée sur le nom d’utilisateur ou l’ID de connexion.

Pour en savoir plus, consultez Filtrage croisé bidirectionnel avec DirectQuery dans Power BI Desktop et le livre blanc techniqueSécurisation du modèle sémantique BI tabulaire.

Valider les rôles dans Power BI Desktop

Après avoir créé vos rôles, vous pouvez tester les résultats de ces rôles dans Power BI Desktop.

  1. Sous l’onglet Modélisation, sélectionnez Voir comme.

    Capture d’écran de l’onglet Modélisation, mettant en évidence l’option Afficher comme.

    Dans la fenêtre Afficher comme rôles qui s’ouvre, vous voyez les rôles que vous avez créés.

    Capture d’écran de la fenêtre Afficher comme rôles avec l’option Aucun sélectionnée.

  2. Sélectionnez un rôle que vous avez créé. Ensuite, choisissez OK pour appliquer ce rôle.

    Le rapport affiche les données pertinentes pour ce rôle.

  3. Vous pouvez également sélectionner Autre utilisateur et indiquer un utilisateur spécifique.

    Capture d’écran de la fenêtre Afficher comme rôles avec exemple d’utilisateur entré.

    Il est préférable de fournir le nom d’utilisateur principal (UPN), car celui-ci est utilisé par le service Power BI et Power BI Report Server.

    Dans Power BI Desktop, Autre utilisateur montre des résultats différents uniquement si vous utilisez la sécurité dynamique basée sur vos expressions DAX. Dans ce cas, vous devez inclure le nom d'utilisateur ainsi que le rôle.

  4. Sélectionnez OK.

    Le rapport s’affiche en fonction de ce que les filtres RLS permettent à l’utilisateur de voir.

    Notes

    La fonctionnalité Afficher comme rôles ne fonctionne pas pour les modèles DirectQuery avec l’authentification unique (SSO) activée.

Ajouter des membres aux rôles

Après avoir enregistré votre rapport dans Power BI Report Server, vous pouvez gérer la sécurité et ajouter ou supprimer des membres sur le serveur. Seuls les utilisateurs disposant d’autorisations Serveur de publication ou Gestionnaire de contenu sur le rapport ont accès à la sécurité au niveau des lignes (option non grisée).

Si le rapport n’a pas les rôles dont il a besoin, vous devez l’ouvrir dans Power BI Desktop, ajouter des rôles ou les modifier, puis le réenregistrer dans Power BI Report Server.

  1. Dans Power BI Desktop, enregistrez le rapport dans Power BI Report Server. Vous devez utiliser la version de Power BI Desktop pour Power BI Report Server.

  2. Dans Power BI Report Server, sélectionnez les points de suspension ( ... ) en regard du rapport.

  3. Sélectionnez Gérer>Sécurité au niveau des lignes.

    Gérer la sécurité au niveau des lignes

    Dans la page Sécurité au niveau des lignes, ajoutez les membres à un rôle que vous avez créé dans Power BI Desktop.

  4. Pour ajouter un membre, sélectionnez Ajouter un membre.

  5. Entrez l’utilisateur ou le groupe dans la zone de texte au format Nom d’utilisateur (DOMAINE\utilisateur), puis sélectionnez les rôles à lui attribuer. Le membre doit faire partie de votre organisation.

    Ajouter un membre au rôle

    Selon la façon dont vous avez configuré Active Directory, la saisie ici du nom d’utilisateur principal fonctionne également. Dans ce cas, le serveur de rapports affiche le nom d’utilisateur correspondant dans la liste.

  6. Cliquez sur OK pour appliquer vos changements.

  7. Pour supprimer des membres, cochez la case en regard de leur nom et sélectionnez Supprimer. Vous pouvez supprimer plusieurs membres à la fois.

    Supprimer des membres

username() et userprincipalname()

Vous pouvez utiliser les fonctions DAX username() et userprincipalname() dans votre jeu de données. Dans Power BI Desktop, celles-ci peuvent être utilisées dans des expressions. Quand vous publiez votre modèle, Power BI Report Server les utilise.

Dans Power BI Desktop, username() retourne un utilisateur au format DOMAINE\Utilisateur tandis que userprincipalname() le retourne au format user@contoso.com.

Dans Power BI Report Server, username() et userprincipalname() retournent le nom d’utilisateur principal (UPN) de l’utilisateur, celui-ci étant similaire à une adresse e-mail.

Si vous utilisez une authentification personnalisée dans Power BI Report Server, le format de nom d’utilisateur que vous avez configuré pour les utilisateurs est retourné.

Considérations et limitations

Voici les limites actuelles de la sécurité au niveau des lignes sur les modèles Power BI.

Les utilisateurs dont les rapports utilisaient la fonction DAX username() constatent désormais un nouveau comportement dans lequel le nom d’utilisateur principal (UPN) est retourné, SAUF en cas d’utilisation de DirectQuery avec sécurité intégrée. Étant donné que SNL n’est pas respectée dans ce scénario, le comportement dans ce dernier est inchangé.

Vous pouvez définir SNL uniquement sur les jeux de données créés avec Power BI Desktop. Pour activer SNL pour les jeux de données créés avec Excel, vous devez d’abord convertir vos fichiers au format PBIX (Power BI Desktop). Découvrez-en plus sur la conversion des fichiers Excel.

Seules les connexions ETL (extraction, transformation et chargement) et DirectQuery utilisant des informations d’identification stockées sont prises en charge. Les connexions actives à Analysis Services et DirectQuery utilisant l’authentification intégrée sont gérées dans la source de données sous-jacente.

Si vous utilisez la sécurité intégrée avec DirectQuery, vos utilisateurs peuvent constater les comportements suivants :

  • SNL est désactivée et toutes les données sont retournées.
  • Les utilisateurs ne peuvent pas mettre à jour leurs attributions de rôle et obtiennent une erreur dans la page Gérer de SNL.
  • Pour la fonction DAX username, vous continuez à recevoir le nom d’utilisateur au format DOMAINE\UTILISATEUR.

Les auteurs de rapport ne sont pas autorisés à afficher les données de rapport dans Power BI Report Server tant qu’ils ne se sont pas attribué les rôles correspondants après le chargement du rapport.

Les attributions de rôles par le biais d’appartenances à un groupe sont uniquement prises en charge lorsque Power BI Report Server est configuré pour s’exécuter avec une authentification NTLM ou Kerberos. Pour les serveurs qui utilisent une authentification personnalisée ou Windows Basic, des rôles doivent être explicitement affectés aux utilisateurs.

FORUM AUX QUESTIONS

Puis-je créer ces rôles pour des sources de données Analysis Services ?

Oui, à condition que vous ayez importé les données dans Power BI Desktop. Si vous utilisez une connexion active, vous ne pouvez pas configurer SNL au sein du service Power BI. SNL se définit localement dans le modèle Analysis Services.

Puis-je utiliser SNL pour limiter les colonnes ou les mesures accessibles par mes utilisateurs ?

Non. Si un utilisateur a accès à une ligne particulière de données, il peut voir toutes les colonnes de données pour cette ligne.

Avec SNL, puis-je masquer les données détaillées tout en donnant accès aux données résumées dans les visuels ?

Non, vous sécurisez des lignes de données individuelles, mais les utilisateurs peuvent toujours voir les détails ou les données résumées.

Puis-je ajouter de nouveaux rôles dans Power BI Desktop si j’ai déjà des rôles et des membres attribués à ceux-ci ?

Oui. Si vous avez déjà défini des rôles et que vous leur avez attribué des membres dans Power BI Report Server, vous pouvez créer d’autres rôles et republier votre rapport sans aucune incidence sur vos attributions actuelles.

D’autres questions ? Essayez d’interroger la communauté Power BI