다음을 통해 공유


서비스 주체 프로필에서 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(); 

고려 사항 및 제한 사항

라이브 연결 모드에서 AAS(Azure Analysis Services)를 사용하는 서비스 주체 프로필은 지원되지 않습니다.

Power BI Embedded의 서비스 주체 프로필