인증 유형

적용 대상: SDK v4

Bot Framework에는 봇 인증 및 사용자 인증이라는 두 가지 광범위한 인증 범주가 있습니다. 각각에는 보안 리소스에 대한 액세스를 허용하는 연결된 토큰 이 있습니다. 다음 그림에서는 봇 및 사용자 인증과 관련된 요소를 보여 있습니다.

Diagram illustrating the difference between the token for a bot and the token for a user.

이 그림에서는 다음을 수행합니다.

  • 호스트 플랫폼 은 봇 호스팅 플랫폼입니다. Azure 또는 선택한 호스트 플랫폼일 수 있습니다.
  • Bot 커넥트or Service는 봇과 채널 간의 통신을 용이하게 합니다. 채널에서 받은 메시지를 활동 개체로 변환하고 봇의 메시징 엔드포인트로 보냅니다. 마찬가지로 봇에서 받은 활동 개체를 채널에서 이해하는 메시지로 변환하고 채널로 보냅니다.
  • 봇 어댑터는 기본 Bot Framework 어댑터입니다. 다음을 수행합니다.
    • JSON 페이로드를 활동 개체로 변환합니다.
    • 턴 컨텍스트를 만들고 활동 개체를 추가합니다.
    • 미들웨어를 실행합니다(있는 경우).
    • 봇에 턴 컨텍스트를 전달합니다.

참고 항목

사용자 지정 채널 어댑터를 사용하는 경우 어댑터 자체는 Bot 커넥트or Service 및 기본 Bot Adapter가 수행하는 작업을 수행합니다. 또한 관련 웹 후크 API에 대한 인증 메커니즘을 제공합니다. 예를 들어 Slack 어댑터를 사용하여 Slack에 봇 커넥트 참조하세요.

봇 인증

봇은 MicrosoftAppID 및 MicrosoftAppPassword로 식별되며, 봇의 설정 파일(appsettings.json(.NET), (JavaScript), config.py.env (Python)) 또는 비밀 또는 키 관리자에 보관됩니다. 자세한 내용은 MicrosoftAppID 및 MicrosoftAppPassword를 참조 하세요.

Azure Portal에서 봇을 등록하면 Azure에서 Microsoft Entra ID 등록 애플리케이션을 만듭니다. Bot Framework CLI를 사용하는 경우 Microsoft Entra ID 등록을 만드는 단계를 구체적으로 수행해야 합니다. 이 등록에는 애플리케이션 ID(MicrosoftAppID) 및 클라이언트 암호()가MicrosoftAppPassword 있습니다. Azure는 이러한 값을 사용하여 봇이 보안 리소스에 액세스할 수 있는 토큰 을 생성합니다.

채널이 봇에 요청을 보내면 Bot 커넥트or 서비스를 통해 요청의 권한 부여 헤더토큰을 지정합니다. 봇은 토큰의 신뢰성을 확인하여 Bot 커넥트or 서비스의 호출을 인증합니다.

봇이 Bot 커넥트or 서비스를 통해 채널에 요청을 보내는 경우 요청의 권한 부여 헤더토큰을 지정해야 합니다. 모든 요청에는 봇 커넥트or 서비스에서 확인하여 요청에 권한을 부여하는 액세스 토큰이 포함되어야 합니다.

설명된 작업은 Bot Framework SDK에서 자동으로 수행됩니다.

자세한 내용은 Bot 커넥트or 서비스에서 봇으로 요청을 인증하고 에서 Bot 커넥트or 서비스로 요청을 인증하는 방법에 대한 REST API 설명서를 참조하세요.

채널

일반적으로 채널은 Bot 커넥트or 서비스를 통해 봇과 통신하므로 이전 인증 원칙이 일반적으로 적용됩니다. 일부 채널 및 기능에는 고유한 인증 고려 사항이 있습니다.

직접 회선

클라이언트 애플리케이션은 표준 지원 채널 외에도 직접 회선 채널을 사용하여 봇과 통신할 수 있습니다.

클라이언트 애플리케이션은 Azure Portal의 직접 회선 채널 구성 페이지에서 가져온 비밀을 사용하거나 런타임에 가져온 토큰을 사용하여 직접 회선(버전 3.0)에 대한 요청을 인증합니다. 비밀 또는 토큰은 각 요청의 권한 부여 헤더에 지정됩니다.

Important

웹 채팅 Azure AI Bot Service 인증을 사용하는 경우 몇 가지 중요한 보안 고려 사항을 염두에 두어야 합니다. 자세한 내용은 REST 인증 문서의 보안 고려 사항 섹션을 참조하세요.

자세한 내용은 비밀을 숨기지 않은 상태로 유지하고, 토큰에 대한 비밀을 교환하고, 포함을 생성합니다.

