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.