Sécurité au niveau des objets
S’APPLIQUE À : L’application est propriétaire des données L’utilisateur est propriétaire des données
Cet article explique comment incorporer du contenu Power BI qui utilise la sécurité au niveau de l’objet dans un scénario d’application Power BI l’application possède les données (incorporé pour vos clients).
Dans ce scénario, l’éditeur de logiciels indépendant dispose d’une table contenant des données sensibles et des métadonnées qu’il souhaite masquer pour les clients du rapport.
Pour plus d’informations sur OLS, accédez à Sécurité au niveau de l’objet (OLS).
Prérequis
Cet article part du principe que vous disposez d’un rapport qui utilise la sécurité au niveau de l’objet et que vous souhaitez l’incorporer dans une application. Pour créer un rapport qui utilise la sécurité au niveau des objets, consultez Sécurité au niveau des objets (OLS).
Le rapport peut être créé à l’aide de l’un des modèles suivants :
- Sécurité au niveau de l’objet dans le cloud
- Rapport connecté en direct à Azure Analysis Services avec des rôles Sécurité au niveau de l’objet
- Rapport connecté en direct à SQL Server Analysis Services avec des rôles Sécurité au niveau de l’objet
Incorporer un rapport qui utilise la sécurité au niveau de l’objet
Le processus de génération de jetons incorporés pour les éléments qui utilisent la sécurité au niveau de l’objet est le même que pour la sécurité au niveau des lignes statique. Vous avez besoin du rôle et du nom d’utilisateur.
Si le rapport que vous souhaitez incorporer utilise l’un des scénarios suivants, vous devrez peut-être effectuer des étapes supplémentaires :
- Génération de jetons OLS cloud
- Génération de jetons SQL Server Analysis Services (SSAS)
- Génération de jetons Microsoft Entra ID
L’exemple suivant montre comment générer un jeton pour masquer une table avec des informations sensibles à l’aide de la sécurité au niveau de l’objet :
public EmbedToken GetEmbedToken(Guid reportId, IList<Guid> datasetIds, [Optional] Guid targetWorkspaceId)
{
PowerBIClient pbiClient = this.GetPowerBIClient();
// Defines the user identity and roles.
var olsIdentity = new EffectiveIdentity(
username: "All",
roles: new List<string>{ "SensitiveTableOLS" }, // Role created to hide a table that has sensitive information
datasets: new List<string>{ datasetId.ToString()}
);
// Create a request for getting an embed token for the OLS identity defined above
var tokenRequest = new GenerateTokenRequestV2(
reports: new List<GenerateTokenRequestV2Report>() { new GenerateTokenRequestV2Report(reportId) },
datasets: datasetIds.Select(datasetId => new GenerateTokenRequestV2Dataset(datasetId.ToString())).ToList(),
targetWorkspaces: targetWorkspaceId != Guid.Empty ? new List<GenerateTokenRequestV2TargetWorkspace>() { new GenerateTokenRequestV2TargetWorkspace(targetWorkspaceId) } : null,
identities: new List<EffectiveIdentity> { olsIdentity }
);
// Generate an embed token
var embedToken = pbiClient.EmbedToken.GenerateToken(tokenRequest);
return embedToken;
}
Observations et limitations
Voir les restrictions en lien avec les modèles de sécurité au niveau de l’objet.
Contenu connexe
Sécurité au niveau des objets dans Azure Analysis Services
D’autres questions ? Essayez d’interroger la communauté Power BI