Partage via


Automatiser les tâches de modèle sémantique et d’espace de travail Premium avec des principaux de service

Les principaux de service sont une inscription d'application Microsoft Entra ID que vous créez dans votre client pour effectuer des opérations de ressources et de niveau de service sans assistance. Il s’agit d’un type unique d’identité utilisateur avec un nom d’application, un ID d’application, un ID de locataire et une clé secrète client ou un certificat pour un mot de passe.

Power BI Premium utilise la même fonctionnalité de principal de service que Power BI Embedded. Pour plus d’informations, consultez Intégrer du contenu Power BI avec des principaux de services.

Dans Power BI Premium, vous pouvez utiliser des principaux de service avec le point de terminaison XMLA (Analyse XML) pour automatiser les tâches de gestion des modèles sémantiques telles que l’approvisionnement d’espaces de travail, le déploiement de modèles et l’actualisation du modèle sémantique avec :

  • PowerShell.
  • Azure Automation.
  • Azure Logic Apps.
  • Applications clientes personnalisées.

Seuls les nouveaux espaces de travail prennent en charge les connexions au point final XMLA à l’aide d’entités de service. Les espaces de travail classiques ne sont pas pris en charge. Un principal de service dispose uniquement des autorisations nécessaires pour effectuer des tâches sur les espaces de travail où il est affecté. Les autorisations sont attribuées via l’accès à l’espace de travail, tout comme les comptes UPN standard (nom d’utilisateur principal).

Pour effectuer des opérations d’écriture, la charge de travail des modèles sémantiques de la capacité doit avoir le point de terminaison XMLA activé pour les opérations en lecture-écriture. Les modèles sémantiques publiés à partir de Power BI Desktop doivent avoir la fonctionnalité de format de métadonnées améliorée activée .

Créer un principal de service

Les principaux de service sont créés en tant qu’inscription d’application dans le portail Azure ou à l’aide de PowerShell. Lorsque vous créez votre service principal, veillez à copier et à enregistrer séparément le nom de l'application, l'ID d'application (client), l'ID de répertoire (tenant) et le secret client. Pour savoir comment créer un principal de service, consultez :

Créer un groupe de sécurité Microsoft Entra

Par défaut, les principaux de service ont accès à tous les paramètres de locataire pour lesquels ils sont activés. Selon vos paramètres d’administrateur, l’accès peut inclure des groupes de sécurité spécifiques ou l’ensemble de l’organisation.

Pour restreindre l’accès du service principal à certains paramètres de locataire, vous pouvez autoriser l’accès à certains groupes de sécurité. Vous pouvez également créer un groupe de sécurité dédié pour les principaux de service et l’exclure des paramètres de locataire souhaités. Pour créer un groupe de sécurité et ajouter un principal de service, consultez Créer un groupe de base et ajouter des membres à l’aide de l’ID Microsoft Entra.

Activer des principaux de service

Avant de commencer à utiliser des principaux de service dans Power BI, un administrateur doit activer l’accès au principal de service dans le portail d’administration Power BI.

  1. Accédez au portail d’administration Power BI, puis sélectionnez Paramètres du locataire.
  2. Faites défiler jusqu’aux paramètres du développeur, puis développez les principaux de service pour appeler les API publiques Fabric.
  3. Sélectionnez Activé.
  4. Pour appliquer des autorisations à un groupe de sécurité, sélectionnez Groupes de sécurité spécifiques (recommandés).
  5. Entrez le nom du groupe.
  6. Sélectionnez Appliquer.

Accès à l’espace de travail

Pour que votre principal de service dispose des autorisations nécessaires pour effectuer des opérations de modèle sémantique et d’espace de travail Premium, vous devez ajouter le principal de service en tant que membre ou administrateur de l’espace de travail. L’utilisation de l’accès à l’espace de travail dans le service Power BI est décrite ici, mais vous pouvez également utiliser l’API REST Ajouter un utilisateur de groupe.

  1. Dans le service Power BI d’un espace de travail, sélectionnez Plus>d’accès à l’espace de travail.

    Capture d’écran montrant une liste d’espaces de travail. Plus l’icône et l’accès à l’espace de travail sont mis en surbrillance.

  2. Recherchez par nom d’application, puis ajoutez le principal de service en tant qu’administrateur ou membre à l’espace de travail.

Chaînes de connexion pour le point de terminaison XMLA

Après avoir créé un principal de service, activez les principaux de service pour votre locataire, ajoutez ensuite le principal de service à l’accès à l’espace de travail et utilisez-le comme identité utilisateur dans les chaînes de connexion avec le point de terminaison XMLA. La différence est que, au lieu des paramètres user id et password, vous spécifiez l'ID d'application, l'ID de locataire et le secret d'application.

Data Source=powerbi://api.powerbi.com/v1.0/myorg/<workspace name>; Initial Catalog=<dataset name>;User ID=app:<appId>@<tenantId>;Password=<app_secret>;

PowerShell

Ouvrez une session PowerShell pour exécuter l’exemple de code suivant.

Utilisation du module SQLServer

Dans l’exemple suivant, AppIdet TenantIdAppSecret sont utilisés pour authentifier une opération d’actualisation de modèle sémantique :

Param (
        [Parameter(Mandatory=$true)] [String] $AppId,
        [Parameter(Mandatory=$true)] [String] $TenantId,
        [Parameter(Mandatory=$true)] [String] $AppSecret
       )
$PWord = ConvertTo-SecureString -String $AppSecret -AsPlainText -Force

$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $AppId, $PWord

Invoke-ProcessTable -Server "powerbi://api.powerbi.com/v1.0/myorg/myworkspace" -TableName "mytable" -DatabaseName "mydataset" -RefreshType "Full" -ServicePrincipal -ApplicationId $AppId -TenantId $TenantId -Credential $Credential

Analysis Management Objects (AMO) et ADOMD.NET

Lorsque vous vous connectez avec des applications clientes et des applications web, vous pouvez utiliser les bibliothèques clientes AMO et ADOMD version 15.1.42.26 (juin 2020) et les packages installables ultérieurement à partir de NuGet pour prendre en charge les principaux de service dans les chaînes de connexion à l’aide de la syntaxe suivante : app:AppID et mot de passe ou cert:thumbprint.

Dans l’exemple suivant, appID et password les valeurs sont utilisées pour effectuer une opération d’actualisation de base de données de modèle :

string appId = "xxx";
string authKey = "yyy";
string connString = $"Provider=MSOLAP;Data source=powerbi://api.powerbi.com/v1.0/<tenant>/<workspacename>;Initial catalog=<datasetname>;User ID=app:{appId};Password={authKey};";
Server server = new Server();
server.Connect(connString);
Database db = server.Databases.FindByName("adventureworks");
Table tbl = db.Model.Tables.Find("DimDate");
tbl.RequestRefresh(RefreshType.Full);
db.Model.SaveChanges();