Teams ボットに認証を追加する

OAuth 2.0 に基づく Teams SDK 認証を使用して、ユーザー (メール サービスなど) の代わりにリソースにアクセスするボットをMicrosoft Teamsに作成できます。 この方法を使用すると、ユーザーの資格情報に基づいて認証トークンを使用できるボットを簡単に開発できます。 キーは、 ID プロバイダーの使用です。

OAuth 2.0 は、Microsoft Entra IDやその他の多くの ID プロバイダーによって使用される認証と承認のオープン標準です。 OAuth 2.0 の基本的な解釈は、Teams で認証を操作するための前提条件です。

基本的な理解については、OAuth 2 Simplifiedを参照してください。完全な仕様については、OAuth 2.0 を参照してください。

この記事では、以下について説明します。

  • 認証が有効なボットを作成する方法: cs-auth-sample を使用して、ユーザーのサインイン資格情報を処理し、認証トークンを生成します。
  • ボットをデプロイしてAzureし、ID プロバイダーに関連付ける方法: プロバイダーは、ユーザーのサインイン資格情報に基づいてトークンを発行します。 ボットはトークンを使用して、認証が必要なメール サービスなどのリソースにアクセスできます。
  • Microsoft Teams内でボットを統合する方法: ボットが統合されたら、チャットでサインインしてメッセージを交換できます。

前提条件

  • ボットの 基本Teams SDK に関する知識。

  • Azure と OAuth 2.0 の開発に関する知識。

  • Microsoft Visual Studio と Git の最新バージョン。

  • Azure アカウント。 必要に応じて、Azure 無料アカウントを作成できます。

  • 次のサンプル:

    サンプル
    cs-auth-sampleボット認証クイック スタート
    js-auth-sampleBot Auth クイックスタート
    py-auth-sample でのボット認証のクイック スタート

リソース グループを作成する

リソース グループとサービス プランは厳密には必要ありませんが、作成したリソースを簡単に解放できます。 リソースを整理して管理できるようにしておくことをお勧めします。

リソース グループを使用して、ボットの個々のリソースを作成します。 パフォーマンスを確保するために、これらのリソースが同じ Azure リージョンにあることを確認します。

  1. ブラウザーで、Microsoft Azure portal にサインインします。
  2. 左側のナビゲーション パネルで、リソース グループ を選択します。
  3. 表示されるウィンドウの左上で、[追加] タブを選択して、新しいリソース グループを作成します。 次のユーザー詳細を入力します。
    1. サブスクリプション。 既存のサブスクリプションを使用します。
    2. リソース グループ。 リソース グループの名前を入力します。 たとえば、 TeamsResourceGroup です。 名前は一意である必要があることに注意してください。
    3. [ リージョン ] ドロップダウン メニューで、[ 米国西部] またはアプリケーションに近いリージョンを選択します。
    4. [確認して作成] ボタンを選択します。 "検証合格" バナーが表示されます。
    5. [作成] ボタンを選択します。 リソース グループの作成には数分かかる場合があります。

ヒント

このチュートリアルの後半で作成するリソースと同様に、簡単にアクセスできるようにこのリソース グループをダッシュボードにピン留めすることをお勧めします。 これを行う場合は、ダッシュボードの右上にある 📌 ピン アイコンを選択します。

サービス プランを作成する

  1. Azure portal の左側のナビゲーション パネルで、[リソースの作成] を選択します。
  2. 検索ボックスに、「App Service Plan」 と入力します。 検索結果から App Service Plan カードを選択します。
  3. [作成] を選択します。
  4. 以下の情報を指定します。
    1. サブスクリプション。 既存のサブスクリプションを使用できます。
    2. リソース グループ。 前に作成したグループを選択します。
    3. 名前。 サービス プランの名前を入力します。 たとえば、 TeamsServicePlan などです。 名前はグループ内で一意である必要があることに注意してください。
    4. オペレーティング システムWindows または該当する OS 選択します。
    5. リージョン[米国西部] またはアプリケーションに近いリージョンを選択します。
    6. 価格レベル。 既定値Standard S1 を選択します。
    7. [確認して作成] ボタンを選択します。 "検証合格" バナーが表示されます。
    8. [作成] を選択します。 アプリ サービス プランの作成には数分かかる場合があります。 プランがリソース グループに一覧表示されます。

