Microsoft Entra ID でマルチテナント アプリケーションからエンタープライズ アプリケーションを作成する
この記事では、マルチテナント アプリケーションのクライアント ID を使用して、テナントにエンタープライズ アプリケーションを作成する方法について説明します。 エンタープライズ アプリケーションでは、テナント内のサービス プリンシパルを参照します。 この記事で説明するサービス プリンシパルは、単一のテナントまたはディレクトリ内のグローバル アプリケーション オブジェクトのローカル表現、つまりアプリケーション インスタンスです。
これらのオプションのいずれかを使用してアプリケーションを追加する前に、アプリケーションへのサインインを試みることで、エンタープライズ アプリケーションが既にテナントに存在するかどうかを確認します。 サインインが成功した場合は、エンタープライズ アプリケーションがテナントに既に存在しています。
アプリケーションがテナントに存在しないことを確認済みの場合は、次のいずれかの方法でエンタープライズ アプリケーションをテナントに追加します。
前提条件
Microsoft Entra テナントにエンタープライズ アプリケーションを追加するには、次のものが必要です。
- Microsoft Entra ユーザー アカウント。 まだアカウントがない場合は、無料でアカウントを作成することができます。
- 次のいずれかのロール: クラウド アプリケーション管理者、アプリケーション管理者。
- マルチテナント アプリケーションのクライアント ID (Microsoft Graph では appId とも呼ばれる)。
エンタープライズ アプリケーションの作成
管理者の同意 URL が指定されている場合は、Web ブラウザーから URL に移動して、アプリケーションに対してテナント全体の管理者の同意を付与します。 テナント全体の管理者の同意をアプリケーションに付与すると、テナントに追加されます。 テナント全体の管理者の同意の URL は、次のような形式です。
https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=248e869f-0e5c-484d-b5ea1fba9563df41&redirect_uri=https://www.your-app-url.com
ここで:
{client-id}
は、アプリケーションのクライアント ID (アプリ ID とも呼ばれます) です。
Note
エンタープライズ アプリケーションを使用しようとしても、サービス プリンシパルがまだテナントに作成されていない場合、Entra は "クライアント アプリケーション {appId} がテナント {tenantId} にサービス プリンシパルがありません" という (401) Unauthorized エラーを返します。このエラーを解決するには、前述のように管理者の同意 URL で同意を実行すると、テナント内のサービス プリンシパルがインスタンス化され、問題が解決されます。
connect-MgGraph -Scopes "Application.ReadWrite.All"
を実行して、少なくともクラウド アプリケーション管理者ロールでサインインします。次のコマンドを実行してエンタープライズ アプリケーションを作成します。
New-MgServicePrincipal -AppId 00001111-aaaa-2222-bbbb-3333cccc4444
作成したエンタープライズ アプリケーションを削除するには、次のコマンドを実行します。
Remove-MgServicePrincipal -ServicePrincipalId bbbbbbbb-1111-2222-3333-cccccccccccc
Microsoft Graph は、Graph エクスプローラーなどの API クライアントを使用して操作できます。
クライアント アプリに
Application.ReadWrite.All
アクセス許可を許可します。エンタープライズ アプリケーションを作成するには、次のクエリを実行します。 appId はアプリケーションのクライアント ID です。
POST https://graph.microsoft.com/v1.0/servicePrincipals Content-type: application/json { "appId": "00001111-aaaa-2222-bbbb-3333cccc4444" }
作成したエンタープライズ アプリケーションを削除するには、クエリを実行します。
DELETE https://graph.microsoft.com/v1.0/servicePrincipals(appId='00001111-aaaa-2222-bbbb-3333cccc4444')
エンタープライズ アプリケーションを作成するには、次のコマンドを実行します。
az ad sp create --id 00001111-aaaa-2222-bbbb-3333cccc4444
作成したエンタープライズ アプリケーションを削除するには、次のコマンドを実行します。
az ad sp delete --id bbbbbbbb-1111-2222-3333-cccccccccccc