Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 :
- Cloud OLS
- Rapport en connexion active à Azure Analysis Services avec des rôles de sécurité au niveau de l’objet
- Rapport en connexion active à SQL Server Analysis Services avec des rôles de 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 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 :
- 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 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.
Contenu connexe
Sécurité au niveau des objets dans Azure Analysis Services
D’autres questions ? Essayez d’interroger la communauté Power BI