结合使用 Power BI SDK 和服务主体配置文件

本文介绍如何结合使用 SDK 和服务主体配置文件。 有两种方法可将 Power BI 客户端连接到服务主体配置文件。 可以:

客户端与配置文件关联后,可从 Power BI 客户端获取当前服务主体配置文件

使用服务主体配置文件创建 Power BI 客户端

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

创建具有配置文件对象 ID 的 Power BI 客户端时,使用该客户端的每个 API 调用在请求标头中具有 X-PowerBI-profile-id

例如:

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

调用 API 请求时设置配置文件

或者,可以使用 API 的重载 PowerBIClient 方法 WithHttpMessagesAsync 中的 customHeaders 属性在 API 请求中指定配置文件 ID。

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); 

例如,

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 

在前面的代码示例中,配置文件标头不是客户端默认标头的一部分,因为代码不会添加该配置文件标头。 需要在每个 API 请求中指定配置文件标头。

请确保避免重复。 例如,创建包含配置文件对象 ID 的客户端并在 API 请求中指定标头会导致未经授权的错误。

从 Power BI 客户端获取当前服务主体配置文件

要从 SDK 客户端检索当前服务主体配置文件,请调用 GetServicePrincipalProfileObjectId

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

注意事项和限制

实时连接模式下的 Azure Analysis Services (AAS) 不支持服务主体配置文件。

后续步骤