직접 회선에 봇 연결Connect a bot to 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.

참고

직접적인 줄은 클라이언트 응용 프로그램과 봇 간의 통신을 허용 하는 HTTPS 프로토콜을 통한 표준 채널입니다.The Direct Line is a standard channel over HTTPS protocol to allow communication between a client application and a bot. 네트워크 격리를 대신 사용 해야 하는 경우 WebSocket 프로토콜을 통해 Direct Line App Service 확장 을 사용 합니다.If you require network isolation instead, use the Direct Line App Service Extension over WebSocket protocol.

직접 회선 채널 추가Add the Direct Line channel

가장 먼저 해야 할 일은 봇에 직접 선 채널을 추가 하는 것입니다.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. 오른쪽 패널의 추천 채널 추가 에서 직접 선 아이콘 (아래 그림에서 빨간색으로 표시)을 클릭 합니다.In the right panel, under Add a featured channel, click the Direct Line icon (marked in red in the picture below).

    직접 회선 채널 추가Add Direct Line channel

  4. 직접 줄 구성 페이지가 표시 됩니다.The Configure Direct Line page is displayed. 페이지 맨 아래에 있는 완료 단추를 클릭 합니다.Click the Done button at the bottom of the page. 그러면 아래 그림에 표시 된 것 처럼 봇에 직접 선 채널이 추가 됩니다.This adds the Direct Line channel to the bot, as shown in the picture below.

    직접 선 채널이 추가 됨Added Direct Line channel

새 사이트 추가Add new site

  1. 채널에 연결 에서 직접 줄 옆의 편집 링크를 클릭 합니다.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.

    직접 회선 사이트 추가

  3. 완료 를 클릭합니다.Click Done.

비밀 키 관리Manage secret keys

직접 채널을 추가 하면 Bot Framework에서 비밀 키를 생성 합니다.When you add the Direct Channel, the Bot Framework generates secret keys. 클라이언트 응용 프로그램은 이러한 키를 사용 하 여 봇과 통신 하는 데 사용 되는 직접 라인 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.

    직접 회선 키 표시Show Direct Line key

  2. 키를 복사하고 안전하게 저장합니다.Copy and securely store the key. 키를 사용하여 클라이언트 애플리케이션이 봇과 통신하기 위해 발행하는 Direct Line API 요청을 인증합니다.Use the key to authenticate the Direct Line API requests that your client application issues to communicate with a bot.

    직접 회선 키 복사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. 그러면 클라이언트 애플리케이션은 토큰을 사용하여 단일 대화 범위 내에서 해당 요청을 인증합니다.The client application then will use the token to authenticate its requests within the scope of a single conversation.

설정 구성Configure settings

  1. 클라이언트 애플리케이션이 봇과 통신하는 데 사용할 Direct Line 프로토콜 버전을 선택합니다.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. 새 사이트 추가부터 시작하여 봇과 연결할 클라이언트 애플리케이션마다 이 프로세스를 반복할 수 있습니다.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. 향상된 인증을 사용하도록 설정하는 경우 신뢰할 수 있는 원본을 하나 이상 지정해야 합니다.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. 이 경우 는 Direct Line 토큰 생성을 신뢰할 수 있는 도메인입니다.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. 토큰을 생성하거나 대화를 시작할 때 신뢰할 수 있는 원본을 보내지 않거나 추가로 보내면 무시됩니다(즉, 목록에 추가되거나 교차 유효성이 검사되지 않음).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.

향상된 인증을 사용하면 봇에 연결할 때 보안 위험을 완화할 수 있습니다(예: 웹 채팅 컨트롤 사용).Enhanced authentication allows you to mitigate security risks when connecting to a bot (using the Web Chat control, for example). 자세한 내용은 Direct Line 고급 인증을 참조하세요.For more information, see Direct Line enhanced authentication.

예제Example

Direct Line 봇 샘플위치에서 .NET 예제를 다운로드할 수 있습니다.You can download a .NET example from this location: Direct Line Bot Sample.

이 예제에는 두 개의 프로젝트가 포함되어 있습니다.The example contains two projects:

  • Directlinebot.DirectLineBot. 직접 선 채널을 통해 연결 하는 봇을 만듭니다.It creates a bot to connect via a Direct Line channel.
  • DirectLineClient.DirectLineClient. 이는 직접 선 채널을 통해 이전 봇과 통신 하는 콘솔 응용 프로그램입니다.This is a console application that talks to the previous bot via Direct Line channel.

Direct Line APIDirect Line API

  • Direct Line API에 대 한 자격 증명은 Azure 봇 등록에서 가져와야 하며 호출자가 생성 된 봇에만 연결할 수 있습니다.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에서 채널 목록에서 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. 콘솔 클라이언트 프로젝트에서 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>
    

사용자 메시지는 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);
        }
    }
}