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 à :✅ Analyses incorporées Power BI pour vos clients (l’application possède les données)
Cet article explique comment intégrer du contenu Power BI avec une connexion active à un modèle localAnalysis Services Tabular dans une application Power BI intégrée standard de type « app owns data ». Cet article s’applique à tous les modèles SSAS de connexion active, qu’ils implémentent ou non la sécurité au niveau des lignes.
Dans ce scénario, la base de données se trouve sur le modèle SSAS (local) et le moteur Power BI s’y connecte par le biais d’une passerelle. Les rôles de sécurité (SNL) et les autorisations, le cas échéant, sont définis dans le modèle SSAS et non dans Power BI Desktop.
À qui s’adresse cet article ?
Cet article s’adresse principalement aux fournisseurs de logiciel indépendants qui disposent déjà d’une configuration de base de données (SSAS) locale (avec ou sans SNL) et souhaitent incorporer du contenu directement à partir de celle-ci.
Configuration spécifique à un fournisseur de logiciel indépendant
La sécurité locale au niveau des lignes n’est disponible qu’avec une connexion en direct, mais vous pouvez créer une connexion en direct à n’importe quelle base de données, qu’elle mette en œuvre ou non la RLS. Cela comprend :
- Bases de données sans rôles RLS configurés
- Bases de données avec des membres qui appartiennent à un ou plusieurs rôles
- Bases de données avec des rôles de sécurité statiques ou dynamiques
Pour incorporer un rapport à partir d’un modèle SSAS, vous devez effectuer les actions suivantes :
Configurer la passerelle
Ajouter une connexion de source de données à la passerelle SSAS
Entrez le nom de la source de données, son type, le serveur, la base de données, un nom d’utilisateur et un mot de passe reconnu par l’annuaire Active Directory.
Pour plus d’informations sur la création et la gestion d’une passerelle, consultez Ajouter ou supprimer une source de données de type passerelle.
Accorder des autorisations au principal du service ou à l’utilisateur maître sur la passerelle
L’utilisateur qui génère le jeton intégré a également besoin de l’une des autorisations suivantes :
Autorisations d’administrateur de passerelle
Autorisation d’usurpation d’identité de la source de données (ReadOverrideEffectiveIdentity)
Les utilisateurs disposant de l’autorisation d’usurpation d’identité (dérogation) ont une icône en forme de clé à côté de leur nom.
Suivez ces instructions pour accorder des autorisations de passerelle à votre utilisateur maître, principal de service ou profil de principal de service.
Effectuez l’une des opérations suivantes :
Associer les noms d’utilisateur
Si les noms d’utilisateur ne sont pas les mêmes dans l’annuaire local et l’annuaire Microsoft Entra et que vous souhaitez voir les données dans le portail, vous devez créer une table de mappage d’utilisateur qui mappe chaque utilisateur ou rôle dans Microsoft Entra ID aux utilisateurs de la base de données locale. Pour obtenir des instructions sur le mappage de noms d’utilisateur, consultez Remappage manuel des noms d’utilisateur
Pour plus d’informations, consultez Mapper des noms d’utilisateurs pour les sources de données Analysis Services.
Créer une connexion active
Quand l’environnement est configuré, créez une connexion active entre Power BI Desktop et le serveur SQL et créez votre rapport.
Démarrez Power BI Desktop et sélectionnez Obtenir les données>Base de données.
Dans la liste des sources de données, sélectionnez Base de données SQL Server Analysis Services, puis Connexion.
Renseignez les détails de l’instance tabulaire Analysis Services et sélectionnez Connexion directe. Sélectionnez ensuite OK.
Générer un jeton d’intégration
Pour incorporer votre rapport dans le cadre du scénario d’incorporation pour vos clients, générez un jeton intégré qui transfère l’identité effective à Power BI. Toutes les connexions en direct aux moteurs AS nécessitent une identité effective, même si aucun RLS n’est implémenté.
Si aucune RLS n’est mise en place, seul l’Admin a accès à la base de données. Vous devez donc utiliser l’Admin en tant qu’identité effective.
Les informations nécessaires pour générer un jeton d’intégration dépendent selon que vous êtes connecté à Power BI avec un principal de service ou en tant qu’utilisateur principal, ainsi que du fait que la base de données utilise ou non la sécurité au niveau des lignes (RLS).
- Token d’intégration de l’utilisateur principal
- Jeton d’incorporation de principal du service ou de profil de principal du service
Pour générer le jeton intégré, fournissez les informations suivantes :
- Nom d’utilisateur (facultatif sans SNL ; obligatoire avec la SNL) : nom d’utilisateur valide reconnu par la source SSAS, qui sera utilisé comme identité effective. Si la base de données n’utilise pas RLS et qu’aucun nom d’utilisateur n’est fourni, les informations d’identification de l’utilisateur maître sont utilisées.
- Rôle (obligatoire pour RLS) - Le rapport n’affichera des données que si l’identité effective est membre du rôle.
Exemple :
public EmbedToken GetEmbedToken(Guid reportId, IList<Guid> datasetIds, [Optional] Guid targetWorkspaceId)
{
PowerBIClient pbiClient = this.GetPowerBIClient();
// Define the user identity and roles. Use one of the following:
var rlsidentity = new EffectiveIdentity( //If no RLS
username: "Domain\\Username", // can also be username@contoso.com
datasets: new List<string>{ datasetId.ToString()}
)
var rlsidentity = new EffectiveIdentity( // If RLS
username: "username@contoso.com",
roles: new List<string>{ "MyRole" },
datasets: new List<string>{ datasetId.ToString()}
)
// Create a request for getting an embed token for the rls 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> { rlsIdentity }
);
// Generate an embed token
var embedToken = pbiClient.EmbedToken.GenerateToken(tokenRequest);
return embedToken;
}
Vous pouvez maintenant incorporer votre rapport à votre application. Votre rapport filtrera les données en fonction des autorisations de l’utilisateur qui accède au rapport.
Considérations et limitations
CustomData n’est pas pris en charge.