次の方法で共有


Azure を使用してテンプレート アプリのインストールを自動化する

テンプレート アプリのインストールを自動化して、顧客の Power BI デプロイ プロセスを効率化します。 テンプレート アプリは、顧客データに接続する事前構築済みのレポートを提供しますが、接続の詳細に慣れていないユーザーにとって手動構成は困難な場合があります。

このチュートリアルでは、Azure Functions を使用してテンプレート アプリパラメーターの構成を自動化する方法をデータ サービス プロバイダーに示します。 お客様が構成済みのリンクをクリックすると、自動化によって必要な情報が収集され、パラメーターが設定され、アプリをインストールするようにリダイレクトされます。セットアップを完了するには認証のみが必要です。

顧客がポータルにサインインすると、準備した特別なリンクが選択されます。 このリンク:

  • 必要な情報を収集する自動化を起動します。
  • テンプレート アプリのパラメーターを事前構成します。
  • アプリをインストールできる Power BI アカウントに顧客をリダイレクトします。

必要なのは、インストールを選択してデータソースに対して認証するだけで、準備完了です。

カスタマー エクスペリエンスを次に示します。

自動インストール アプリケーションを使用したユーザー エクスペリエンスのスクリーンショット。

このチュートリアルでは、テンプレート アプリを事前構成してインストールするために作成した自動インストールの Azure Functions サンプルを使用します。 このサンプルは、デモンストレーションのために意図的にシンプルに保たれています。 テンプレート アプリをインストールし、ユーザー向けに自動的に構成するために Power BI API を使用するための Azure 関数のセットアップをカプセル化します。

一般的な自動化フローとアプリで使用される API の詳細については、「 テンプレート アプリのインストールの構成を自動化する」を参照してください。

シンプルなアプリケーションでは、Azure 関数を使用します。 Azure Functions の詳細については、 Azure Functions のドキュメントを参照してください

基本的なフロー

次の基本的なフローでは、ポータルでリンクを選択して、顧客がアプリケーションを起動したときにアプリケーションが実行する動作を示します。

  1. ユーザーは ISV のポータルにサインインし、指定されたリンクを選択します。 このアクションによってフローが開始されます。 ISV のポータルは、この段階でユーザー固有の構成を準備します。
  2. ISV は、ISV テナントに登録されている サービス プリンシパル (アプリ専用トークン) に基づいてアプリ専用トークンを取得します。
  3. Power BI REST API を使用して、ISV はインストール チケットを作成します。このチケットには、ISV によって準備されたユーザー固有のパラメーター構成が含まれます。
  4. ISV は、インストール チケットを含む POST リダイレクト方法を使用して、ユーザーを Power BI にリダイレクトします。
  5. ユーザーは、インストール チケットを使用して Power BI アカウントにリダイレクトされ、テンプレート アプリをインストールするように求められます。 ユーザーが [インストール] を選択すると、テンプレート アプリがインストールされます。

パラメーター値はインストール チケットの作成プロセスで ISV によって構成されますが、データ ソース関連の資格情報は、インストールの最終段階でユーザーによってのみ提供されます。 この配置により、サード パーティに公開されるのを防ぎ、ユーザーとテンプレート アプリのデータ ソース間の安全な接続が確保されます。

[前提条件]

自動化開発環境を設定する

アプリケーションの設定を続行する前に、「 クイック スタート: Azure App Configuration を使用して Azure Functions アプリを作成し、Azure アプリ構成 と共に Azure 関数を開発する」の手順に従ってください。 記事の説明に従って、アプリ構成を作成します。

Microsoft Entra ID でアプリケーションの登録

「サービス プリンシパル とアプリケーション シークレットを使用して Power BI コンテンツを埋め込む」の説明に従って、サービス プリンシパルを作成します

アプリケーションを サーバー側の Web アプリケーションとして登録してください。 サーバー側 Web アプリケーションを登録して、アプリケーション シークレットを作成します。

後の手順のために 、アプリケーション ID (ClientID) と アプリケーション シークレット (ClientSecret) を保存します。

自動化のワークフローをテストできるように、サービス プリンシパルを管理者としてテンプレート アプリ ワークスペースに追加します。

テンプレート アプリの準備

テンプレート アプリを作成し、インストールの準備ができたら、次の手順のために次の情報を保存します。

  • アプリの作成時にテンプレート アプリ プロセスのプロパティを定義するプロセスの最後にあるインストール URL に表示されるアプリ ID、パッケージ キー所有者 ID

    テンプレート アプリの [リリース管理] ウィンドウで [リンクの取得] を選択して、同じリンクを取得することもできます。

  • テンプレート アプリのセマンティック モデルで定義されているパラメーター名。 パラメーター名は、大文字と小文字を区別する文字列です。 テンプレート アプリのプロパティを定義するとき、または Power BI のセマンティック モデル設定から、[パラメーター設定] タブから取得することもできます。

テンプレート アプリがまだ AppSource で一般公開されていない場合でも、テンプレート アプリで事前構成済みのインストール アプリケーションをテストできます。 テナント外のユーザーが自動インストール アプリケーションを使用してテンプレート アプリをインストールできるようにするには、テンプレート アプリを AppSource で一般公開する必要があります。 作成している自動インストール アプリケーションを使用してテンプレート アプリを配布する前に、必ず パートナー センターに発行してください。

テンプレート アプリをインストールして構成する

このセクションでは、テンプレート アプリを事前構成してインストールするために作成した自動インストール Azure Functions サンプルを使用します。 このサンプルは、デモンストレーションのために意図的にシンプルに保たれています。 これにより、Azure 関数Azure App Configuration を使用して、テンプレート アプリの自動インストール API を簡単にデプロイして使用できます。