Azure Bot リソースの登録を作成する

Azure Bot リソース登録では、Web サービスがボットとしてAzure Bot Serviceに登録されます。これにより、Microsoft アプリ ID とアプリ パスワード (クライアント シークレット) が提供されます。

重要

ボットがAzureでホストされていない場合にのみ、ボットを登録する必要があります。 Azure portalを使用してボットを作成した場合は、サービスに既に登録されています。 開発者ポータルを使用してボットを作成した場合、ボットはAzureに登録されません。

  1. Azure porta にアクセスし、[リソースの作成] セクションで Azure Bot を検索します。

  2. Azure Bot を開き [作成] を選択します。

  3. [ボット ハンドル] フィールドでボット ハンドル名を入力します。

  4. ドロップダウン リストから [サブスクリプション] を選択します。

  5. ドロップダウン リストから [リソース グループ] を選択します。

  6. [ユーザー割り当てマネージド ID] として [アプリの種類] または [Microsoft アプリ IDシングル テナント] を選択します。

    重要

    • Azure Bot Serviceマルチテナント ボットの種類は非推奨です。 既存のマルチテナント ボットは引き続き機能します。
    • すべての新しいボット登録では、 シングル テナント ボットの種類または ユーザー割り当てマネージド ID の種類を使用する必要があります。
    • Azure portalでEntra アプリを登録する場合でも、[任意の組織ディレクトリのアカウント (マルチテナント)] オプションを選択できます。 これにより、サポートされているいずれかの種類のボットを使用する場合、アプリが登録されているテナントの外部でも、ボットを複数のテナント間で動作できます。
    • いずれの場合も、TENANT_IDは、Microsoft Entra ID アプリが登録されているAzure テナントのテナント ID に設定する必要があります。

    Microsoft AppID のマルチテナントを選択する方法を示すスクリーンショット。

  7. [確認 + 作成] を選びます。

    Azureボットを作成する方法を示すスクリーンショット。

  8. 検証に合格した場合は、[作成] を選択します。

    Azureはボットをプロビジョニングします。

    ボットの検証Azureパスする方法を示すスクリーンショット。

  9. [リソースに移動] を選びます。 ボットと関連リソースがリソース グループに一覧表示されます。

    リソース グループを選択する方法を示すスクリーンショット。

    Azure ボットが作成されます。

    Azureボット リソースを作成する方法を示すスクリーンショット。

クライアント シークレットを作成するには:

  1. [構成設定] で、[追加] を選択します。 将来の参照のために、Microsoft アプリ ID (クライアント ID) を保存します。

    Microsoft アプリ ID を追加してクライアント シークレットを作成する方法を示すスクリーンショット。

  2. [Microsoft アプリ ID] の横にある [管理] を選択します

    ボットを作成および管理する方法を示すスクリーンショット。

  3. [ クライアント シークレット ] セクションで、[ 新しいクライアント シークレット] を選択します。 [クライアント シークレットの追加] ウィンドウが表示されます。

    新しいクライアント シークレットを作成する方法を示すスクリーンショット。

  4. [説明] を入力し、[追加] を選択します。

    スクリーンショットは、クライアント シークレットの説明を入力する方法を示しています。

  5. [値] の列で、[クリップボードにコピー] を選択し、将来参照できるようにクライアント シークレット ID を保存します。

    このスクリーンショットは、後で参照できるようにクライアント シークレット ID を保存する方法を示しています。

Microsoft Teams チャネルに追加するには:

  1. [ホーム] に移動します。

    ボットのホーム ページを示すスクリーンショット。

  2. [ 最近使ったリソース ] セクションからボットを開きます。

  3. 左側のウィンドウで [ チャネル ] を選択し、[ Microsoft Teams ] を選択します。

    チャネルで Teams を選択する方法を示すスクリーンショット。

  4. チェックボックスをオンにして利用規約に同意し、[同意する] を選択 します

    サービスの条件を設定する方法を示すスクリーンショット。

  5. [保存] を選択します。

    Microsoft Teams チャネルを追加する方法を示すスクリーンショット。