웹 채팅

웹 채팅 채널과 컨트롤두 가지 구현이 있습니다.

  • Azure에 봇을 등록하면 웹 채팅 채널이 봇의 테스트를 허용하도록 자동으로 구성됩니다. 자세한 내용은 웹 채팅 봇 커넥트 참조하세요.
  • 직접 회선 채널에서 웹 채팅 컨트롤을 사용하여 클라이언트 애플리케이션의 봇에 대한 액세스를 제공할 수 있습니다. 컨트롤에 대한 자세한 내용은 Bot Framework 웹 채팅 참조하세요.

기술

기술과 기술 소비자는 각각 고유한 앱 ID와 암호를 가진 두 개의 고유한 봇입니다.

  • 소비자는 사용자 활동을 기술로 전달하고 기술의 응답을 사용자에게 전달할 수 있습니다.
  • 기술 소비자는 채널 역할을 합니다. 소비자에는 기술이 활동을 보내는 서비스 URL 역할을 하는 기술 호스트 엔드포인트가 있습니다.
  • 기술에 대한 자세한 내용은 기술 개요참조하세요.

서비스 수준 인증은 Bot 커넥트or 서비스에서 관리됩니다. 프레임워크는 전달자 토큰 및 봇 애플리케이션 ID를 사용하여 각 봇의 ID를 확인합니다.

Important

이렇게 하려면 모든 봇(기술 소비자 및 사용하는 모든 기술)에 유효한 애플리케이션 자격 증명이 있어야 합니다.

클레임 유효성 검사

이 기본 인증 수준 외에도 기술 및 기술 소비자의 인증 구성에 클레임 유효성 검사기를 추가해야 합니다. 클레임은 인증 헤더 후에 평가됩니다. 이 프로세스를 통해 각 봇은 활동을 수락할 다른 봇을 제한할 수 있습니다.

샘플 클레임 유효성 검사는 기술을 구현하고 기술 소비자를 구현하는 방법을 참조하세요.

Bot Framework Emulator

Bot Framework Emulator에는 자체 인증 흐름과 자체 토큰이 있습니다. 에뮬레이터에는 자체 채널과 기본 제공 서버가 있습니다.

사용자 인증

때때로 봇은 사용자를 대신하여 보안 온라인 리소스에 액세스해야 합니다. 이렇게 하려면 봇에 권한이 부여되어야 합니다. 전자 메일 검사, 플라이트 상태 검사 또는 주문과 같은 특정 작업을 수행하려면 봇이 Microsoft Graph, GitHub 또는 회사의 REST 서비스와 같은 외부 서비스를 호출해야 하기 때문입니다. OAuth는 사용자를 인증하고 봇에 권한을 부여하는 데 사용됩니다.

참고 항목

봇이 사용자의 리소스에 액세스하는 데는 두 가지 매크로 단계가 포함됩니다.

  1. 인증. 사용자의 ID를 확인하는 프로세스입니다.
  2. 권한 부여. 봇이 사용자의 리소스에 액세스할 수 있는지 확인하는 프로세스입니다.

첫 번째 단계가 성공하면 사용자의 자격 증명을 기반으로 하는 토큰이 발급됩니다. 두 번째 단계에서 봇은 토큰을 사용하여 사용자의 리소스에 액세스합니다.

자세한 내용은 사용자 인증을 참조하세요.

ID 공급자

ID 공급자는 사용자 또는 클라이언트 ID를 인증하고 소모성 보안 토큰을 발급합니다. 서비스로 사용자 인증을 제공합니다. 웹 애플리케이션과 같은 클라이언트 애플리케이션은 신뢰할 수 있는 ID 공급자에게 인증을 위임합니다.

봇은 신뢰할 수 있는 ID 공급자를 사용하여 다음을 수행할 수 있습니다.

  • SSO(Single Sign-On) 기능을 사용하도록 설정하여 여러 보안 리소스에 액세스할 수 있습니다.
  • 사용자를 대신하여 클라우드 컴퓨팅 리소스에 커넥트 사용자가 다시 인증할 필요가 줄어듭니다.

참고 항목

봇 인증 중에 발급된 토큰은 사용자 인증 중에 발급된 토큰과 다릅니다. 첫 번째는 봇, 채널 및 궁극적으로 클라이언트 애플리케이션 간의 보안 통신을 설정하는 데 사용됩니다. 두 번째는 사용자를 대신하여 보안 리소스에 액세스하도록 봇에 권한을 부여하는 데 사용됩니다.

채널은 사용자가 채널에 로그인할 수 있도록 별도의 사용자 인증을 제공합니다.

봇이 ID 공급자를 사용하여 사용자를 대신하여 리소스에 액세스하는 방법에 대한 자세한 내용은 ID 공급자를 참조하세요.