Share via


サービス プリンシパル プロファイルでの Power BI SDK の使用

この記事では、サービス プリンシパル プロファイルで SDK を使用する方法について説明します。 Power BI クライアントをサービス プリンシパル プロファイルに接続するには、2 つの方法があります。 次のようにすることができます。

クライアントがプロファイルに関連付けられると、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 メソッド WithHttpMessagesAsynccustomHeaders プロパティを使うことで、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) ではサポートされていません。

次の手順