Direct Line에 봇으로 연결

이 문서에서는 직접 회선 채널에 봇을 연결하는 방법을 설명합니다. 이 채널을 사용하여 클라이언트 애플리케이션을 통해 봇과 통신합니다.

참고 항목

Direct Line은 클라이언트 애플리케이션과 봇 간의 통신을 허용하는 HTTPS 프로토콜을 통한 표준 채널입니다. 대신 네트워크 격리가 필요한 경우 WebSocket통해 Direct Line App Service 확장을 사용합니다.

필수 조건

  • Azure 계정. 아직 계정이 없는 경우 시작하기 전에 체험 계정을 만듭니다.
  • Azure에 게시된 기존 봇입니다.

직접 회선 채널 추가

가장 먼저 해야 할 일은 직접 회선 채널을 봇에 추가하는 것입니다.

  1. Azure 포털로 이동합니다.
  2. Azure Bot 리소스로 이동합니다. 봇 설정 아래에서 채널을 선택합니다.
  3. 사용 가능한 채널 목록에서 직접 회선을 선택합니다.

이제 봇이 기본 사이트를 사용하여 직접 회선을 사용하도록 구성되었습니다.

또는 기본 사이트를 사용하는 대신 새 사이트를 추가할 수 있습니다. 직접 회선 채널 페이지에서 새 사이트 단추를 선택하여 새 사이트를 만듭니다. Direct Line new site button in Azure portal

비밀 키 관리

직접 채널을 추가하면 Bot Framework에서 비밀 키를 생성합니다. 클라이언트 애플리케이션은 이러한 키를 사용하여 봇과 통신하기 위해 발급하는 직접 회선 API 요청을 인증합니다. 자세한 내용은 인증을 참조 하세요.

  1. 사이트의 직접 회선 비밀을 일반 텍스트로 보려면 직접 회선 채널 페이지로 이동합니다.

  2. 직접 회선 탭을 선택한 다음, 키를 가져올 사이트(예: Default_Site)를 선택합니다. Azure에서 사이트 구성 창을 엽니다.

  3. 비밀 키에서 해당 키 옆에 있는 눈 아이콘을 선택합니다.

    Show Direct Line keys

  4. 키를 복사하고 안전하게 저장합니다. 키를 사용하여 클라이언트 애플리케이션이 봇과 통신하기 위해 발급하는 직접 회선 API 요청을 인증 합니다.

    참고 항목

    비밀은 클라이언트 애플리케이션에 노출되거나 포함되어서는 안 됩니다. 다음 단계를 참조하세요.

  5. 가장 좋은 방법은 직접 회선 API를 사용하여 토큰에 대한 키를 교환하는 것입니다. 그런 다음 클라이언트 애플리케이션은 토큰을 사용하여 단일 대화 범위 내에서 해당 요청을 인증합니다.

설정 구성

사이트 설정을 구성하려면 다음을 수행합니다.

  1. 직접 회선 채널 페이지의 사이트 목록에서 구성할 사이트를 선택합니다. 아래와 같이 사이트 구성 창이 열립니다.Configure site pane

  2. 클라이언트 애플리케이션이 봇과 통신하는 데 사용할 직접 회선 프로토콜 버전을 선택합니다.

    클라이언트 애플리케이션과 봇 간에 새 연결을 만드는 경우 Direct Line API 3.0을 사용합니다.

  3. 완료되면 [적용]을 선택하여 사이트 구성을 저장합니다. 봇에 연결하려는 각 클라이언트 애플리케이션에 대해 새 사이트부터 이 프로세스를 반복합니다.

향상된 인증 구성

사용 가능한 사이트 구성 중 하나는 봇에 연결할 때 보안 위험을 완화하는 데 도움이 되는 향상된 인증 옵션입니다(예: 웹 채팅 컨트롤 사용). 자세한 내용은 Direct Line 고급 인증을 참조하세요.

향상된 인증을 추가하려면 다음을 수행합니다.

  1. 인증 향상 옵션을 사용하도록 설정합니다. "신뢰할 수 있는 원본이 하나 이상 있어야 합니다."라는 메시지가 신뢰할 수 있는 원본 추가 링크와 함께 표시됩니다. 향상된 인증을 사용하도록 설정하는 경우 신뢰할 수 있는 원본을 하나 이상 지정해야 합니다.

    신뢰할 수 있는 원본은 시스템에서 사용자를 인증하는 데 사용하는 do기본입니다. 이 경우 Direct Line은 do기본 사용하여 토큰을 생성합니다.

    • 구성 UI 페이지의 일부로 신뢰할 수 있는 원본을 구성하는 경우 이러한 설정은 항상 토큰 생성을 위한 유일한 집합으로 사용됩니다. 토큰을 생성하거나 대화를 시작할 때 신뢰할 수 있는 추가 원본(또는 신뢰할 수 있는 원본을 없음으로 설정)은 무시됩니다(목록에 추가되거나 교차 유효성 검사되지 않음).
    • 향상된 인증을 사용하도록 설정하지 않은 경우 API 호출의 일부로 보내는 원본 URL이 사용됩니다. Add trusted origin
  2. 신뢰할 수 있는 do기본 URL을 추가한 후 적용을 선택합니다.

직접 회선 예제 봇

Direct Line Bot 샘플 위치의 .NET 예제를 다운로드할 수 있습니다.

이 예제에는 다음 두 개의 프로젝트가 포함되어 있습니다.

  • DirectLineBot. 직접 회선 채널을 통해 연결할 봇을 만듭니다.
  • DirectLineClient. Direct Line 채널을 통해 이전 봇과 대화하는 콘솔 애플리케이션입니다.

직접 회선 API

  • 직접 회선 API에 대한 자격 증명은 Azure Bot 등록에서 가져와야 하며 호출자가 생성된 봇에만 연결할 수 있도록 허용합니다. 봇 프로젝트에서 이러한 값으로 파일을 업데이트 appsettings.json 합니다.

    {
    "MicrosoftAppId": "",
    "MicrosoftAppPassword": ""
    }
    
  • Azure Portal에서 채널 목록에서 직접 회선을 사용하도록 설정한 다음 Direct Line 비밀을 구성합니다. 버전 3.0의 검사 상자가 검사. 콘솔 클라이언트 프로젝트에서 직접 회선 비밀 키 및 봇 핸들(봇 ID)으로 파일을 업데이트 App.config 합니다.

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

사용자 메시지는 이전에 생성된 직접 회선 클라이언트 Conversations.PostActivityAsync 메서드를 사용하여 봇으로 ConversationId 전송됩니다.

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);
        }
    }
}