TeamsFx で既存のEntra アプリを使用する

このセクションでは、既存のEntra アプリの登録を使用するか、新しいアプリを作成して、Microsoft Entra IDを TeamsFx プロジェクトに接続する方法について説明します。 エージェントまたはアプリを実行または展開する前に、必要な認証設定と TeamsFx 値を設定する手順に従います。

Microsoft Entra アプリを作成する

注:

Microsoft Entra アプリが既にある場合は、この部分をスキップできます。 この手順は、 aadApp/create アクションによって自動化できます。

  1. Azure portalに移動し、[Microsoft Entra ID] を選択します

  2. [アプリの登録>新しい登録] を選択して、新しいMicrosoft Entra アプリを作成します。 次の詳細を追加します。

    1. 名前: 構成アプリの名前。
    2. サポートされているアカウントの種類: [この組織のディレクトリでのみアカウント] を選択します。
    3. [ リダイレクト URL ] フィールドは今のところ空白のままにします。
    4. [登録] を選択します。
  3. アプリが登録されると、その [概要 ] ページに移動します。 後で使用するために、 アプリケーション (クライアント) IDオブジェクト IDディレクトリ (テナント) ID を コピーします。 [サポートされているアカウントの種類] が [マイ organizationのみ] に設定されていることを確認します。

Microsoft Entra アプリのクライアント シークレットを作成する (省略可能)

注:

エージェントまたはアプリにクライアント シークレットが必要ない場合は、この部分をスキップできます。 この手順は、 aadApp/create アクションによって自動化できます。

  1. アプリの [証明書 & シークレット ] ページに移動し、[ クライアント シークレット ] を選択し、[ 新しいクライアント シークレット] を選択します。 次の詳細を選択します。

    1. 説明: クライアント シークレットの説明。
    2. 期限切れ: クライアント シークレットの有効期限。
    3. [追加] を選択します。
  2. クライアント シークレットが追加されたら、[ ] 列の下にあるコピー ボタンを押して クライアント シークレットをコピーします。

Microsoft Entra アプリのユーザー スコープとしてのアクセスを作成する (省略可能)

注:

Microsoft 365 アカウントにMicrosoft Entra アプリを更新するアクセス許可がある場合は、この部分をスキップできます。 エージェント ツールキットは、アプリのスコープを作成します。 この手順は、 aadApp/update アクションによって自動化できます。

  1. アプリの [API の公開] ページに移動し、[この API によって定義されたスコープ] で [スコープの追加] を選択し、指定した手順に従います。

    1. [保存して続ける] を選択します。
    2. スコープ名: access_as_userを入力します。
    3. 同意できるユーザー: [管理者とユーザー] を選択します。
    4. 同意の表示名管理: Teams に入力すると、アプリの Web API にアクセスできます
    5. 同意の説明管理: [Teams がアプリの Web API を現在のユーザーとして呼び出すことができます] に入力します
    6. ユーザーの同意の表示名: Teams に入力 すると、アプリの Web API にアクセスし、ユーザーに代わって要求を行うことができます
    7. ユーザーの同意の説明: [Teams でこのアプリの Web API を同じ権限で呼び出せるようにする] に入力します。
    8. 状態: [有効] を選択します。
    9. [スコープの追加] を選択します。
  2. 同じページで、[承認された クライアント アプリケーション ] で [ クライアント アプリケーションの追加] を選択し、次の詳細を追加します。

    1. クライアント ID: 1fec8e78-bce4-4aaf-ab1b-5451cc387264 を入力します。これは、モバイルとクライアントのMicrosoft Teamsのクライアント ID です。
    2. 承認されたスコープ: 既存の access_as_user スコープを選択します。
    3. [アプリケーションの追加] を選択します。
  3. [ クライアント アプリケーションの追加] を 選択し、詳細を追加します。

    1. クライアント ID: 5e3ce6c0-2b1f-4285-8d4b-75ee78787346 (Web 上の Teams のクライアント ID) を入力します。
    2. 承認されたスコープ: 既存の access_as_user スコープを選択します。
    3. [アプリケーションの追加] を選択します。
  4. アプリの [マニフェスト] ページに移動し、oauth2Permissions の下の ID をAccess As User Scope ID としてコピーします

既存のMicrosoft Entra アプリ情報を取得する

既に登録されているAzure アプリがある場合は、新しい登録を作成するのではなく、TeamsFx プロジェクトで再利用できます。 開始する前に、既存のアプリ登録から必要な構成値をキャプチャして、TeamsFx プロジェクトに追加できるようにします。

注:

