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

ページ分割されたレポートを埋め込むときに、どのデータが表示されるかを制御できます。 これにより、ユーザーごとに表示される情報を調整できます。 たとえば、グローバルな売上結果を含む、Power BI のページ分割されたレポートがある場合は、特定の地域の売上結果のみを使用できるように埋め込むことができます。

この機能を使用すると、データのサブセットを安全に表示することができ、データの残りの部分が侵害されることがありません。 これは、行レベル セキュリティ (RLS) 機能に似ています。この機能では、Power BI レポート (ページ分割されていないもの)、ダッシュボード、タイル、およびデータセットで、データを安全に表示することができます。

注意

この機能は、顧客向けにページ分割されたレポートを埋め込む場合に使用します。

データセットをフィルター処理するためのパラメーターを構成する

Power BI のページ分割されたレポートに行レベルのセキュリティを適用する場合は、UserID 属性パラメーターを割り当てる必要があります。 このパラメーターは、レポートが埋め込まれる前に、データセットからプルされるデータを制限します。

パラメーターを UserID に割り当てた後、Reports GenerateTokenInGroup API を使用して、埋め込みトークンを取得します。

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

UserId は、"フィルター" として使用することや、Power BI Report Builder で、データソースに対する "クエリ" に使用することができます。

フィルターの使用

  1. [データセットのプロパティ] ウィンドウの左側のペインで、 [フィルター] を選択します。

    Power BI レポート ビルダーでのフィルター

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

    スクリーンショットには、[式] メニューで選択された値 Color が示されています。

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

    Power BI レポート ビルダーでの値

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

    スクリーンショットには、[カテゴリ] として [組み込みフィールド] が選択され、[項目] として ExecutionTime が選択されている [式] ウィンドウが示されています。

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

    Power BI レポート ビルダーでの UserID

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

    Power BI レポート ビルダーのデータセットのプロパティ

クエリの使用

  1. [データセットのプロパティ] ウィンドウの左側のペインで [パラメーター] を選択し、 [追加] をクリックします。

    Power BI レポート ビルダーでのパラメーター

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

    Power BI レポート ビルダーでのパラメーター名

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

    注意

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

    Power BI レポート ビルダーでのクエリの編集

埋め込みトークンを使用して構成済みのパラメーターを渡す

顧客向けのページ分割されたレポートを埋め込むときに、Reports GenerateTokenInGroup API を使用して、埋め込みトークンが取得されます。 このトークンを使用して、ページ分割されたレポートからプルされるデータの一部をフィルター処理することもできます。

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

{
    "accessLevel": "View",
    "reportId": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
    "identities": [
            {
                    // Replace the 'username' with a paginated report parameter
                    "username":     "...",
                    "reports: [
                        "cfafbeb1-8037-4d0c-896e-a46fb27ff229"
                    ]
            }
    ]
}