Implémentation de la sécurité au niveau des lignes dans des rapports paginés incorporés
S’APPLIQUE À : L’application est propriétaire des données L’utilisateur est propriétaire 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 :
- Configurez l’environnement pour filtrer le rapport
- Filtrez les données au niveau du rapport ou de la requête
- 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
Dans la fenêtre Propriétés du modèle sémantique, depuis le volet gauche, sélectionnez Filtre.
Dans le menu déroulant Expression, sélectionnez le paramètre que vous voulez utiliser pour le filtrage des données.
Sélectionnez le bouton de fonction Valeur.
Dans la fenêtre Expression, dans la liste Catégorie, sélectionnez Champs prédéfinis.
Dans la liste Élément, sélectionnez UserID, puis OK.
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.
Utilisation d’une requête
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.
Dans le champ Nom du paramètre, entrez @UserID puis, dans Valeur du paramètre, ajoutez [&UserID].
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.
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).