埋め込みのページ分割されたレポートでの行レベルのセキュリティの実装

適用対象: アプリ所有データ ユーザー所有データ

この記事では、RLS (行レベルのセキュリティ) を使用した改ページ対応レポートを "アプリ所有データ" アプリケーションに埋め込む方法について説明します。

Note

この記事は、アプリ所有のデータ顧客にのみ関連があります。

改ページ対応レポート用に RLS を使用するには:

  1. 環境を設定してレポートをフィルター処理する
  2. レポートまたはクエリ レベルでデータをフィルター処理する
  3. 埋め込みトークンを使用して構成済みのパラメーターを渡す

前提条件

  • この記事では、Power BI 改ページ対応レポートを埋め込む方法を知っていることを前提としています。 埋め込みトークンを生成して、ユーザーがアクセス許可を持っているもののみをレポートに表示する方法について説明します。

  • ページ分割されたレポートは、Power BI (Analysis Services) エンジンではなく、SQL Server Reporting Services エンジンを使用して作成されるため、RLS フィルター処理は Power BI Report Builder で設定されます。

環境をセットアップする

Power BI 改ページ対応レポートに行レベルのセキュリティを適用するには、組み込みのフィールド UserID を使用してパラメーターを割り当てます。 このパラメーターは、フィルター処理やデータのクエリを行うために使用されます。

次に、埋め込みトークン - トークンの生成 API に UserID を渡して、埋め込みトークンを取得します

レポートまたはクエリのレベルで UserID をフィルターとして使用する

UserId は、"フィルター" として使用したり、データ ソースに対する "クエリ" で使用したりできます。

データをフィルター処理する

  1. [Semantic model Properties] (セマンティック モデルのプロパティ) ウィンドウの左側のペインで、[フィルター] を選択します。

    Screenshot of the Power BI Report Builder filter.

  2. [式] ドロップダウン メニューで、データのフィルター処理に使用するパラメーターを選択します。

    Screenshot shows the value Color selected from the Expression menu.

  3. [値] 関数ボタンをクリックします。

    Power BI Report Builder value

  4. [式] ウィンドウの [カテゴリ] の一覧で、 [組み込みフィールド] を選択します。

    Screenshot shows the Expression window with Built-in Fields selected as Category and ExecutionTime selected as Item.

  5. [アイテム] の一覧で [UserID] を選択し、 [OK] をクリックします。

    Power BI Report Builder UserID

  6. [Semantic model Properties] (セマンティック モデルのプロパティ) ウィンドウで、式が "<選択したパラメーター> = UserID" であることを確認し、[OK] をクリックします。

    Power BI Report Builder semantic model properties

クエリの使用

  1. [Semantic model Properties] (セマンティック モデルのプロパティ) ウィンドウの左側のナビゲーション ウィンドウで [パラメーター] を選択し、[追加] をクリックします。

    Power BI Report Builder parameters

  2. [パラメーター名] フィールドに「@UserID」と入力し、[パラメーター値][&UserID] を追加します。

    Power BI Report Builder parameter name

  3. 左側のペインで、[クエリ] を選択し、[クエリ] で UserID パラメーターをクエリの一部として追加し、[OK] をクリックします。

    注意

    下のスクリーンショットでは、color パラメーターが例として使用されています (WHERE FinalTable.Color = @UserID)。 必要に応じて、より複雑なクエリを作成できます。

    Power BI Report Builder queries edit

埋め込みトークンを生成する

顧客向けの改ページ対応レポートを埋め込むときに、Reports GenerateTokenInGroup API を使用して、埋め込みトークンを取得します。 このトークンを使って、改ページ対応レポートからデータの一部をフィルターで除外することもできます。

トークンを生成するには、サービス プリンシパルを使用する必要があります。 マスター ユーザーとしてトークンを生成することはできません。 そのサービス プリンシパルは、Power BI サービス内のワークスペースに対して少なくともメンバーのアクセス許可を持っている必要があります。 (サービス プリンシパルが共同作成者または閲覧者の場合、トークンを生成することはできません)。

トークンを生成するには、表示する情報を username フィールドに割り当てます。 たとえば、color パラメーターを持つ改ページ対応レポートで、username フィールドに「green」と入力すると、埋め込みトークンによって、color 列の値が green であるデータのみに埋め込みデータが制限されます。

{
 "reports": [
 {
  "id": "8d57615e-cfed-4d60-bd21-7dc05727193c"
 }
 ],
 "identities": [
 {
  "username": "green",
  "reports": [
  "8d57615e-cfed-4d60-bd21-7dc05727193c"
  ]
 }
 ]
}

注意

user-id を指定せずに埋め込みトークンを生成する場合は、サービス プリンシパルの object-id が使用されます。

考慮事項と制限事項

  • マスター ユーザーは、"顧客向けの埋め込み" 用の改ページ対応レポートではサポートされていません。 マスター ユーザー、組織向けの埋め込みではサポート "されています"。
  • サービス プリンシパルには、メンバー以上の (閲覧者または共同作成者ではない) ワークスペースのアクセス許可が必要です。

埋め込みトークンを生成する