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 で同意を実行すると、テナント内のサービス プリンシパルがインスタンス化され、問題が解決されます。

  1. connect-MgGraph -Scopes "Application.ReadWrite.All" を実行して、グローバル管理者ユーザー アカウントでサインインします。

  2. 次のコマンドを実行してエンタープライズ アプリケーションを作成します。

    New-MgServicePrincipal -AppId fc876dd1-6bcb-4304-b9b6-18ddf1526b62
    
  3. 作成したエンタープライズ アプリケーションを削除するには、次のコマンドを実行します。

    Remove-MgServicePrincipal
       -ServicePrincipalId <objectID>
    

Microsoft Graph は、Graph エクスプローラーなどの API クライアントを使用して操作できます。

  1. クライアント アプリに、Application.ReadWrite.All アクセス許可を付与します。

  2. エンタープライズ アプリケーションを作成するには、次のクエリを実行します。 appId はアプリケーションのクライアント ID です。

    POST https://graph.microsoft.com/v1.0/servicePrincipals
    Content-type: application/json
    
    {
      "appId": "fc876dd1-6bcb-4304-b9b6-18ddf1526b62"
    }
    
    
  3. 作成したエンタープライズ アプリケーションを削除するには、クエリを実行します。

    DELETE https://graph.microsoft.com/v1.0/servicePrincipals(appId='fc876dd1-6bcb-4304-b9b6-18ddf1526b62')
    
  1. エンタープライズ アプリケーションを作成するには、次のコマンドを実行します。

    az ad sp create --id fc876dd1-6bcb-4304-b9b6-18ddf1526b62
    
  2. 作成したエンタープライズ アプリケーションを削除するには、次のコマンドを実行します。

    az ad sp delete --id
    

次のステップ