结合使用 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) 不支持服务主体配置文件。