Sécurité au niveau des objets

S’applique à :✅ Power BI analytique embarquée pour vos clients (App-owns-data)

Cet article explique comment intégrer du contenu Power BI qui utilise OLS (sécurité au niveau de l’objet) dans un scénario Power BI App owns data (intégration 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 suppose que vous disposez d’un rapport qui utilise OLS et que vous souhaitez l’intégrer à 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 d’intégration pour les éléments utilisant OLS est le même que pour RLS 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 contenant des informations sensibles à l’aide d’OLS (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 des modèles OLS.

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

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