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. Você 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 à API que usa o cliente tem 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 à API

Como alternativa, você pode especificar a ID do perfil na solicitação à API usando a propriedade customHeaders no método WithHttpMessagesAsync do PowerBIClient 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 do perfil não faz parte dos cabeçalhos padrão do cliente, pois o código não adiciona o cabeçalho do perfil. Você precisa especificar o cabeçalho do perfil com cada solicitação à API.

Evite duplicações. Por exemplo, criar um cliente com uma ID de objeto de perfil e especificar o cabeçalho com a solicitação à API resultará em erros por falta de autorização.

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

Para recuperar o perfil da entidade de serviço atual do cliente do 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 AAS (Azure Analysis Services) no modo de conexão dinâmica.

Próximas etapas