さまざまな埋め込みソリューションについて

Power BI 項目 (レポート、ダッシュボード、Q&A など) をアプリケーションに埋め込むと、独自のデータ視覚化とコントロールを最初から構築することなく、完全に対話型の美しい分析を統合できます。 埋め込む Power BI 分析では、アプリが所有するデータを、独自の Power BI アカウントを通じて 表示するか、ユーザーが自分の Power BI アカウントを通じて 所有するデータを提示できます。

アプリケーション のシナリオ

アプリケーションに Power BI レポートを埋め込むには、2 つの異なるシナリオがあります。

  • 組織 の埋め込み (ユーザーがデータを所有しているとも呼ばれます): アプリケーションでは、自分の Power BI アカウントを使用してサインインするときに、組織内のユーザーがアクセスできるデータ、レポート、ダッシュボード、タイルを統合できます。 この種類のアプリケーションでは、ユーザーは埋め込むデータを所有します。
  • 顧客向けの埋め込み (アプリはデータを所有しています): アプリケーションは、自分の Power BI アカウントにアップロードしたデータ、レポート、ダッシュボード、またはタイルを表示します。 この種類のアプリケーションでは、独自のアカウントを使用しているため、アプリケーションは顧客のデータを所有します。 顧客は独自の Power BI アカウントを必要としません。

使用するアプリケーション シナリオによって、データにアクセスしてアプリケーションにコンテンツを埋め込むことができる アクセス トークン を取得する方法が決まります。

埋め込むコンテンツの種類は、embedUrl パラメーターの値によって指定されます。 特定の種類のコンテンツの埋め込み URL を取得するには、対応する Power BI REST API を呼び出します。 たとえば、レポートの取得 を呼び出して、レポートを埋め込むための埋め込み URL を取得します。

次のセクションでは、アクセス トークンを取得し、これらのアプリケーション シナリオごとにレポートを埋め込む方法について説明します。

組織向けの埋め込み

このシナリオでは、アプリケーションのユーザーが Power BI アカウントを使用してサインインします。 これにより、データにアクセスし、レポート、ダッシュボード、タイルを埋め込むためのアクセス トークンが提供されます。

embedConfigurationで、tokenTypeTokenType.Aadに設定します。

// Get models so you can use the TokenType enum.
let models = window['powerbi-client'].models;

let embedConfiguration = {
    type: 'report',
    id: '5dac7a4a-4452-46b3-99f6-a25915e0fe55',
    embedUrl: 'https://app.powerbi.com/reportEmbed',
    tokenType: models.TokenType.Aad,
    accessToken: 'e4...rf'
};

let reportContainer = $('#reportContainer')[0];
let report = powerbi.embed(reportContainer, embedConfiguration);

顧客向けの埋め込み

このシナリオでは、すべての Power BI 項目にアクセスできる専用 ID を作成します。 次に、埋め込むレポート、ダッシュボード、またはタイルの 埋め込みトークン を生成します。そのためには、Power BI REST API 埋め込みトークンを呼び出します。 埋め込みトークンをしたら、次のコードを使用してレポートを埋め込みます。

embedConfigurationで、tokenTypeTokenType.Embedに設定します。

// Get models so you can use the TokenType enum.
let models = window['powerbi-client'].models;

let embedConfiguration = {
    type: 'report',
    id: '5dac7a4a-4452-46b3-99f6-a25915e0fe55',
    embedUrl: 'https://app.powerbi.com/reportEmbed',
    tokenType: models.TokenType.Embed,
    accessToken: 'h4...rf'
};

let reportContainer = $('#reportContainer')[0];
let report = powerbi.embed(reportContainer, embedConfiguration);