ここでは、アプリケーション内に Power BI コンテンツを埋め込むために必要な手順について説明します。

最近、Microsoft は Power BI Premium を発表しました。この新しい容量ベースのライセンス モデルは、ユーザーによるコンテンツのアクセス、共有および配布方法の柔軟性を高めます。 また、Power BI サービスのスケーラビリティとパフォーマンスが向上します。

Power BI Premium の導入に伴い、Power BI Embedded および Power BI サービスが統合され、Power BI コンテンツをアプリにより迅速に埋め込むことができるようになります。 これは、1 つの API サーフェスで一貫性のある一連の機能を利用でき、コンテンツを埋め込む際にダッシュボード、ゲートウェイ、アプリ ワークスペースなどの最新の Power BI 機能にアクセスできることを意味します。 今後は、Power BI Desktop で作業を開始し、Power BI Premium でデプロイできるようになります。Power BI Premium は 2017 年の第 2 四半期の終わりに一般提供される予定です。

この記事では、Power BI と Power BI 以外の両方のユーザー向けの Power BI コンテンツの埋め込みについて説明します。 2 つの手順は似ています。 手順が Power BI 以外のユーザー向けの埋め込みに固有である場合、引き出し線が示されます。

これを可能にするためにアプリケーションで実行する必要がある手順がいくつかあります。 アプリケーション内で埋め込みコンテンツを作成し、使用できるようにするために必要な手順を順に説明していきます。

メモ:

Power BI API では引き続き、アプリ ワークスペースをグループと呼びます。 したがって、グループと記述されている場合はすべて、アプリ ワークスペースを使用していることを意味します。

手順 1: 埋め込み分析開発環境をセットアップする

アプリケーションへのダッシュボードとレポートの埋め込みを開始する前に、埋め込めるように環境がセットアップされていることを確認する必要があります。 セットアップの一環として、以下を行う必要があります。

メモ:

アプリケーションの開発には、Power BI Premium は必要はありません。 アプリケーションの開発者には Power BI Pro ライセンスが必要になります。

Azure Active Directory テナント

Power BI からアイテムを埋め込むには、Azure Active Directory (Azure AD) テナントが必要になります。 このテナントには少なくとも 1 人の Power BI Pro ユーザーが必要です。 また、テナント内で Azure AD アプリを定義する必要があります。 既存の Azure AD テナントを利用することも、埋め込み専用に新しいものを作成することもできます。

使用するテナントのセットアップを判別する必要があります。

  • 既存の企業の Power BI テナントを使用しますか。
  • アプリケーションで個別のテナントを使用しますか。
  • 顧客ごとに個別のテナントを使用しますか。

アプリケーション、または顧客ごとに新しいテナントを作成することにした場合は、「Azure Active Directory テナントを作成する」または「Azure Active Directory テナントを取得する方法」を参照してください。

メモ:

Power BI 以外のユーザー向けに埋め込む場合は、新しい Azure AD テナントを作成することをお勧めします。

Power BI Pro ユーザー アカウントを作成する

コンテンツを埋め込む場合、1 つの Power BI Pro アカウントのみが必要となります。 ただし、アイテムに固有のアクセス権を持ついくつかの異なるユーザーが必要になる場合があります。 ここでは、テナント内で考慮する必要がある可能性があるユーザーを示します。

次のアカウントはテナント内に存在し、Power BI Pro ライセンスを割り当てる必要があります。

メモ:

これらのアカウントでは、アプリ ワークスペースを使用するために、Power BI Pro ライセンスが必要になります。

組織/テナント管理者ユーザー

組織/テナントのグローバル管理者ユーザーをアプリケーションで使用するアカウントとして使用しないことをお勧めします。 そうすれば、組織内でのアプリケーション アカウントによるアクセスが最小限に抑えられます。 管理者ユーザーは、埋め込むために作成されたすべてのアプリ ワークスペースの管理者にすることをお勧めします。

コンテンツを作成するアナリストのアカウント

複数のユーザーが Power BI のコンテンツを作成する可能性があります。 コンテンツを作成し、Power BI に配置するアナリストごとに Power BI Pro アカウントが必要になります。

Power BI 以外のユーザーのアプリケーション マスター ユーザー アカウント

これは、Power BI 以外のユーザー向けにコンテンツを埋め込む場合に、アプリケーションで使用するアカウントです。 組織内で本当に必要なのはこのアカウントだけです。 管理者およびアナリスト アカウントとしても使用できますが、お勧めできません。 アプリケーションのバックエンドにはこのアカウントの資格情報が格納され、Power BI API で使用する Azure AD 認証トークンを取得するために使用されます。 このアカウントは、Power BI 以外のユーザーに使用する、アプリケーションの埋め込みトークンを生成する場合に使用されます。