詳細については、「Microsoft Teams 用にボットを作成する」を参照してください。

ID プロバイダーの作成

認証には ID プロバイダーが必要です。 この手順では、Microsoft Entra プロバイダーを使用します。 または、サポートされている他のMicrosoft Entra ID ID プロバイダーを使用することもできます。

  1. Azure portalの左側のナビゲーション パネルで、[Microsoft Entra ID] を選択します。

    ヒント

    アプリケーションによって要求されたアクセス許可を委任することに同意できるテナントで、このMicrosoft Entra リソースを作成して登録する必要があります。 テナントの作成手順については、「 ポータルにアクセスしてテナントを作成する」を参照してください。

  2. 左側のパネルで、[アプリの登録] を選択します。

  3. 右側のパネルで、左上の [新規登録] タブを選択します。

  4. 以下の情報を指定します。

    1. 名前。 アプリケーションの名前を入力します。 例として BotTeamsIdentity があります。 名前は一意である必要があることに注意してください。
    2. アプリケーションにサポートされているアカウントの種類を選択します。 任意の組織のディレクトリ (任意のMicrosoft Entra ID テナント - マルチテナント) と個人用 Microsoft アカウント (Skype、Xbox など) のアカウントを選択します。
    3. [リダイレクト URI] の場合:
      [Web] を選択します。
      ✓ URL を https://token.botframework.com/.auth/web/redirect に設定します。
    4. [登録] を選択します。
  5. Azureアプリを作成すると、アプリの [概要] ページが表示されます。 次の情報をコピーしてファイルに保存します。

    1. アプリケーション (クライアント) ID の値。 このAzure ID アプリケーションをボットに登録するときは、後でクライアント ID としてこの値を使用します。
    2. [ディレクトリ (テナント) ID] をコピーします。 このAzure ID アプリケーションをボットに登録するときは、後でテナント ID としてこの値を使用します。
  6. 左側のパネルで [証明書とシークレット] を選択して、アプリケーションのクライアント シークレットを作成します。

    1. [ クライアント シークレット] で、[ 新しいクライアント シークレット] を選択➕します。
    2. Teams のボット ID アプリなど、このアプリ用に作成する必要がある可能性がある他のユーザーからこのシークレットを識別する説明を追加します。
    3. [期限切れ] を選択に設定します。
    4. [追加] を選択します。
    5. このページを終了する前に、シークレットを記録します。 Microsoft Entra アプリケーションをボットに登録するときは、後でクライアント シークレットとしてこの値を使用します。

ID プロバイダー接続を構成し、ボットに登録する

注:

サービス プロバイダーには、Active Directory v1 Azureと Active Directory v2 Azureの 2 つのオプションがあります。 2 つのプロバイダー間の違いを ここでまとめますが、一般的に、v2 ではボットのアクセス許可の変更に関して柔軟性が高くなります。 Graph API アクセス許可がスコープ フィールドに一覧表示され、新しいアクセス許可が追加されると、ボットによって、ユーザーは次回のサインイン時に新しいアクセス許可に同意できるようになります。 v1 の場合、OAuth ダイアログで新しいアクセス許可を求めるメッセージが表示されるように、ボットの同意をユーザーが削除する必要があります。

