ボットを Direct Line に接続するConnect a bot to Direct Line

この記事では、ボットをチャネル に接続する方法 Direct Line説明しますThis article describes how to connect a bot to the Direct Line channel. クライアント アプリケーションがボットと通信するには、このチャネルを使用します。Use this channel to allow your client application to communicate with a bot.

注意

このDirect Lineは、クライアント アプリケーションとボット間の通信を許可する HTTPS プロトコル経由の標準チャネルです。The Direct Line is a standard channel over HTTPS protocol to allow communication between a client application and a bot. 代わりにネットワーク分離が必要な場合は、Direct Line App Service Extension over WebSocket プロトコル を使用しますIf you require network isolation instead, use the Direct Line App Service Extension over WebSocket protocol.

Direct Line チャネルを追加するAdd the Direct Line channel

最初に行う必要があるのは、ボットにDirect Lineチャネルを追加する必要があります。The first thing you must do is to add the Direct Line channel to the bot.

  1. ブラウザーで 、Azure Portal に移動しますIn your browser, navigate to the Azure Portal.

  2. 左側のパネルで、[チャネル] 項目 をクリック します。In the left panel, click the Channels item.

  3. 右側のパネルの [おすすめチャンネルの 追加] で、次のDirect Lineアイコン (下の図では赤でマークされています) をクリックします。In the right panel, under Add a featured channel, click the Direct Line icon (marked in red in the picture below).

    Direct Line チャネルを追加するAdd Direct Line channel

  4. [ 構成Direct Line ページが表示されます。The Configure Direct Line page is displayed. ページの 下部 にある [完了] ボタンをクリックします。Click the Done button at the bottom of the page. これにより、次Direct Line示すように、ボットに新しいチャネルが追加されます。This adds the Direct Line channel to the bot, as shown in the picture below.

    追加されたDirect LineチャネルAdded Direct Line channel

新しいサイトを追加するAdd new site

  1. [Connect to channels]/(チャネルに接続 する)、[ 編集 ] リンクをクリックして、Direct Line。In Connect to channels, click the Edit link by the Direct Line.

  2. [ 新しいDirect Line] で、[新しい サイトの追加] をクリック し、サイトの名前を入力します。In Configure Direct Line, click Add new site and enter a name for your site. これは、ボットに接続するクライアント アプリケーションを表します。This represents the client application that you want to connect to the bot.

    Direct Line サイトを追加する

  3. [Done] をクリックします。Click Done.

秘密鍵を管理するManage secret keys

ダイレクト チャネルを追加すると、シークレット Bot Framework生成されます。When you add the Direct Channel, the Bot Framework generates secret keys. クライアント アプリケーションは、これらのキーを使用して、ボットDirect Line API発行する要求を認証します。Your client application uses these keys to authenticate the Direct Line API requests that it issues to communicate with a bot. 詳細については、認証に関するページをご覧ください。For more information, see Authentication.

  1. [ 構成] Direct Line、 プレーンテキストでキーを表示するには、対応するキーの [ 表示 ] をクリックします。In Configure Direct Line, to view a key in plain text, click Show for the corresponding key.

    Direct Line の鍵を表示するShow Direct Line key

  2. キーをコピーし、安全に格納します。Copy and securely store the key. キーを使用して、クライアントアプリケーションが bot との通信に発行するダイレクトライン API 要求を 認証 します。Use the key to authenticate the Direct Line API requests that your client application issues to communicate with a bot.

    Direct Line の鍵をコピーするCopy Direct Line key

    注意

    シークレットは、クライアントアプリケーションに公開したり、埋め込んだりしないでください。Secrets should not be exposed or embedded in client applications. 「次のステップ」を参照してください。See next step.

  3. ベストプラクティスとして、Direct Line API を使用して トークンのキーを交換することをお勧めします。The best practice is to use the Direct Line API to exchange the key for a token. 次に、クライアントアプリケーションは、トークンを使用して、1つのメッセージ交換のスコープ内でその要求を認証します。The client application then will use the token to authenticate its requests within the scope of a single conversation.

設定の構成Configure settings

  1. クライアントアプリケーションが bot との通信に使用する直接回線プロトコルのバージョンを選択します。Select the Direct Line protocol version that your client application will use to communicate with a bot.

    ヒント

    クライアント アプリケーションとボットの間の新しい接続を作成する場合は、Direct Line API 3.0 を使います。If you are creating a new connection between your client application and bot, use Direct Line API 3.0.

  2. 終わったら、 [完了] をクリックしてサイトの構成を保存します。When finished, click Done to save the site configuration. ボットに接続するクライアント アプリケーションごとに、このプロセスを [Add new site](新しいサイトの追加) から繰り返すことができます。You can repeat this process, beginning with Add new site, for each client application that you want to connect to your bot.

強化された認証の構成Configure enhanced authentication

強化された 認証 を有効にすると、認証トークンの生成のために信頼された元の url (信頼された のドメインまたは信頼される側のドメインとも呼ばれます) の一覧を選択するよう求められます。When you enable enhanced authentication, you are asked to select a list of trusted origin URLs, also known as trusted origins or trusted domains, for the generation of the authentication token. 強化された認証を有効にする場合は、信頼できる配信元を少なくとも1つ指定する必要があります。If you enable the enhanced authentication, you must specify at least one trusted origin.

信頼されたオリジンの追加Add trusted origins

信頼される側のドメインは、ユーザーを認証するためにシステムが信頼するドメインです。A trusted domain is a domain that the system trusts to authenticate users. ここでは、は、直接の行がトークンの生成に対して信頼できるドメインです。In our case, is a domain that Direct Line can trust for the generation of a token.

  • 信頼されたオリジンを構成 UI ページの一部として構成した場合は、トークンの生成に対して設定されているものとして 常に 使用されます。If you configure trusted origins as part of the configuration UI page, then these will always be used as the only set for the generation of a token. トークンを生成したり、メッセージ交換を開始したりするときに、none または他の信頼されたオリジンを送信すると、それらは無視されます (つまり、リストに追加されたり、クロス検証されたりすることは ありません )。Sending none or additional trusted origins when generating a token or starting a conversation, they will be ignored (i.e. they are not appended to the list or cross validated).

  • 強化された認証を有効にしなかった場合は、API 呼び出しの一部として送信する元の URL が使用されます。If you did not enable enhanced authentication, any origin URL you send as part of the API calls will be used.

強化された認証を使用すると、ボットに接続する際のセキュリティ上のリスクを軽減できます (たとえば、Web チャットコントロールを使用します)。Enhanced authentication allows you to mitigate security risks when connecting to a bot (using the Web Chat control, for example). 詳細については、「 Direct Line enhanced authentication」を参照してください。For more information, see Direct Line enhanced authentication.

Example

次の場所から .NET の例をダウンロードできます: Direct Line Bot SampleYou can download a .NET example from this location: Direct Line Bot Sample.

この例には、2つのプロジェクトが含まれています。The example contains two projects:

  • DirectLineBotDirectLineBot. これは、仮想チャネルを介して接続するボットDirect Lineします。It creates a bot to connect via a Direct Line channel.
  • DirectLineClientDirectLineClient. これは、以前のボットとチャネルを介して通信するコンソール Direct Lineです。This is a console application that talks to the previous bot via Direct Line channel.

Direct Line APIDirect Line API

  • アプリケーションの資格情報Direct Line API Azure Bot の登録から取得する必要があります。また、呼び出し元が生成されたボットへの接続のみを許可します。Credentials for the Direct Line API must be obtained from the Azure Bot registration, and will only allow the caller to connect to the bot for which they were generated. ボット プロジェクトで、これらの値で appsettings.json ファイルを更新します。In the bot project, update the appsettings.json file with these values.

    {
    "MicrosoftAppId": "",
    "MicrosoftAppPassword": ""
    }
    
  • 次のAzure portalチャネルの一覧Direct Lineを有効にし、シークレットを構成Direct Lineします。In the Azure portal, enable Direct Line in the channels list and then, configure the Direct Line secret. バージョン 3.0 のチェック ボックスがオンになっていることを確認します。Make sure that the checkbox for version 3.0 is checked. コンソール クライアント プロジェクトで、シークレット キーとボット ハンドルDirect Line (ボット ID) を使用してファイル App.config を更新します。In the console client project update the App.config file with the Direct Line secret key and the bot handle (Bot Id).

    <appSettings>
        <add key="DirectLineSecret" value="YourBotDirectLineSecret" />
        <add key="BotId" value="YourBotHandle" />
    </appSettings>
    

ユーザー メッセージは、前に生成された を使用して Direct Line Client メソッドを使用 Conversations.PostActivityAsync ConversationId してボットに送信されます。User messages are sent to the bot using the Direct Line Client Conversations.PostActivityAsync method using the ConversationId generated previously.

while (true)
{
    string input = Console.ReadLine().Trim();

    if (input.ToLower() == "exit")
    {
        break;
    }
    else
    {
        if (input.Length > 0)
        {
            Activity userMessage = new Activity
            {
                From = new ChannelAccount(fromUser),
                Text = input,
                Type = ActivityTypes.Message
            };

            await client.Conversations.PostActivityAsync(conversation.ConversationId, userMessage);
        }
    }
}