Поделиться через


Использование пакета SDK для Power BI с профилями субъекта-службы

В этой статье объясняется, как использовать пакет SDK с профилями субъектов-служб. Существует два способа подключения клиента Power BI к профилю субъекта-службы. Вы можете:

После связывания клиента с профилем можно получить текущий профиль субъекта-службы из клиента Power BI.

Создание клиента Power BI с профилем субъекта-службы

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

При создании клиента 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 с помощью customHeaders свойства в перегруженном методе WithHttpMessagesAsyncPowerBIClient 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); 

Например, примененная к объекту директива

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 приводит к несанкционированным ошибкам.

Получение текущего профиля субъекта-службы из клиента 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) в режиме активного подключения не поддерживаются.

Дальнейшие действия