Использование пакета SDK для Power BI с профилями субъекта-службы
В этой статье объясняется, как использовать пакет SDK с профилями субъектов-служб. Существует два способа подключения клиента Power BI к профилю субъекта-службы. Вы можете:
- Создание клиента с идентификатором объекта профиля
- Укажите идентификатор профиля в вызове запроса API.
После связывания клиента с профилем можно получить текущий профиль субъекта-службы из клиента 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
свойства в перегруженном методе WithHttpMessagesAsync
PowerBIClient 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) в режиме активного подключения не поддерживаются.