Power BI の使用シナリオ: 顧客向けに埋め込む

注意

この記事は、Power BI 実装計画 シリーズの記事の一部です。 このシリーズでは、主に Microsoft Fabric 内での Power BI のワークロードに焦点を当てます。 シリーズの概要については、「Power BI 実装計画」を参照してください。

この使用シナリオでは、開発者がカスタム アプリケーションに "顧客向け" の Power BI コンテンツをプログラムで埋め込む方法に焦点を当てます。 (開発者は必ずしも Power BI コンテンツの作成を担当しているとは限りません)。この顧客向けに埋め込むシナリオは、アプリケーションの対象ユーザーが、組織の Power BI コンテンツにアクセスするためのアクセス許可と適切なライセンスを持たないユーザーで構成される場合に当てはまります。 カスタム アプリケーションには、Power BI コンテンツにアクセスするためのアクセス許可と適切なライセンスを持つ埋め込み ID が必要です。 カスタム アプリケーションはマルチテナント アプリケーションである可能性があります。

注意

このシナリオでは、Power BI はサービスとしてのプラットフォーム (PaaS) です。 埋め込みシナリオは、"アプリ所有データ" と呼ばれる場合もあります。

シナリオ図

次の図は、顧客向けの埋め込みをサポートする最も一般的なユーザー アクションと Power BI コンポーネントの概要を示したものです。

図は、外部アプリケーションへのコンテンツの統合に関する顧客向けの埋め込みを示しています。図の項目を次の表に示します。

ヒント

シナリオ図をプレゼンテーション、ドキュメント、またはブログの投稿に埋め込む場合、または壁のポスターとして印刷する場合は、シナリオ図をダウンロードすることをお勧めします。 スケーラブル ベクター グラフィックス (SVG) イメージであるため、品質を損なうことなくスケールアップまたはスケールダウンできます。

上の図は、次のユーザー アクション、ツール、および機能を示しています。

Item 説明
項目 1。 Power BI のコンテンツの作成者は、Power BI Desktop を使用して BI ソリューションを開発します。
項目 2。 準備ができたら、コンテンツ作成者は Power BI Desktop ファイル (.pbix) または Power BI プロジェクト ファイル (.pbip) を Power BI サービスに発行します。
項目 3。 一部のデータ ソースでは、プライベート組織ネットワーク内に存在するデータ更新のために、オンプレミス データ ゲートウェイ または VNet ゲートウェイが必要になる場合があります。
項目 4。 Power BI ワークスペースには、埋め込み可能な Power BI 項目が含まれています。 埋め込み ID (サービス プリンシパルまたはマスター ユーザー アカウント) は、ワークスペース管理またはメンバー ロールのいずれかに属している必要があります。 マルチテナント ソリューションでは、テナントごとに 1 つずつのワークスペースを作成することで、テナントの分離を実現します。 この設計パターンは、ワークスペース分離と呼ばれています。
項目 5。 カスタム アプリケーションにより、任意の認証方法 (必ずしも Microsoft Entra ID (旧称 Azure Active Directory) ではありません) を使って認証するようにアプリ ユーザーに求めます。
項目 6。 認証が成功すると、カスタム アプリケーションは埋め込み ID を使って Microsoft Entra アクセス トークンを取得してキャッシュします。
Item 7. カスタム アプリケーションで、Microsoft Entra アクセス トークンを使って、埋め込み ID に代わって Power BI REST API 呼び出しを行います。 具体的には、アプリケーションはアクセス トークンを使用して、ワークスペース項目に関するメタデータを取得します。 メタデータには、コンテンツをカスタム アプリケーションに埋め込むために必要なプロパティが含まれます。 また、アクセス トークンを使って、埋め込みトークンを生成してキャッシュします。これは、Power BI コンテンツに関する事実と、アプリケーションがそれにアクセスできる方法を表します。
Item 8. カスタム アプリケーションによって、特定の Power BI 項目が iframeHTML 要素に埋め込まれます。 埋め込み ID がそのためのアクセス許可を持っている場合、アプリケーションで Power BI レポートの作成と編集をサポートできます。
項目 9。 Power BI 管理者は、Power BI サービス内のアクティビティを監視します。

重要なポイント

カスタム アプリケーションに顧客向け Power BI コンテンツをプログラムで埋め込む場合に重視すべき重要なポイントをいくつか次に示します。

使用事例

多くの場合、顧客向けの埋め込みは、独立系ソフトウェア ベンダー (ISV) によって行われます。 ISV は、アプリに分析機能を埋め込む必要性を認識しています。 これにより、ユーザーは、コンテキスト内の分析情報に直接アクセスして、意見ではなく事実に基づいて意思決定を行うことができます。 通常、視覚化を開発するのでなく、Power BI コンテンツを埋め込む方が高速でコストが低くなります。