Microsoft Azure Active Directory (Azure AD) v1

  1. Azure portal で、ダッシュボードからリソース グループを選択します。

  2. ボット登録リンクを選択します。

  3. リソース ページを開き、[設定]の下にある [構成] を選択します。

  4. [OAuth 接続設定の追加] を選択します。 次の図は、リソース ページの対応する選択を示しています。

    SampleAppDemoBot の構成

  5. フォームに次のように入力します。

    1. 名前。 接続の名前を入力します。 この名前は、 appsettings.json ファイル内のボットで使用します。 たとえば、 BotTeamsAuthADv1 です。

    2. サービス プロバイダーAzure Active Directory を選択します。 このオプションを選択すると、Azure Active Directory 固有のフィールドが表示されます。

    3. クライアント ID。Azure ID プロバイダー アプリ用に記録したアプリケーション (クライアント) ID を入力します。

    4. クライアント シークレット。 Azure ID プロバイダー アプリ用に記録したシークレットを入力します。

    5. 許可の種類authorization_code を入力します。

    6. ログイン URLhttps://login.microsoftonline.com を入力します。

    7. テナント ID、ID プロバイダー アプリの作成時に選択したサポートされているアカウントの種類に応じて、先ほど Azure ID アプリ用に記録した ディレクトリ (テナント) ID を入力するか、common を入力します。 割り当てる値を決定するには、次の条件に従います。

      • [この組織ディレクトリ内のアカウントのみ (Microsoft のみ - シングル テナント)] または任意の組織ディレクトリ内のアカウント (Any Microsoft Entra ID テナント - Multitenant) を選択した場合は、Microsoft Entra アプリ用に前に記録したテナント ID を入力します。 これは、認証できるユーザーに関連付けられているテナントになります。

      • 任意の組織ディレクトリ (任意のMicrosoft Entra ID テナント - マルチテナント) と個人用 Microsoft アカウント (Skype、Xbox など) で [アカウント] を選択した場合は、テナント ID の代わりに共通の単語を入力します。 それ以外の場合、Microsoft Entra アプリは、ID が選択されたテナントを介して検証し、個人用 Microsoft アカウントを除外します。

    h. リソース URL には、「https://graph.microsoft.com/」と入力します。 この URL は、コード サンプルでは使用されません。
    i. [Scopes] は空白のままにします。 次の図に例を示します。

    Teams ボット認証ボット ID 接続 adv1 を追加する方法を示すスクリーンショット。

  6. [保存] を選択します。

Microsoft Azure Active Directory (Azure AD) v2

  1. Azure portal で、ダッシュボードから Azure Bot を選択します。

  2. リソース ページで、[設定] にある [構成] を選択します。

  3. [OAuth 接続設定の追加] を選択します。
    次の図は、リソース ページの対応する選択を示しています。

    リソース ページの対応する選択内容を示すスクリーンショット。

  4. フォームに次のように入力します。

    1. 名前。 接続の名前を入力します。 appsettings.json ファイル内のボットでこの名前を使用します。 たとえば、 BotTeamsAuthADv2 です。

    2. サービス プロバイダー[Azure Active Directory v2] を選択します。 このオプションを選択すると、Azure AD v2 固有のフィールドが表示されます。

    3. クライアント ID。Azure ID プロバイダー アプリ用に記録したアプリケーション (クライアント) ID を入力します。

    4. クライアント シークレット。 Azure ID プロバイダー アプリ用に記録したシークレットを入力します。

    5. トークン交換 URL。 空白のままにします。

    6. テナント ID、ID プロバイダー アプリの作成時に選択したサポートされているアカウントの種類に応じて、先ほど Azure ID アプリ用に記録した ディレクトリ (テナント) ID を入力するか、common を入力します。 割り当てる値を決定するには、次の条件に従います。

      • [この組織ディレクトリ内のアカウントのみ (Microsoft のみ - シングル テナント)] または任意の組織ディレクトリ内のアカウント (Any Microsoft Entra ID テナント - Multitenant) を選択した場合は、Microsoft Entra アプリ用に前に記録したテナント ID を入力します。 これは、認証できるユーザーに関連付けられているテナントになります。

      • 任意の組織ディレクトリ (任意のMicrosoft Entra ID テナント - マルチテナント) と個人用 Microsoft アカウント (Skype、Xbox など) で [アカウント] を選択した場合は、テナント ID の代わりに共通の単語を入力します。 それ以外の場合、Microsoft Entra アプリは、ID が選択されたテナントを介して検証し、個人用 Microsoft アカウントを除外します。

    7. [スコープ] には、User.Read、User.ReadBasic.All、Mail.Read など、アプリケーションで必要なグラフのアクセス許可のスペース区切りの一覧を入力します。

  5. [保存] を選択します。

