サービス プリンシパル プロファイルでの 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 メソッド 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) ではサポートされていません。