ISV は、マルチテナント アプリケーションを開発できます。ここで、彼らの各顧客はテナントとなります。 Power BI 分析を埋め込むマルチテナント アプリケーションでは、アプリケーション ユーザーに外部ユーザーが含まれるため、"顧客向けに埋め込む" シナリオが使用されます。 マルチテナント アプリケーションについては、この記事で後ほど詳しく説明します。

埋め込み可能なコンテンツ

顧客向けに埋め込む場合、次の種類の Power BI コンテンツを埋め込むことができます。

  • Power BI レポート
  • 特定の Power BI レポート ビジュアル
  • ページ分割されたレポート
  • Q&A エクスペリエンス
  • ダッシュボード​​
  • 特定のダッシュボード タイル

コンテンツが個人用ワークスペースに存在できないことを除けば、コンテンツが存在する場所に制限はありません。 重要なのは、埋め込み ID がコンテンツを表示 (または作成や編集) するためのアクセス許可を持っていることです。

認証

認証フローは、Microsoft Entra ID を使う "非対話型認証" です ("サイレント認証" とも呼ばれます)。 非対話型認証とは、アプリ ユーザーが Power BI アカウントを持っている必要がないことを意味し、持っている場合でも使われません。 そのため、埋め込み ID という専用の Microsoft Entra ID は Microsoft Entra ID で認証されます。 サービス プリンシパルまたはマスター ユーザー アカウントを埋め込み ID として使用できます (後で説明します)。

認証フローは、認証サービスがユーザーに追加情報の入力を求めることができない方法で、Microsoft Entra トークンの取得を試みます。 アプリ ユーザーがアプリで認証されると (アプリは任意の認証方法を使用できます)、アプリは埋め込み ID を使って、非対話型の認証フローで Microsoft Entra トークンを取得します。

アプリは、Microsoft Entra トークンを取得した後、それをキャッシュしてから、それを使って "埋め込みトークン" を生成します。 埋め込みトークンは、Power BI コンテンツとそのアクセス方法に関するファクトを表します。 アプリは埋め込みトークンを使って、iframe HTML 要素内にコンテンツを埋め込みます。

サービス プリンシパル

アプリでは、サービス プリンシパルを使って Microsoft Entra トークンを取得できます。 Microsoft Entra サービス プリンシパルは、アプリで使われるセキュリティ ID です。 Microsoft Entra テナント内のアプリに対してアクセス ポリシーとアクセス許可が定義されているので、サインイン時のアプリの認証やリソースへのアクセス時の認可などのコア機能が可能になります。 サービス プリンシパルは、アプリ シークレットや証明書を使用して認証できます。 サービス プリンシパルで Power BI REST API を使用できるのは、[Power BI API の使用をサービス プリンシパルに許可] テナント設定が有効で、サービス プリンシパルが許可されたグループに属している場合のみです。

ヒント

運用アプリにはサービス プリンシパルを使用することをお勧めします。 これは最高のセキュリティを提供します。このため、Microsoft Entra ID が推奨するアプローチです。 また、より優れた自動化とスケールをサポートし、管理オーバーヘッドが軽減されます。 ただし、セットアップと管理には Power BI 管理者権限が必要です。

マスター ユーザー アカウント

アプリでは、"マスター ユーザー アカウント" を使って AD トークンを取得できます。 マスター ユーザー アカウントは、通常の Microsoft Entra ユーザーです。 Power BI で、ワークスペース コンテンツを埋め込むには、アカウントがワークスペース管理者ロールまたはメンバー ロールに属している必要があります。 また、Power BI Pro ライセンスまたは Power BI Premium Per User (PPU) ライセンスのどちらかも必要です。

注意

マスター ユーザー アカウントを使用して、ページ分割されたレポートを埋め込むことはできません。

埋め込み ID について詳しくは、「Power BI コンテンツを埋め込むためのアクセス許可をセットアップする」をご覧ください。

ライセンス

顧客向けに Power BI コンテンツを埋め込む場合は、次のどちらかのライセンス モードを持つワークスペース内にコンテンツが確実に存在する必要があります。

  • Premium Per Capacity: このライセンス モードは Power BI Premium で利用できます。
  • Embedded: このライセンス モードは Power BI Embedded で利用できます。

各ライセンス モード オプションでは、"容量ベース" のライセンスである請求対象製品を購入する必要があります。 容量ベースのライセンスを使用すると、"予約容量" を作成できます。

容量は、レポート表示やデータ更新など、ワークロードを処理するのに必要なコンピューティング リソースを表します。 "予約" 容量は、他の顧客のワークロードから分離されているため、信頼性の高い一貫したパフォーマンスを実現できるスケールが提供されます。

Note

Fabric (無料)、Power BI Pro、または Power BI PPU のライセンスを使って、運用環境で "顧客向けに埋め込む" シナリオを使用することはできません。

製品とライセンスについて詳しくは、「適切な Power BI 埋め込み分析製品を選択する」をご覧ください。

Power BI クライアント API

Power BI クライアント API を使用すると、開発者は、カスタム アプリケーションと Power BI コンテンツを厳密に統合できます。 開発者は、ブラウザーで実行される JavaScript または TypeScript を使用してカスタム ロジックを作成することでアプリケーションを開発します。

