Partager via


Implémentation de la sécurité au niveau des lignes dans des rapports paginés incorporés

S’APPLIQUE À : L’application possède des données L’utilisateur possède des données

Cet article explique comment incorporer un rapport paginé qui utilise la RLS (sécurité au niveau des lignes) dans votre application App Owns Data (l’application possède les données).

Notes

Cet article ne concerne que les clients App Owns Data.

Pour utiliser la RLS pour vos rapports paginés :

  1. Configurez l’environnement pour filtrer le rapport
  2. Filtrez les données au niveau du rapport ou de la requête
  3. Passez le paramètre configuré en utilisant un jeton d’incorporation

Prérequis

  • Cet article suppose que vous savez incorporer un rapport paginé Power BI. Il explique comment générer le jeton incorporé afin que le rapport affiche uniquement ce à quoi l’utilisateur est autorisé à accéder.

  • Les rapports paginés sont créés avec le moteur SQL Server Reporting Services, et non avec le moteur Power BI (Analysis Services), de sorte que le filtrage RLS est configuré dans Power BI Report Builder.

Configurer l’environnement

Pour appliquer la sécurité au niveau des lignes à un rapport paginé Power BI, utilisez le champ intégré UserID afin d’affecter un paramètre. Ce paramètre est utilisé pour filtrer ou interroger vos données.

Ensuite, transmettez l’ID utilisateur à l’API Jeton d’incorporation - Générer le jeton pour obtenir le jeton d’incorporation.

Utiliser UserID comme filtre au niveau du rapport ou de la requête

Vous pouvez utiliser UserId comme filtre ou dans une requête sur la source de données.

Filtrer les données

  1. Dans la fenêtre Propriétés du modèle sémantique, depuis le volet gauche, sélectionnez Filtre.

    Capture d’écran du filtre Power BI Report Builder.

  2. Dans le menu déroulant Expression, sélectionnez le paramètre que vous voulez utiliser pour le filtrage des données.

    Capture d’écran montrant la Couleur de valeur sélectionnée dans le menu Expression.

  3. Sélectionnez le bouton de fonction Valeur.

    Valeur du Générateur de rapports Power BI

  4. Dans la fenêtre Expression, dans la liste Catégorie, sélectionnez Champs prédéfinis.

    Capture d’écran montrant la fenêtre Expression avec les champs prédéfinis sélectionnés en tant que catégorie et ExecutionTime sélectionné en tant qu’élément.

  5. Dans la liste Élément, sélectionnez UserID, puis OK.

    UserID du Générateur de rapports Power BI

  6. Dans la fenêtre Propriétés du modèle sémantique, vérifiez que l’expression est votre paramètre sélectionné = UserID, puis sélectionnez OK.

    Propriétés du modèle sémantique Power BI Report Builder

Utilisation d’une requête

  1. Dans la fenêtre Propriétés du modèle sémantique, sélectionnez Paramètres dans le volet de navigation de gauche, puis Ajouter.

    Paramètres du Générateur de rapports Power BI

  2. Dans le champ Nom du paramètre, entrez @UserID puis, dans Valeur du paramètre, ajoutez [&UserID].

    Nom du paramètre du Générateur de rapports Power BI

  3. Dans le volet de gauche, sélectionnez Requête. Dans la requête, ajoutez le paramètre UserID comme partie de votre requête, puis sélectionnez OK.

    Remarque

    Dans la capture d’écran ci-dessous, le paramètre Color est utilisé comme exemple (WHERE FinalTable.Color = @UserID). Si nécessaire, vous pouvez créer une requête plus complexe.

    Modification de requêtes du Générateur de rapports Power BI

Générer un jeton d’intégration

Quand vous incorporez un rapport paginé pour vos clients, utilisez l’API GenerateTokenInGroup pour les rapports pour obtenir le jeton d’incorporation. Ce jeton peut également être utilisé pour filtrer certaines données du rapport paginé.

Vous ne pouvez générer qu’un jeton avec un principal de service. Vous ne pouvez pas générer de jeton en tant qu’utilisateur maître. Le principal de service doit disposer au minimum des autorisations de membre sur l’espace de travail dans le service Power BI. (Si le principal de service est un contributeur ou un lecteur, il ne peut pas générer de jeton).

Pour générer un jeton, affectez le champ username avec les informations que vous souhaitez afficher. Par exemple, dans un rapport paginé qui a un paramètre Color (Couleur), si vous entrez green (vert) dans le champ username, le jeton intégré limite les données incorporées aux données qui ont la valeur green dans la colonne Color.

{
 "reports": [
 {
  "id": "8d57615e-cfed-4d60-bd21-7dc05727193c"
 }
 ],
 "identities": [
 {
  "username": "green",
  "reports": [
  "8d57615e-cfed-4d60-bd21-7dc05727193c"
  ]
 }
 ]
}

Remarque

Si vous générez un jeton d’incorporation sans spécifier d’ID d’utilisateur, l’ID d’objet du principal de service est utilisé.

Observations et limitations

  • L’utilisateur maître n’est pas pris en charge avec les rapports paginés pour l’incorporation pour vos clients. L’utilisateur maître est pris en charge pour l’incorporation pour votre organisation.
  • Le principal de service doit disposer au minimum d’autorisations d’espace de travail de membre (les autorisations de lecteur ou de contributeur ne suffisent pas).

Générer un jeton d’intégration