ネットワークの分離を構成する

2023 年 9 月 1 日から、ネットワークの分離に Azure サービス タグ メソッドを使用することを強くお勧めします。 DL-ASE の稼働率は、非常に具体的なシナリオに限定する必要があります。 運用環境でこのソリューションを実装する前に、サポート チームに相談してガイダンスを受けることをお勧めします。

既存の Direct Line App Service 拡張機能ボットにネットワークの分離を追加できます。 プライベート エンドポイントを使用すると、ネットワーク分離ボットが必要な Bot Framework サービスと通信できるため、ボットは仮想ネットワークに限定されながら正しく実行できます。

ボットにネットワークの分離を追加するには、次の手順を実行します。

  1. 仮想ネットワークを使用し、送信トラフィックを防止するようにネットワークを構成します。 この時点で、ボットは他の Bot Framework サービスと通信できなくなります。
  2. 接続を復元するようにプライベート エンドポイントを構成する
  3. App Service を再起動し、分離されたネットワーク内でボットをテストします。
  4. ボットへのパブリック ネットワーク アクセスを無効にします。

前提条件

  • Azure アカウント。 まだお持ちでない場合は、開始する前に無料アカウントを作成してください。
    • Azure Virtual Network とネットワーク セキュリティ グループ リソースを作成するアクセス許可を持つサブスクリプション。
  • 動作する Direct Line App Service 拡張機能ボット。
    • ボットで、Bot Framework SDK for C# または Bot Framework SDK for JavaScript バージョン 4.16 以降を使用している。
    • ボットで名前付きパイプが有効になっている。
    • ボットの App Service で Direct Line App Service 拡張機能が有効になっている。
  • ボットの Direct Line クライアントに接続されているWeb チャット コントロール。

既存のボットが正しく構成されていることを確認するには、次の手順を実行します。

  1. ブラウザーで、ボットの Direct Line クライアント エンドポイントを開きます。 たとえば、https://<your-app_service>.azurewebsites.net/.bot のようにします。

  2. ページに次の内容が表示されていることを確認します。

    {"v":"123","k":true,"ib":true,"ob":true,"initialized":true}
    
    • v によって、Direct Line App Service 拡張機能のビルドバージョンが表示されます。
    • k は、拡張機能がその構成から拡張キーを読み取ることができたかどうかを示します。
    • initialized は、拡張機能が Azure AI Bot Service からボット メタデータをダウンロードできたかどうかを示します。
    • ib は、拡張機能がボットへの受信接続を確立できたかどうかを示します。
    • ob は、拡張機能がボットへの送信接続を確立できたかどうかを示します。

仮想ネットワークの作成

  1. Azure ポータル に移動します。
  2. ボットと同じリージョンに Azure Virtual Network リソースを作成します。
  3. ボットの App Service リソースを開き、仮想ネットワーク統合を有効にします。
  4. 2 つ目のサブネットを作成します。 後で 2 番目のサブネットを使用して、プライベート エンドポイントを追加します。

ネットワークからの送信トラフィックを拒否する

  1. 1 番目のサブネットに関連付けられたネットワーク セキュリティ グループを開きます。
  2. [設定][送信セキュリティ規則] を選びます。
    1. 送信セキュリティ規則のリストで、DenyAllInternetOutbound を有効にします。
  3. ボットの App Service リソースに移動します。
  4. App Service を再起動します。

接続が切断されていることを確認する

  1. 別のブラウザー タブで、ボットの Direct Line クライアント エンドポイントを開きます。 たとえば、https://<your-app_service>.azurewebsites.net/.bot のようにします。

  2. ページに次の内容が表示されていることを確認します。

    {"v":"123","k":true,"ib":true,"ob":true,"initialized":false}
    

    initialized の値は false になっているはずです。その理由は、App Service と App Service 拡張機能が他の Bot Framework サービスに接続して自身を初期化できないためです。 これで、送信接続用の仮想ネットワークにボットが分離されました。

プライベート エンドポイントを作成する

  1. Azure ポータル に移動します。
  2. ボットの [Azure Bot リソース] ブレードを開きます。
  3. [設定][ネットワーク] を選択します。
    1. [プライベート アクセス] タブで、[プライベート エンドポイントの作成] を選択します。
      1. [リソース] タブの [ターゲット サブリソース] で、リストから [ボット] を選択します。
      2. [仮想ネットワーク] タブで、作成した仮想ネットワークと 2 番目のサブネットを選択します。
      3. プライベート エンドポイントを保存します。

ボットの App Service にプライベート エンドポイントを追加する

  1. ボットの Azure App Service リソースを開きます。
  2. [設定] の下で [構成] を選択します。
    1. [アプリケーションの設定] タブで、 [新しいアプリケーション設定] を選択します。
      1. [名前]DirectLineExtensionABSEndpointに設定します。
      2. [値] をプライベート エンドポイント URL (例: https://<your_azure_bot>.privatelink.directline.botframework.com/v3/extension) に設定します。
      3. 新しい設定を保存します。

App Service を再起動し、接続が復元されていることを確認する

  1. ボットの App Service を再起動します。

  2. 別のブラウザー タブで、ボットの Direct Line クライアント エンドポイントを開きます。 たとえば、https://<your-app_service>.azurewebsites.net/.bot のようにします。

  3. ページに次の内容が表示されていることを確認します。

    {"v":"123","k":true,"ib":true,"ob":true,"initialized":true}
    

    initialized の値は true にする必要があります。

  4. ボットの Direct Line クライアントに接続されている Web チャット コントロールを使用して、プライベート ネットワーク内のボットと対話します。

プライベート エンドポイントが正しく機能しない場合は、Azure AI Bot Service への送信トラフィックを許可するルールを追加できます。

Note

これにより、仮想ネットワークの分離が少し弱くなります。

  1. 1 番目のサブネットに関連付けられたネットワーク セキュリティ グループを開きます。
  2. [設定][送信セキュリティ規則] を選びます。
    1. 送信セキュリティ規則のリストで、AllowAzureBotService を有効にします。
  3. ボットの App Service リソースに移動します。
  4. App Service を再起動します。

ボットへのパブリック ネットワーク アクセスを無効にする

Azure AI Bot Service へのパブリック アクセスをブロックし、プライベート エンドポイント経由でのアクセスのみを許可できます。 Azure portal で Azure AI Bot Service のネットワーク アクセスを無効にすることができます。

ヒント

これにより、Teams チャネルの構成が解除されます。 Azure portal で他のチャネル (Direct Line を除く) を構成または更新することはできません。

  1. Azure ポータル に移動します。
  2. ボットの App Service を開きます。
  3. パブリック ネットワーク アクセスを無効にする

追加情報

Virtual Network の構成

仮想ネットワーク用にボットを構成するには、いくつかのオプションがあります。

  • 仮想ネットワークを作成し、そのネットワーク内で Azure App Service を有効にする。 この記事では、このオプションを使用しています。
  • App Service 環境を作成し、その環境内に App Service プランを追加する。
  1. 仮想ネットワークを作成します。
  2. 仮想ネットワーク内で Azure App Service 統合を有効にします。

仮想ネットワークの作成」セクションに記載されているとおり、この記事ではこれらの手順を使用しています。

詳細については、「Azure portal を使用して仮想ネットワークを作成する」および「Azure App Service で仮想ネットワーク統合を有効にする」を参照してください。