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 :
- Créer un client avec un ID d’objet de profil.
- Spécifier l’ID de profil dans l’appel de requête d’API.
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-id
dans 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 WithHttpMessagesAsync
PowerBIClient 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.