Partager via


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 :

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 :

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.

Sécurité au niveau des objets dans Azure Analysis Services

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