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

  • 版本 :2023.1(当前版本)

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

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

  • 创建具有配置文件对象 ID 的客户端

  • 在 API 请求调用中指定配置文件 ID

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

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

C#

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

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

例如,

HTTP

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。

C#

var powerBIclient = new PowerBIClient(credentials); 
var profileHeader = new Dictionarystring, Liststring>>();
profileHeader.Add("X-PowerBI-profile-id", new Liststring> { "81f24a6d-7ebb-4478-99c7-2c36f7870a26" });
var groups = await powerBIclient.Groups.GetGroupsWithHttpMessagesAsync(customHeaders: profileHeader);

例如,

HTTP

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

C#

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

注意事项和限制

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