Partager via


Utiliser le SDK Power BI avec des profils de principal de service

Cet article explique comment utiliser le SDK avec des profils de principal de service. Il existe deux façons de connecter un client Power BI à un profil de principal de service. Vous pouvez :

Une fois que le client est associé à un profil, vous pouvez obtenir le profil de principal de service actuel à partir du client Power BI.

Créer un client Power BI avec un profil de principal de service

var profileObjectId = new Guid("81f24a6d-7ebb-4478-99c7-2c36f7870a26"); 
var powerBIclient = new PowerBIClient(credentials, profileObjectId: profileObjectId);

Lorsque vous créez un client Power BI avec l’ID d’objet de profil, chaque appel d’API qui utilise le client est émis avec le X-PowerBI-profile-iddans l’en-tête de requête.

Par exemple :

GET https://powerbiapi.analysis-df.windows.net/v1.0/myorg/groups


Authorization: Bearer eyJ0eXAiO.....5U_g
X-PowerBI-profile-id: 81f24a6d-7ebb-4478-99c7-2c36f7870a26

Définir un profil sur l’appel de requête d’API

Vous pouvez également spécifier l’ID de profil dans la requête d’API à l’aide de la propriété customHeaders dans la méthode WithHttpMessagesAsyncPowerBIClient surchargée de l’API.

var powerBIclient = new PowerBIClient(credentials); 
var profileHeader = new Dictionary<string, List<string>>(); 
profileHeader.Add("X-PowerBI-profile-id", new List<string> { "81f24a6d-7ebb-4478-99c7-2c36f7870a26" }); 
var groups = await powerBIclient.Groups.GetGroupsWithHttpMessagesAsync(customHeaders: profileHeader); 

Par exemple,

GET https://powerbiapi.analysis-df.windows.net/v1.0/myorg/groups 

Authorization: Bearer eyJ0eXAiO.....5U_g 
X-PowerBI-profile-id: 81f24a6d-7ebb-4478-99c7-2c36f7870a26 

Dans l’exemple de code précédent, l’en-tête de profil ne fait pas partie des en-têtes par défaut du client, car le code n’ajoute pas l’en-tête de profil. Vous devez spécifier l’en-tête de profil avec chaque requête d’API.

Veillez à éviter les doublons. Par exemple, la création d’un client avec un ID d’objet de profil, puis la spécification de l’en-tête avec la requête d’API entraîne des erreurs de refus d’autorisation.

Obtenir le profil de principal de service actuel à partir du client Power BI

Pour récupérer le profil de principal de service actuel à partir du client SDK, appelez GetServicePrincipalProfileObjectId.

var profileObjectId = new Guid("81f24a6d-7ebb-4478-99c7-2c36f7870a26"); 
var powerBIclient = new PowerBIClient(credentials, profileObjectId: profileObjectId); 
var currentProfileObjectId = powerBIclient.GetServicePrincipalProfileObjectId(); 

Considérations et limitations

Les profils de principal de service ne sont pas pris en charge avec Azure Analysis Services (AAS) en mode de connexion active.

Étapes suivantes