Brug Power BI SDK med tjenesteprincipalprofiler

I denne artikel forklares det, hvordan du bruger SDK'et med tjenesteprincipalprofiler. Der er to måder at oprette forbindelse mellem en Power BI-klient og en tjenesteprincipalprofil på. Du kan:

Når klienten er knyttet til en profil, kan du hente den aktuelle tjenesteprincipalprofil fra Power BI-klienten.

Opret en Power BI-klient med en tjenesteprincipalprofil

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

Når du opretter en Power BI-klient med profilobjekt-id'et, har X-PowerBI-profile-id alle API-kald, der bruger klienten, i anmodningsheaderen.

Eksempler:

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

Angiv profil ved API-anmodningsopkald

Du kan også angive profil-id'et i API-anmodningen ved hjælp customHeaders af egenskaben i API'ens overbelastede PowerBIClient-metode WithHttpMessagesAsync.

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); 

Eksempel

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 

I det foregående kodeeksempel er profilheaderen ikke en del af klientens standardheadere, fordi koden ikke tilføjer profilheaderen. Du skal angive profilheaderen for hver API-anmodning.

Sørg for at undgå dubletter. Hvis du f.eks. opretter en klient med et profilobjekt-id og derefter angiver headeren med API-anmodningen, resulterer det i uautoriserede fejl.

Hent den aktuelle tjenesteprincipalprofil fra Power BI-klienten

Hvis du vil hente den aktuelle tjenesteprincipalprofil fra SDK-klienten, skal du kalde GetServicePrincipalProfileObjectId.

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

Overvejelser og begrænsninger

Der er ingen understøttelse af tjenesteprincipalprofiler med Azure Analysis Services (AAS) i liveforbindelsestilstand.