接続をテストします。

  1. 接続エントリを選択して、作成した接続を開きます。

  2. [サービス プロバイダー接続設定] パネルの上部になる[テスト接続] を選択します。

  3. 初めて、アカウントの選択を求める新しいブラウザー ウィンドウが開きます。 使用するものを選択します。

  4. 次に、ID プロバイダーがデータ (資格情報) を使用できるようにします。 次の図に例を示します。

    スクリーンショットは、adv1 接続文字列 Teams ボット認証を追加する方法を示しています。

  5. [同意する] を選択します。

  6. [test connection to <your-connection-name> Succeeded]\(成功しました\) ページが開きます。 エラーが発生した場合は、ページを更新します。 次の図に例を示します。

    スクリーンショットは、adv1 接続文字列 Teams アプリ認証を追加する方法を示しています。

ボット コードでは、接続名を使用してユーザー認証トークンを取得します。

ボットのサンプル コードを準備する

準備の設定が完了したら、この記事で使用するボットの作成に焦点を当ててみましょう。

  1. cs-auth-sample を複製します。

  2. Visual Studio を開きます。

  3. ツール バーで、[ ファイル] > [プロジェクト/ソリューション > 開く ] を選択し、ボット プロジェクトを開きます。

  4. C# では、次のように 更新appsettings.json

    • ConnectionName を、ボット登録に追加した ID プロバイダー接続の名前に設定します。 この例で使用した名前は、BotTeamsAuthADv1 です。
    • ClientId をボット登録時に保存した ボット アプリ ID に設定します。
    • ClientSecretを、ボットの登録時に保存したクライアント シークレットに設定します。

    ボット シークレットの文字によっては、パスワードを XML でエスケープすることが必要になる場合があります。 たとえば、アンパサンド (&) は &amp;としてエンコードする必要があります。

    {
     "Teams": {
       "ClientId": "",
       "ClientSecret": "",
       "TenantId": "",
       "ConnectionName": ""
     }
    }
    
  5. ソリューション エクスプローラーで、appPackage フォルダーに移動し、manifest.jsonを開き、idを設定し、ボットの登録時に保存したボットアプリ IDbotIdします。 詳細については、「アプリ マニフェスト」を参照してください。

ボットを Azure にデプロイする

ボットをデプロイするには、「ボットをデプロイしてAzureする方法」の手順に従います。

または、Visual Studio の場合は、次の手順を実行できます:

  1. Visual Studio ソリューション エクスプローラーで、プロジェクト名を長押し (または右クリック) します。

  2. ドロップダウン メニューの [発行] を選択 します

  3. 表示されたウィンドウで、[新規] リンクを選択します。

  4. ダイアログ ウィンドウで、[App Service] と [新規作成] を選択します

  5. [発行] を選択します。

  6. 次のダイアログ ウィンドウで、必要な情報を入力します。

    認証アプリ サービスに必要な情報を入力する方法を示すスクリーンショット。

  7. [作成] を選択します。

  8. デプロイが正常に完了すると、Visual Studio に反映されます。 既定のブラウザーでページが開き、[ ボットの準備ができました!] というメッセージが表示されます。 URL は https://botteamsauth.azurewebsites.net/に似ています。 ファイルに保存します。

  9. ブラウザーで、Azure portalに移動します。

  10. リソース グループを確認すると、ボットが他のリソースと共に一覧表示されます。 次の図に例を示します。

    リソース グループとボットをチェックする方法を示すスクリーンショット。

  11. リソース グループで、ボット登録名 (リンク) を選択します。

  12. 左側のウィンドウで [設定] を選択します。

  13. [ メッセージング エンドポイント ] ボックスに、取得した URL の後に api/messages を入力します。 たとえば、「 https://botteamsauth.azurewebsites.net/api/messages 」のように入力します。

    注:

    ボットに対して許可されるメッセージング エンドポイントは 1 つだけです。

  14. 左上の [保存] ボタンを選択します。

Microsoft 365 エージェントプレイグラウンドを使用してローカルでテストする

ボットをローカルでテストするには、エージェントとボットの両方をサポートする Microsoft 365 Agents Playground を使用します。
セットアップとテストの手順については、「 Microsoft 365 Agents Playground を使用してエージェントをローカルでテストする」を参照してください

