Usar o SDK do Power BI com perfis de entidade de serviço

Este artigo explica como usar o SDK com perfis de entidade de serviço. Há duas maneiras de conectar um cliente do Power BI a um perfil de entidade de serviço. Pode:

Depois que o cliente estiver associado a um perfil, você poderá obter o perfil da entidade de serviço atual do cliente do Power BI.

Criar um cliente do Power BI com um perfil de entidade de serviço

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

Quando você cria um cliente do Power BI com a ID do objeto de perfil, cada chamada de API que usa o cliente tem o X-PowerBI-profile-id no cabeçalho da solicitação.

Por exemplo:

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

Definir perfil na chamada de solicitação de API

Como alternativa, você pode especificar o ID do perfil na solicitação da API usando a customHeaders propriedade no método WithHttpMessagesAsyncPowerBIClient sobrecarregado da 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); 

Por exemplo,

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 

No exemplo de código anterior, o cabeçalho de perfil não faz parte dos cabeçalhos padrão do cliente, porque o código não adiciona o cabeçalho de perfil. Você precisa especificar o cabeçalho do perfil com cada solicitação de API.

Certifique-se de evitar duplicações. Por exemplo, criar um cliente com um ID de objeto de perfil e, em seguida, especificar o cabeçalho com a solicitação de API resulta em erros não autorizados.

Obter o perfil atual da entidade de serviço do cliente Power BI

Para recuperar o perfil atual da entidade de serviço do cliente SDK, chame GetServicePrincipalProfileObjectId.

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

Considerações e limitações

Não há suporte para perfis de entidade de serviço com o Azure Analysis Services (AAS) no modo de conexão ao vivo.

Perfis da entidade de serviço no Power BI Embedded