このアカウントは、埋め込むために使用されているアプリ ワークスペースの管理者である必要があります。

アプリの登録とアクセス許可

Azure AD 内でアプリケーションを登録し、Power BI からコンテンツを埋め込む際にそのアプリケーションにアクセス許可を付与する必要があります。 最後の手順で作成したマスター アカウントを使用して、アプリを登録します。

アプリケーションを登録する

まず、Azure AD にアプリケーションを登録する必要があります。 これは Azure AD ポータルで実行できますが、アプリをすばやく登録できる Web ページが用意されています。 どのユーザー向けにコンテンツを埋め込むかによって、アプリケーションに対して選択するアイテムが決まります。 Power BI 以外のユーザー向けに埋め込む場合、アプリの種類はネイティブである必要があります。

どのユーザー向けに埋め込むのか アプリケーションの種類
Power BI ユーザー サーバー側の Web アプリまたはネイティブ アプリ
Power BI 以外のユーザー ネイティブ アプリ

アプリケーションの登録手順については、「アプリケーションを登録する」を参照してください。

アプリケーションにアクセス許可を適用する

重要:

このセクションでは、*Power BI 以外*のユーザー向けにコンテンツを埋め込んでいるアプリケーションにのみ適用されます。

アプリ登録ページで指定されたものに加え、アプリケーションに対する追加のアクセス許可を有効にする必要があります。 その場合、Azure AD ポータルを使用することも、プログラムで実行することもできます。

以下の手順は、テナント/組織の管理者として実行します。 これは、グローバル管理者ロールのユーザーになります。

Azure AD ポータルの使用
  1. Azure ポータル内でアプリの登録ブレードを参照し、埋め込みに使用するアプリを選択します。

  2. [API アクセス][必要なアクセス許可] を選択します。

  3. [Windows Azure Active Directory] を選択してから、[サインインしたユーザーとしてディレクトリにアクセスします] が選択されていることを確認します。 [保存] を選択します。

  4. [必要なアクセス許可] 内で、[Power BI サービス (Power BI)] を選択します。

    メモ:

    Azure AD ポータルで直接アプリを作成した場合は、[Power BI サービス (Power BI)] が存在しない可能性があります。 存在しない場合は、[+ 追加] を選択してから [1 API を選択します] を選択します。 API リストで [Power BI サービス] を選択して、[選択] を選択します。 その後、手順 5. に進むことができます。

  5. [デリゲートされたアクセス許可] のすべてのアクセス許可を選択します。 選択内容を保存するために 1 つずつ選択する必要があります。 完了したら、[保存] を選択します。

  6. [必要なアクセス許可] 内で、[アクセス許可の付与] を選択します。

    これで、テナント/組織内のすべてのユーザーのためにアプリのアクセス許可が付与されます。 このようにしない場合、少なくとも 1 回は Azure AD にアプリ ID で対話式にサインインする必要があります。

    メモ:

    テナント内のすべてのユーザーにアクセス許可を付与するには、グローバル管理者ロールのアカウントでこの操作を行う必要があります。 それ以外の場合、手順を実行したユーザーにのみアクセス許可が付与されます。

プログラムでのアクセス許可の適用
  1. テナント内で既存のサービス プリンシパル (ユーザー) を取得する必要があります。 その方法については、「Get servicePrincipal」 (servicePrincipal を取得する) を参照してください。

    メモ:

    Get servicePrincipal api は {id} なしで呼び出すことができます。その場合、テナント内のサービス プリンシパルがすべて取得されます。

  2. appId プロパティとしてアプリ クライアント ID を使用してサービス プリンシパルを確認します。

  3. アプリがない場合は、新しいサービス プランを作成します。

    Post https://graph.microsoft.com/beta/servicePrincipals
    Authorization: Bearer ey..qw
    Content-Type: application/json
    {
    "accountEnabled" : true,
    "appId" : "{App_Client_ID}",
    "displayName" : "{App_DisplayName}"
    }
    
  4. Power BI API にアプリのアクセス許可を付与する

    Post https://graph.microsoft.com/beta/OAuth2PermissionGrants
    Authorization: Bearer ey..qw
    Content-Type: application/json
    { 
    "clientId":"{Service_Plan_ID}",
    "consentType":"AllPrincipals",
    "resourceId":"c78b2585-1df6-41de-95f7-dc5aeb7dc98e",
    "scope":"Dataset.ReadWrite.All Dashboard.Read.All Report.Read.All Group.Read Group.Read.All Content.Create Metadata.View_Any Dataset.Read.All Data.Alter_Any",
    "expiryTime":"2018-03-29T14:35:32.4943409+03:00",
    "startTime":"2017-03-29T14:35:32.4933413+03:00"
    }
    
  5. AAD にアプリのアクセス許可を付与する

    Post https://graph.microsoft.com/beta/OAuth2PermissionGrants
    Authorization: Bearer ey..qw
    Content-Type: application/json
    { 
    "clientId":"{Service_Plan_ID}",
    "consentType":"AllPrincipals",
    "resourceId":"61e57743-d5cf-41ba-bd1a-2b381390a3f1",
    "scope":"User.Read Directory.AccessAsUser.All",
    "expiryTime":"2018-03-29T14:35:32.4943409+03:00",
    "startTime":"2017-03-29T14:35:32.4933413+03:00"
    }
    