デプロイされたボットをテストする

  1. ブラウザーで、Azure portalに移動します。

  2. リソース グループを見つけます。

  3. リソース リンクを選択します。 リソース ページが表示されます。

  4. リソース ページで、[Web チャットでテスト] を選択します。 ボットが起動し、事前定義された案内応答が表示されます。

  5. チャット ボックスに何かを入力します。

  6. [サインイン] ボックスを選択します。

  7. ポップアップ ダイアログが [ 開いている URL の確認 ] に表示され、ボットのユーザーを認証します (ユーザー)。

  8. [確認] を選択します。

  9. メッセージが表示されたら、該当するユーザーのアカウントを選択します。 次の図は、サインイン後のボット UI の例です。

    サインイン後の Teams ボット UI の例を示すスクリーンショット。

  10. [はい] ボタンを選択して、認証トークンを表示します。 次の図に例を示します。

    [はい] ボタンを選択して認証トークンを表示する方法を示すスクリーンショット。

  11. 入力チャット ボックスに 「ログアウト 」と入力してサインアウトします。

    ボットからサインアウトする方法を示すスクリーンショット。

注:

サインインに問題がある場合は、前の手順で説明したように、接続をもう一度テスト してみてください。 これにより、認証トークンが再作成される可能性があります。 AzureのWeb チャット クライアントでは、認証が正しく確立されるまでに数回サインインすることが必要になる場合があります。

Teams でボットをインストールしてテストする

  1. ボット プロジェクトで、appPackage フォルダーに manifest.json が、outline.png および color.png と共に含まれていることを確認します。

  2. ソリューション エクスプローラーで、appPackage フォルダーに移動します。 次の値を割り当てて、manifest.json を編集します:

    1. ボットの登録時に受け取ったボット アプリ IDidbotId に割り当てられていることを確認します。
    2. この値を割り当てます: validDomains: [ "token.botframework.com" ]
  3. manifest.jsonoutline.png、および color.png ファイルを選択して zip します。

  4. Microsoft Teams を開きます。

  5. 左側のパネルの下部で、Apps アイコン を選択します。

  6. 右側のパネルの下部にある [カスタム アプリのアップロード] を選択します。

  7. appPackage フォルダーに移動し、zip 形式のマニフェストをアップロードします。

  8. [ 追加] を選択して、アプリを Teams にインストールします。

    [追加] オプションが強調表示されている TeamsBotAuth アプリのインストールのスクリーンショット。

  9. 必要なスコープを検索して選択するか、一覧からチャネルまたはチャットを選択し、ダイアログ内を移動して [移動] を選択します。

    TeamsBotAuth アプリスコープの選択ダイアログのスクリーンショット。必要なスコープを選択します。

    注:

    OAuth は、グループ チャットまたはチャネル スコープで直接サポートされていません。 認証を有効にし、ユーザーがグループ チャットまたはチャネルにボットをインストールする場合、ユーザーはグループ チャットまたはチャネルでボットを使用する前に、個人用スコープで認証する必要があります。

  10. 左側のパネルで 3 つのドット (●●●) を選択します。 次に、[ 開発者ポータル ] アイコンを選択します。

  11. [マニフェスト エディター] タブを選択します。アップロードしたボットのアイコンが表示されます。

  12. また、ボットとメッセージを交換するために使用できるボットをチャットリストに連絡先として表示できます。

Teams でボットをローカルでテストする

