Brug Power BI SDK med tjenesteprincipalprofiler

I denne artikel forklares det, hvordan du bruger SDK'et med tjenesteprincipalprofiler.

Note

Disse eksempler gælder for programmer, der har valgt den valgfri løsning med tjenesteprincipalprofiler. For nye multitenancy-løsninger skal du starte med dedikerede kundeserviceprincipaler ved hjælp af administreret identitet og sammenslutning, hvor kravene passer. Et profil-id er ikke et Microsoft Entra hoved-id og kan ikke bruges som identitet med Fabric REST API'er.

Hvis profilbegrænsninger begrænser din løsning, skal du se Erstat profiler for tjenesteprincipaler med tjenesteprincipaler. Ellers skal du fortsætte med at bruge de profilbaserede SDK-mønstre i denne artikel.

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.

F.eks.:

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 klient

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.

Du kan se identitetsstyring, API-kompatibilitet og andre begrænsninger under Begrænsninger for identitet og API.

Når du har overført en kunde til en dedikeret tjenesteprincipal, skal du godkende anmodninger ved hjælp af det pågældende kundeprograms adgangstoken. Konfigurer ikke et profilobjekt-id, eller send ikke overskriften til profilvalg for den migrerede rute. Det er ikke en overførsel at ændre overskriften alene: Den nye identitet skal først modtage de nødvendige tilladelser til arbejdsområdet og ressourcen. Se Erstat tjenesteprincipalprofiler med tjenesteprincipaler.

Multitenancy med dedikerede tjenesteprincipaler

Profiler for tjenesteprincipaler: En valgfri multitenancy-løsning

Profiler for tjenesteprincipaler i Power BI Embedded

Erstat profiler for tjenesteprincipaler med tjenesteprincipaler