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

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

注意

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

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

最初に、bot に直接直線チャネルを追加する必要があります。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. 左側のパネルで、[ Channels ] 項目をクリックします。In the left panel, click the Channels item.

  3. 右側のパネルの [ おすすめチャネルの追加] で、[ ダイレクトライン ] アイコンをクリックします (下の図の赤でマークされています)。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. [ ダイレクトラインの構成 ] ページが表示されます。The Configure Direct Line page is displayed. ページの下部にある [Done] \ ( 完了 ) ボタンをクリックします。Click the Done button at the bottom of the page. これにより、次の図に示すように、bot に直接直線チャネルが追加されます。This adds the Direct Line channel to the bot, as shown in the picture below.

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

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

  1. [チャンネルの Connect] で、[編集] リンクをクリックします。In Connect to channels, click the Edit link by the Direct Line.

  2. [ ダイレクトラインの構成] で、[ 新しいサイトの追加 ] をクリックし、サイトの名前を入力します。In Configure Direct Line, click Add new site and enter a name for your site. これは、bot に接続するクライアントアプリケーションを表します。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. クライアントアプリケーションは、これらのキーを使用して、bot との通信に必要なダイレクトライン 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. [ ダイレクト行の構成] で、キーをプレーンテキストで表示するには、対応するキーに対して [ 表示 ] をクリックします。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. ダイレクトラインチャネル経由で接続するボットを作成します。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

  • ダイレクトライン 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. Bot プロジェクトで、 appsettings.json 次の値を使用してファイルを更新します。In the bot project, update the appsettings.json file with these values.

    {
    "MicrosoftAppId": "",
    "MicrosoftAppPassword": ""
    }
    
  • [Azure portal で、[チャネル] ボックスの一覧の [ダイレクトライン] を有効にしてから、直接行のシークレットを構成します。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. コンソールクライアントプロジェクトで、 App.config 直接行の秘密キーとボットハンドル (Bot Id) を使用してファイルを更新します。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 メソッドを使用して bot に送信され 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);
        }
    }
}