Teams は完全にクラウドベースの製品です。 HTTPS エンドポイントを使用して、アクセスするすべてのサービスをクラウドから利用できるようにする必要があります。 そのため、ボット (サンプル) を Teams で動作させるには、任意のクラウドにコードを発行するか、トンネリング ツールを使用してローカルで実行されているインスタンスに外部からアクセスできるようにする必要があります。 コンピューターでローカルに開くポートの外部アドレス指定可能な URL を作成する ngrok をお勧めします。 Teams アプリをローカルで実行するための準備として ngrok を設定するには、次の手順に従います。

  1. ターミナル ウィンドウで、ngrok.exe がインストールされているディレクトリに移動します。 環境変数 パスをポイントするように設定することをお勧めします。

  2. たとえば、ngrok http 3978 --host-header=localhost:3978 を実行します。 必要に応じてポート番号を置き換えます。 指定したポートでリッスンするために ngrok が起動します。 その返しとして、ngrok が実行されている限り有効な外部アドレス指定可能な URL が提供されます。 次の図に例を示します。

    スクリーンショットは、adv1 接続文字列 Teams ボット アプリ認証を示しています

  3. 次のような転送 HTTPS アドレスをコピーします: https://dea822bf.ngrok.io/

  4. /api/messagesを追加してhttps://dea822bf.ngrok.io/api/messagesを取得します。これは、コンピューター上でローカルで実行され、Teams のチャットで Web 経由で到達できるボットのメッセージ エンドポイントです。

  5. 実行する最後の手順の 1 つは、デプロイされたボットのメッセージ エンドポイントを更新することです。 この例では、ボットを Azure にデプロイしました。 それでは、次の手順を実行しましょう:

    1. ブラウザーで、Azure portalに移動します。
    2. [ボットの登録] を選択します。
    3. 左側のウィンドウで [設定] を選択します。
    4. 右側のパネルの [メッセージング エンドポイント] ボックスに、ngrok URL を入力します(例: https://dea822bf.ngrok.io/api/messages)。
  6. ボットをローカルで起動します (Visual Studioデバッグ モードなど)。

  7. Web チャットでAzure portalのテストを使用して、ローカルで実行中にボットをテストします。

  8. ngrok が実行されているターミナル ウィンドウでは、ボットと Web チャット クライアントの間の HTTP トラフィックを確認できます。 より詳細なビューが必要な場合は、ブラウザー ウィンドウで、前のターミナル ウィンドウから取得した http://127.0.0.1:4040 を入力します。 次の図に例を示します。

    認証ボット チームの ngrok テストを示すスクリーンショット。

注:

ngrok を停止して再起動すると、URL が変更されます。 プロジェクトで ngrok を使用するには、また使用している機能に応じて、すべての URL 参照を更新する必要があります。

追加情報

appPackage/manifest.json

このマニフェストには、ボットに接続するために Teams で必要な情報が含まれています。

{ 

  "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.22/MicrosoftTeams.schema.json", 

  "manifestVersion": "1.22", 

  "version": "1.0.0", 

  "id": "${{TEAMS_APP_ID}}", 

  "developer": { 

    "name": "Teams App, Inc.", 

    "websiteUrl": "https://example.azurewebsites.net", 

    "privacyUrl": "https://example.azurewebsites.net/privacy", 

    "termsOfUseUrl": "https://example.azurewebsites.net/termsofuse" 

  }, 

  "icons": { 

    "color": "color.png", 

    "outline": "outline.png" 

  }, 

  "name": { 

    "short": "Auth Bot", 

    "full": "Auth Bot" 

  }, 

  "description": { 

    "short": "Teams bot with SSO authentication and Graph API integration.", 

    "full": "This bot demonstrates SSO authentication in Microsoft Teams using Azure AD, and uses Microsoft Graph API to retrieve the user profile." 

  }, 

  "accentColor": "#FFFFFF", 

  "bots": [ 

    { 

      "botId": "${{BOT_ID}}", 

      "scopes": [ 

        "personal", 

        "groupChat", 

        "team" 

      ], 

      "supportsFiles": false, 

      "isNotificationOnly": false 

    } 

  ], 

  "permissions": [ 

    "identity", 

    "messageTeamMembers" 

  ], 

  "validDomains": [ 

    "token.botframework.com", 

    "${{BOT_DOMAIN}}" 

  ], 

  "webApplicationInfo": { 

    "id": "${{BOT_ID}}", 

    "resource": "api://botid-${{BOT_ID}}" 

  } 

} 

認証では、Teams は他のチャネルとは異なる動作をします。

コード サンプル

このサンプルでは、Azure Active Directory を使用して、Microsoft Teams ボットに対してシングル Sign-On (SSO) 認証を実装する方法を示します。

サンプルの名前 説明 .NET Node.js Python
Bot Auth クイック スタート このサンプルでは、Azure Active Directory を使用して、Microsoft Teams ボットに対してシングル Sign-On (SSO) 認証を実装する方法を示します。 表示 表示 表示

関連項目