Azure AD アプリの登録を作成する

完了

アプリ開発者の最初のタスクの 1 つが Azure AD アプリを登録することです。 Azure AD アプリは、アプリの ID を設定し、Power BI REST API リソースへのアクセス許可を指定します。 アプリで、Azure AD アプリの登録を使用して、Azure AD トークンを生成することができます。

Azure AD アプリごとに、ClientID と呼ばれることもある ApplicationID が設定されています。 これは、Microsoft ID プラットフォームでアプリを識別するグローバル一意識別子です。 アプリは、Azure AD トークンを要求するときに ApplicationID を使用するため、その値をアプリの構成ファイル内でハードコーディングしておく必要があります。

アプリでは、アプリ ユーザーの介在を必要とせずに、それ自体として認証するように Azure AD アプリの資格情報を設定する必要があります。 証明書クライアント シークレットの両方を資格情報としてアプリの登録に追加できます。

証明書は、公開キーと呼ばれることもありますが、クライアント シークレットより安全であると見なされているため、運用アプリに推奨される資格情報の種類です。 アプリにおける認証方法として証明書を使用する方法について詳しくは、「Microsoft ID プラットフォーム アプリケーションの認証証明書資格情報」を参照してください。

また、クライアント シークレットは、アプリでそれ自体を識別するために証明書の代わりに使用できる文字列値です。 アプリケーション パスワードと呼ばれることもあります。

重要

クライアント シークレットは、証明書資格情報より安全ではありません。 開発者は、ローカル アプリの開発時に、その使いやすさからクライアント シークレットを使用することがあります。 ただし、運用アプリには証明書資格情報を使用する必要があります。

証明書またはクライアント シークレットのどちらを使用する場合でも、無許可のアクセスや使用から資格情報を保護する手順を実行する必要があります。 クラウド内の暗号化キー、証明書、およびシークレットを保護する Azure Key Vault を使用することをお勧めします。

アプリの登録を作成するには、次の 3 つのオプションがあります。

  • Azure ポータルの使用
  • 埋め込みセットアップ ツールを使用する
  • PowerShell スクリプトを開発する

Azure ポータルの使用

Azure portal の [アプリの登録] を使用して、ホーム テナントでアプリ オブジェクトを作成、一覧表示、および管理することができます。 シークレットまたは証明書とスコープを追加してアプリを機能させたり、サインイン ダイアログでアプリのブランド化をカスタマイズしたりすることもできます。

注意

Azure portal にアプリを登録すると、同時にサービス プリンシパル オブジェクトが自動的に作成されます。

Azure portal を使用するメリットは、サポートされているすべての Power BI サービスのアクセス許可が公開されることです。 アクセス許可には、すべてのレポートの表示やすべてのレポートの読み取りと書き込みに関する権限などが含まれます。

Azure portal の [API アクセス許可の要求] ウィンドウのスクリーンショット。付与された 2 つのアクセス許可 (すべてのレポートの表示と、すべてのレポートの読み取りと書き込み) が示されています。

Azure portal では、マスター ユーザー アカウントにこれらのアクセス許可を付与して、Azure AD が同意を求めないようにすることができます。 さらに、グローバル管理者は、組織内のすべてのユーザーに、すべてのアプリ ユーザーへのプロンプトを回避するためのアクセス許可を付与することができます。

注意

アプリの埋め込み ID がサービス プリンシパルの場合は、アクセス許可を付与する必要がありません。 これは、Power BI 管理者が Power BI 管理ポータルでそのアクセス許可を管理するためです。

ただし、Azure portal を使用するデメリットは、開発者が時間のかかる複雑な作業であることに気付く可能性があることです。

埋め込みセットアップ ツールを使用する

開発環境のセットアップを簡略化および迅速化するには、埋め込みセットアップ ツールを使用します。 2 つの埋め込みソリューション オプション (顧客向けの埋め込み組織向けの埋め込み) が用意されています。

注意

"顧客向け埋め込み" アプリのサンプルでは、サービス プリンシパル埋め込み ID の使用がサポートされませんが、それをサポートするように調整できます。

埋め込みセットアップ ツールに表示される 2 つのオプション (顧客向けの埋め込みと組織向けの埋め込み) のスクリーンショット。

このツールは、セットアップの手間を省きます。 ウィザードのようなワークフローを実行するのに数分しかかかりません。 完了すると、ツールが自動的に次の処理を行います。

  • Azure AD アプリの登録を作成し、関連する Power BI REST API アクセス許可を要求します。
  • 必要に応じて、ワークスペースを作成します。
  • 必要に応じて、データセットとレポートをワークスペースにインポートします。 サンプル レポートをインポートするか、Power BI Desktop (.pbix) ファイルをアップロードするかを選択できます。
  • Azure AD が同意を求めないようにするためのアクセス許可を付与します。
  • ApplicationID、ワークスペース ID (GroupID)、ReportID などの重要な構成値を返します。
  • zip ファイルとしてダウンロード可能な C# で記述されたサンプル ASP.NET アプリを作成します。 アプリの構成ファイルには、すべての構成値 (前述の箇条書きを参照) が含まれていますが、マスター ユーザー アカウントまたはその資格情報は含まれていません。 これらの構成値を入力する必要があります。

これは、初心者の Power BI 埋め込み分析開発者にとって素晴らしいニュースです。 まず、機能するアプリを数分で取得できます。 次に、Microsoft は現在のソフトウェア ライブラリと優れた設計プラクティスを使ってサンプル アプリを開発したので、それらをリバース エンジニアリングすることにより、しくみを理解したり、学習したりできます。 アプリの開発を続けるのか、ゼロから始めて新しいスキルを適用することで新しいアプリを開発するのかを決めるのはユーザーの仕事です。

PowerShell スクリプトを開発する

管理操作を再現する必要がある場合は、アプリの登録を作成するスクリプトを開発するためのオプションが適しています。 たとえば、マルチテナント アプリで新しいテナントをオンボードするスクリプトを作成できます。 適切に記述されたスクリプトを使用すれば、より高速で正確な結果が得られます。

Microsoft Graph は、統合されたプログラマビリティ モデルを提供します。 これは、REST API とクライアント ライブラリを公開して、さまざまな Microsoft クラウド サービスでデータのアクセスと操作の実行を処理します。 アプリの登録の作成に関連して、Microsoft Graph を使用して次のことができます。

  • アプリ シークレットを生成する
  • アプリの登録を作成する
  • アプリのサービス プリンシパルを作成する
  • アプリ所有者としてユーザーを割り当てる
  • セキュリティ グループにサービス プリンシパルを追加する

注意

アプリの登録をプログラムで作成する場合は、サービス プリンシパルが自動的に作成されません。 スクリプトで、明示的にアプリにサービス プリンシパルを追加する必要があります。

ヒント

アプリの登録を作成するスクリプトを開発する方法の例については、「Power BI ソリューション管理を自動化する」モジュールを参照してください。