Condividi tramite


Usare Power BI SDK con i profili di entità servizio

Questo articolo illustra come usare l'SDK con i profili dell'entità servizio. Esistono due modi per connettere un client di Power BI a un profilo dell'entità servizio. È possibile:

Dopo aver associato il client a un profilo, è possibile ottenere il profilo dell'entità servizio corrente dal client Power BI.

Creare un client di Power BI con un profilo entità servizio

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

Quando si crea un client Power BI con l'ID oggetto del profilo, ogni chiamata API che usa il client include X-PowerBI-profile-id nell'intestazione della richiesta.

Ad esempio:

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

Impostare il profilo nella chiamata di richiesta API

In alternativa, è possibile specificare l'ID profilo nella richiesta API usando la proprietà customHeaders nel metodo PowerBIClient di overload dell'API 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); 

ad esempio:

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 

Nell'esempio di codice precedente, l'intestazione del profilo non è parte delle intestazioni predefinite del client, perché il codice non aggiunge l'intestazione del profilo. È necessario specificare l'intestazione del profilo con ogni richiesta API.

Assicurarsi di evitare duplicazioni. Ad esempio, la creazione di un client con un ID oggetto profilo e la specifica dell'intestazione con la richiesta API generano di autorizzazione mancante.

Ottenere il profilo dell'entità servizio corrente dal client Power BI

Per recuperare il profilo dell'entità servizio corrente dal client SDK, chiamare GetServicePrincipalProfileObjectId.

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

Considerazioni e limitazioni

Non è disponibile alcun supporto per i profili dell'entità servizio con Azure Analysis Services (AAS) in modalità di connessione dinamica.

Profili entità servizio in Power BI Embedded