上記の手順に従ってMicrosoft Entra アプリを作成した場合は、この部分をスキップできます。

  1. Azure portalに移動し、[Microsoft Entra ID] を選択します

  2. [アプリの登録] を選択し、既存のMicrosoft Entra アプリを見つけます。

  3. アプリの [概要] ページに移動し、アプリケーション (クライアント) ID、オブジェクト ID、ディレクトリ (テナント) ID をコピーします。これは後で必要になります。

  4. [サポートされているアカウントの種類] が [マイ organizationのみ] に設定されていることを確認します。

  5. アプリの [概要 ] ページに移動し、後で使用するために アプリケーション (クライアント) IDオブジェクト IDディレクトリ (テナント) ID を コピーします。 [サポートされているアカウントの種類] が [マイ organizationのみ] に設定されていることを確認します。

  6. アプリの [証明書 & シークレット ] ページに移動し、[ ] 列の下にあるコピー ボタンを押して クライアント シークレットをコピーします。

    注:

    シークレットをコピーできない場合は、 手順 に従って新しいクライアント シークレットを作成します。

  7. アプリの [API の 公開] ページに 移動します。 access_as_user スコープが既に定義されていて、2 つの Teams クライアント ID が事前に承認されている場合は、[マニフェスト] を開き、oauth2Permissions の下の ID 値をコピーし、それを Access As User Scope ID として入力します。

TeamsFx プロジェクトで Entraa アプリ情報を設定する

Microsoft Entra アプリから保存した情報を TeamsFx プロジェクトに追加します。

注:

aadApp/createアクションを使用してアプリMicrosoft Entra作成しない場合は、次の手順に従わずに、必要な環境変数を任意の名前で追加できます。

  1. m365agents.ymlを開き、aadApp/createアクションを見つけます。

  2. writeToEnvironmentFile プロパティで、Microsoft Entra アプリの情報を格納する環境変数の名前を検索します。 Microsoft 365 Agents Toolkit (以前は Teams Toolkit) を使用してプロジェクトを作成する場合の既定の writeToenvironmentFile 定義を次に示します。

     writeToEnvironmentFile:
       clientId: AAD_APP_CLIENT_ID
       clientSecret: SECRET_AAD_APP_CLIENT_SECRET
       objectId: AAD_APP_OBJECT_ID
       tenantId: AAD_APP_TENANT_ID
       authority: AAD_APP_OAUTH_AUTHORITY
       authorityHost: AAD_APP_OAUTH_AUTHORITY_HOST
    
  3. 手順 2. から各環境変数の値を追加します。

    1. ファイルに次の環境変数とその値 env\.env.{env} 追加します。

      AAD_APP_CLIENT_ID=<value of Microsoft Entra application's client id (application id)> # example: 00000000-0000-0000-0000-000000000000
      AAD_APP_OBJECT_ID=<value of Microsoft Entra application's object id> # example: 00000000-0000-0000-0000-000000000000
      AAD_APP_TENANT_ID=<value of Microsoft Entra's (tenant) id> # example: 00000000-0000-0000-0000-000000000000
      AAD_APP_OAUTH_AUTHORITY=<value of Microsoft Entra's authority> # example: https://login.microsoftonline.com/<Directory (tenant) ID>
      AAD_APP_OAUTH_AUTHORITY_HOST=<host of Microsoft Entra's authority> # example: https://login.microsoftonline.com
      AAD_APP_ACCESS_AS_USER_PERMISSION_ID=<id of access_as_user permission> # example: 00000000-0000-0000-0000-000000000000
      

      AAD_APP_OAUTH_AUTHORITY_HOSTは、エージェントまたはボットが OAuth 2.0 サインイン エンドポイントとして使用するMicrosoft Entra機関ホスト (たとえば、https://login.microsoftonline.com) です。 環境固有のエンドポイントについては、「Microsoft Entra認証エンドポイント」を参照してください。

    2. エージェントまたはアプリでMicrosoft Entraアプリ クライアント シークレットが必要な場合は、次の環境変数とその値をファイルenv\.env.{env}.user追加します。

      SECRET_AAD_APP_CLIENT_SECRET=<value of Microsoft Entra application's client secret>
      

      注:

      writeToEnvironmentFileで異なる名前を使用する場合は、例で示されている環境変数の名前を必ず更新してください。

  4. エージェント ツールキット拡張機能を開き、 クラウドで [プロビジョニング] を選択します。 プロジェクトが正常にプロビジョニングされるまで待ちます。

アプリ マニフェストMicrosoft Entra Azure portalにアップロードする

エージェント ツールキットでMicrosoft Entra アプリが更新されない場合は、次のエラー メッセージが表示されます。

Insufficient privileges to complete the operation.

このメッセージが表示された場合は、アプリのアクセス許可Microsoft Entra更新し、指示に従ってアクセス許可を更新します。

  1. [build/aad.manifest.{env}.json] でMicrosoft Entraアプリ マニフェストを見つけます。

  2. マニフェスト ファイルからコンテンツをコピーします。

  3. Azure portalに移動し、[Microsoft Entra ID] を選択します

  4. [アプリの登録] を選択し、既存のMicrosoft Entra アプリを見つけます。

  5. アプリの [マニフェスト] ページに移動し、マニフェストの内容をエディターに貼り付け、[ 保存 ] を選択して変更を保存します。

関連項目