アプリ ワークスペースを作成する

Power BI 以外のユーザー向けにダッシュボードとレポートを埋め込む場合は、そのダッシュボードとレポートをアプリ ワークスペース内に配置する必要があります。 アプリ ワークスペースの作成方法については、「Power BI でのアプリの作成および配布」を参照してください。

重要:

前述のマスター アカウントは、アプリ ワークスペースの管理者にする必要があります。

レポートを作成してアップロードする

Power BI Desktop を使用してレポートとデータセットを作成し、アプリ ワークスペースにこれらのレポートを発行できます。 レポートを発行するエンド ユーザーには、アプリ ワークスペースに発行するための Power BI Pro ライセンスが必要です。

手順 2: コンテンツを埋め込む

アプリケーション内では、Power BI で認証する必要があります。 Power BI 以外のユーザー向けにコンテンツを埋め込む場合、アプリケーション内にマスター アカウントの資格情報を格納する必要があります。

Power BI と JavaScript API を使用して、ダッシュボードとレポートをアプリケーションに埋め込みます。 詳細については、以下のトピックを参照してください。

Power BI 以外のユーザー向けに埋め込む場合は、埋め込みトークンが必要です。 詳細については、「GenerateToken」を参照してください。

手順 3: ソリューションを運用に昇格する

運用環境に移行する準備ができたら、以下の手順を実行する必要があります。

Power BI ユーザー

Power BI ユーザー向けに埋め込む場合、アプリケーションへのアクセス方法を知らせるだけです。

Power BI 以外のユーザー

Power BI 以外のユーザー向けに埋め込む場合は、次の操作を行います。

  • 組織の運用テナントを使用できますが、運用環境用に新しい埋め込み分析環境を作成することをお勧めします。 詳細については、上記の手順 1. を参照してください。

  • 開発用に個別のテナントを使用する場合は、アプリ ワークスペース、ダッシュボードおよびレポートが運用環境で利用可能であることを確認する必要があります。 また、運用テナントの Azure AD でアプリケーションを作成し、手順 1. のとおり、適切なアプリにアクセス許可を割り当てたことを確認する必要があります。

  • ニーズに合う容量を購入します。 以下の表を使用することで、必要になる可能性がある Premium 容量の SKU を把握できます。 詳細については、「Embedded analytics capacity planning whitepaper」 (埋め込み分析の容量計画に関するホワイト ペーパー) を参照してください。 購入する準備ができたら、Office 365 管理センター内で購入できます。

容量ノード 合計コア
(バックエンド + フロントエンド)
バックエンド コア フロントエンド コア DirectQuery/ライブ接続の制限 ピーク時の最大のページ レンダリング数 使用できるかどうか
EM1 1 v コア 0.5 コア、3 GB の RAM 0.5 コア 1-300 2017 年 7 月
EM2 2 v コア 1 コア、5 GB の RAM 1 コア 301-600 2017 年 7 月
EM3 4 v コア 2 コア、10 GB の RAM 2 コア 601-1,200 2017 年 7 月
P1 8 v コア 4 コア、25 GB の RAM 4 コア 1 秒あたり 30 1,201-2,400 入手可能
P2 16 v コア 8 コア、50 GB の RAM 8 コア 1 秒あたり 60 2,401-4,800 入手可能
P3 32 v コア 16 コア、100 GB の RAM 16 コア 1 秒あたり 120 4,801-9600 入手可能
メモ:

グローバルまたは課金管理者は、Power BI Premium を購入するためには、テナント内に存在する必要があります。 Power BI Premium の購入方法については、「Power BI Premium の購入方法」を参照してください。

  • アプリ ワークスペースを編集し、[詳細] で Premium 容量にそれを割り当てます。

  • 更新されたアプリケーションを運用環境にデプロイし、Power BI サービスからのレポートの埋め込みを開始します。

次の手順

Power BI で埋め込み
Power BI に Power BI Embedded ワークスペース コレクション コンテンツを移行する方法
Power BI Premium とは
Power BI Premium の購入方法
JavaScript API Git リポジトリ
Power BI C# Git リポジトリ
JavaScript 埋め込みサンプル
埋め込み分析の容量計画に関するホワイト ペーパー
Power BI Premium ホワイト ペーパー

他にわからないことがある場合は、 Power BI コミュニティで質問してみてください