アプリケーションは、操作を設定して自動化でき、ユーザーが開始したアクションに応答できます。 さらに、ナビゲーション、フィルターとスライサー、メニュー操作、レイアウト、ブックマークなどの Power BI 機能を統合することもできます。

ヒント

"Power BI 埋め込み分析プレイグラウンド" は、Power BI 埋め込み分析の学習、探求、実験に役立つ Web サイトです。 これには、サンプル Power BI コンテンツまたは独自のコンテンツでクライアント API を使用する実践的なエクスペリエンスのための、開発者サンドボックスが含まれています。 調べることのできる、コード スニペットやショーケースも用意されています。

詳細については、「Power BI 埋め込み分析プレイグラウンドとは」を参照してください。

データのアクセス許可を適用する

アプリのユーザーがデータのサブセットを表示するためのアクセス権だけを持つようにする必要がある場合は、Power BI セマンティック モデル (旧称はデータセット) データへのアクセスを制限するソリューションを開発する必要があります。 たとえば、一部のユーザーに特定のデータ (他の販売地域の売上結果など) の表示を許可しないようにする場合です。 この要件を満たすには、通常、行レベルのセキュリティ (RLS) のセットアップが必要です。これには、モデル データをフィルター処理するロールとルールの定義が含まれます。

"顧客向けシナリオ" を使うときは、アプリで埋め込みトークンの有効な ID を設定してデータへのアクセスを制限する必要があります。 この有効な ID により、Power BI がモデルに接続する方法と RLS ロールを適用する方法が決まります。 有効な ID の設定方法は、Power BI セマンティック モデルの種類によって異なります。

埋め込みコンテンツの RLS ロールについて詳しくは、「Power BI 埋め込み分析のデータ アクセス許可を適用する」をご覧ください。

マルチテナント アプリケーション

複数の組織で 1 つのマルチテナント アプリを使用でき、その場合は各組織がテナントになります。 Power BI 分析を埋め込むマルチテナント アプリでは、アプリ ユーザーに外部ユーザーが含まれるため、"顧客向けに埋め込む" シナリオを使用できます。 マルチテナント アプリを設計するときは、2 つの異なるテナント モデルから選択できます。

推奨される方法は、"ワークスペース分離" モデルを使用することです。 このアプローチは、テナントごとに 1 つの Power BI ワークスペースを作成することによって実現できます。 各ワークスペースには、そのテナントに固有の Power BI 成果物が含まれており、セマンティック モデルはテナントごとに個別のデータベースに接続します。

ヒント

ワークスペース分離モデルについて詳しくは、「ワークスペースの分離を自動化する」をご覧ください。 スケーラブルなマルチテナント アプリについて詳しくは、「Power BI Embedded でのマルチテナント アプリ用のサービス プリンシパル プロファイル」をご覧ください。

別の方法として、単一の "マルチカスタマー データベース" モデルを使用できます。 このモデルを使うと、ソリューションでは、すべてのテナント間で共有される一連の Power BI アイテムを含む 1 つのワークスペースで分離が実現されます。 セマンティック モデルで定義されている RLS ロールは、データをより安全にフィルター処理して、組織がそれ自体のデータのみを表示できるようにするのに役立ちます。

コードなしの埋め込み

プログラムによるソリューションを開発するには、スキル、時間、労力が必要です。 開発者ではないユーザーが Power BI レポートまたはダッシュボードを Power Pages に埋め込むために使用できる、"ノーコード埋め込み" と呼ばれる埋め込み手法があることを考慮してください。

ゲートウェイの設定

通常は、組織のプライベート ネットワークまたは仮想ネットワーク内に存在するデータ ソースにアクセスする際に、データ ゲートウェイが必要です。 ゲートウェイの 2 つの目的は、インポートされたデータを更新することと、ライブ接続または DirectQuery セマンティック モデルに対してクエリを実行するレポートを表示することです。

Note

個人モードでゲートウェイを使用するよりも、標準モードで一元管理されたデータ ゲートウェイを使用する方が強く推奨されています。 標準モードのデータ ゲートウェイでは、(スケジュールされたデータ更新操作に加えて) ライブ接続と DirectQuery 操作もサポートされています。

システム監視

アクティビティ ログには、Power BI サービス内で発生したユーザー アクティビティが記録されます。 Power BI 管理者は、収集されたアクティビティ ログ データを使用して、使用パターンや導入を理解する際に役立つ監査を実行できます。

Power BI 埋め込み分析の詳細については、ラーニング パス「Power BI 分析を埋め込む」を参照してください。

また、「Power BI 開発者 (1 日) コース」も参照してください。 ここには、ASP.NET Core MVC アプリの開発プロセスをガイドする自己学習キットが含まれています。

Power BI 実装の決定に役立つその他の有益なシナリオについては、「Power BI 使用シナリオ」の記事を参照してください。