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:
- Criar um cliente com um ID de objeto de perfil
- Especifique o ID do perfil na chamada de solicitação de API
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 WithHttpMessagesAsync
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 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.