Visual Studio をダウンロードする

Visual Studio (バージョン 2017 以降) をダウンロードします。 必ず最新の NuGet パッケージをダウンロードしてください。

自動インストールの Azure Functions サンプルをダウンロードする

GitHub から 自動インストールの Azure Functions サンプル をダウンロードして開始します。

自動インストールの Azure Functions サンプルのスクリーンショット。

Azure アプリの構成を設定する

このサンプルを実行するには、ここで説明するように、値とキーを使用して Azure アプリ構成を設定する必要があります。 キーは、 アプリケーション IDアプリケーション シークレット、テンプレート アプリの appIdpackageKeyownerId の値です 。 これらの値を取得する方法については、次のセクションを参照してください。

キーは、 Constants.cs ファイルでも定義されます。

構成キー Meaning
TemplateAppInstall:Application:AppId appId からの インストール URL
TemplateAppInstall:Application:PackageKey インストール URL からの packageKey
TemplateAppInstall:Application:OwnerId インストール URL からの ownerId
TemplateAppInstall:サービスプリンシパル:クライアントID サービス プリンシパル アプリケーション ID
TemplateAppInstall:ServicePrincipal:ClientSecret サービス プリンシパル アプリケーション シークレット

Constants.cs ファイルを次に示します。

Constant.cs ファイルのスクリーンショット。

テンプレート アプリのプロパティを取得する

アプリの作成時に定義されているように、関連するすべてのテンプレート アプリプロパティを入力します。 これらのプロパティは、テンプレート アプリの appIdpackageKeyownerId の値です

上記の値を取得するには、次の手順に従います。

  1. Power BI にサインインします。

  2. アプリケーションの元のワークスペースに移動します。

  3. [リリース管理] ウィンドウを開きます。

    [リリース管理] ウィンドウのスクリーンショット。

  4. アプリのバージョンを選択し、そのインストール リンクを取得します。

    [リリース管理] ボタンのスクリーンショット。

  5. リンクをクリップボードにコピーします。

    [リンクの取得] ボタンのスクリーンショット。

  6. このインストール URL は、必要な値を持つ 3 つの URL パラメーターを保持します。 アプリケーションの appIdpackageKeyownerId の値を使用します。 サンプル URL は、次に示すようなものです。

    https://app.powerbi.com/Redirect?action=InstallApp&appId=66667...9cccc0000&packageKey=b2df4b...dLpHIUnum2pr6k&ownerId=aaaa...22222&buildVersion=5
    

アプリケーション ID を取得する

applicationId 情報に Azure のアプリケーション ID を入力します。 applicationId 値は、アクセス許可を要求するユーザーを識別するためにアプリケーションによって使用されます。

アプリケーション ID を取得するには、次の手順に従います。

  1. Azure portal にサインインします。

  2. ポータル メニューから 、[ すべてのサービス] を選択します。

  3. [すべてのサービス] ページの [ID] セクションで、[>App の登録] を選択します。

  4. アプリケーション ID が必要なアプリケーションを選択 します

    アプリケーション ID が必要なアプリを選択するスクリーンショット。

  5. GUID として一覧表示されているアプリケーション ID があります。 このアプリケーション ID をアプリケーションの applicationId 値として使用します。

    applicationId 値のスクリーンショット。

アプリケーション シークレットを取得する

Azure の [アプリの登録] セクションの [キー] セクションから ApplicationSecret 情報を入力します。 この属性は、 サービス プリンシパルを使用するときに機能します。

アプリケーション シークレットを取得するには、次の手順に従います。

  1. Azure portal にサインインします。

  2. ポータル メニューから 、[ すべてのサービス] を選択します。

  3. [すべてのサービス] ページの [ID] セクションで、[>App の登録] を選択します。

    アプリの選択のスクリーンショット。

  4. [管理] で [証明書とシークレット ] を選択 します

  5. 新しいクライアント シークレットを選択します。

  6. [説明] ボックスに名前を入力し、期間を選択します。 次に、[ 追加] を選択してアプリケーションの値を取得します。この値は、クライアント シークレットの [値 ] 見出しの下に表示されます。

関数をローカルでテストする

関数をローカルで実行して関数を実行する 」の説明に従います。

関数の URL に POST 要求を発行するようにポータルを構成します。 たとえば POST http://localhost:7071/api/install です。 要求本文は、キーと値のペアを記述する JSON オブジェクトである必要があります。 キーは、Power BI Desktop で定義されている パラメーター名 です。 値は、テンプレート アプリの各パラメーターに設定する必要がある値です。

運用環境では、パラメーター値はポータルの目的のロジックによってユーザーごとに推定されます。

目的のフローは次のようになります。

  1. ポータルは、ユーザーまたはセッションごとに要求を準備します。
  2. POST /api/install要求は、Azure 関数に対して発行されます。 要求本文は、キーと値のペアで構成されます。 キーはパラメーター名です。 値は、設定する必要がある値です。
  3. すべてが正しく構成されている場合、ブラウザーは自動的に顧客の Power BI アカウントにリダイレクトされ、自動インストール フローが表示されます。
  4. インストール時に、パラメーター値は手順 1 と 2 で構成されているように設定されます。

プロジェクトを Azure に発行する

プロジェクトを Azure に発行するには、 Azure Functions のドキュメントの手順に従います。 その後、テンプレート アプリの自動インストール API を製品に統合し、運用環境でテストを開始できます。