De Power BI SDK gebruiken met service-principal-profielen
In dit artikel wordt uitgelegd hoe u de SDK gebruikt met service-principal-profielen. Er zijn twee manieren om een Power BI-client te verbinden met een service-principalprofiel. U kunt:
Zodra de client is gekoppeld aan een profiel, kunt u het huidige profiel van de service-principal ophalen uit de Power BI-client.
Een Power BI-client maken met een service-principal-profiel
var profileObjectId = new Guid("81f24a6d-7ebb-4478-99c7-2c36f7870a26");
var powerBIclient = new PowerBIClient(credentials, profileObjectId: profileObjectId);
Wanneer u een Power BI-client maakt met de profielobject-id, heeft elke API-aanroep die gebruikmaakt van de client de X-PowerBI-profile-id
aanvraagheader.
Bijvoorbeeld:
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
Profiel instellen bij api-aanvraagoproep
U kunt ook de profiel-id in de API-aanvraag opgeven met behulp van de customHeaders
eigenschap in de overbelaste PowerBIClient-methode WithHttpMessagesAsync
van de 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);
Bijvoorbeeld:
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
In het voorgaande codevoorbeeld maakt de profielheader geen deel uit van de standaardkopteksten van de client, omdat de code de profielheader niet toevoegt. U moet de profielheader opgeven bij elke API-aanvraag.
Zorg ervoor dat u duplicaties vermijdt. Het maken van een client met een profielobject-id en vervolgens het opgeven van de header met de API-aanvraag resulteert in niet-geautoriseerde fouten.
Het huidige service-principalprofiel ophalen uit de Power BI-client
Als u het huidige service-principalprofiel van de SDK-client wilt ophalen, roept u het aan GetServicePrincipalProfileObjectId
.
var profileObjectId = new Guid("81f24a6d-7ebb-4478-99c7-2c36f7870a26");
var powerBIclient = new PowerBIClient(credentials, profileObjectId: profileObjectId);
var currentProfileObjectId = powerBIclient.GetServicePrincipalProfileObjectId();
Overwegingen en beperkingen
Er is geen ondersteuning voor service-principal-profielen met Azure Analysis Services (AAS) in de liveverbindingsmodus.