Bot Framework 인증 기본 사항Bot Framework authentication basics

적용 대상: SDK v4APPLIES TO: SDK v4

일반적으로 봇은 사용자를 대신 하 여 보호 된 리소스 (예: 메일 계정)에 액세스 해야 합니다.Often a bot must access protected resources, for example email account, on behalf of the user. 이를 위해 사용자의 자격 증명을 기반으로 봇에 권한을 부여 해야 합니다.In order to do that the bot must be authorized based on the user's credentials. 이전에는 먼저 사용자를 인증 해야 합니다.Before that, the user must be authenticated first. 또한 봇은 알려진 엔터티 여야 하며,이는 Azure Bot Service 컨텍스트에서 인증 되어야 합니다.Moreover, the bot itself must be a known entity, that is it must be authenticated in the Azure Bot Service context. 이는 봇이 사용자를 대신 하 여 작동할 수 있도록 허가 되기 전에 발생 합니다.This happens prior to the bot being authorized to operate on behalf of the user.

Bot Framework 인증 컨텍스트의 bird untangle에서 시작 하 여이 번들을 사용할 수 있는지 살펴보겠습니다.Let's see if we can untangle this bundle by starting with a bird's eye view of the Bot Framework authentication context.

bot 인증 컨텍스트입니다.

  • Bot 채널 등록Bot Channel Registration. Azure에서 봇을 등록 하는 경우, 예를 들어 봇 채널 등록 을 통해 AZURE는 AD (Active Directory) 등록 응용 프로그램을 만듭니다.When you register a bot in Azure, for example via the Bot Channels Registration, Azure creates an Active Directory (AD) registration application. 이 응용 프로그램에는 앱 id ( MicrosoftAppID )와 클라이언트 암호 ( MicrosoftAppPassword )가 있습니다.This application has an app id (MicrosoftAppID) and a client secret (MicrosoftAppPassword). 아래에 설명 된 대로 봇 구성 파일에서 이러한 값을 사용 합니다.You use these values in the bot configuration files as described below. 웹 앱 봇 을 만들어 비슷한 결과를 달성할 수 있습니다.Notice that you can achieve similar results by creating a Web App Bot.

  • AZURE AD id 입니다.Azure AD Identity. Azure AD(Azure Active Directory)는 OAuth2.0과 같은 업계 표준 프로토콜을 사용하여 사용자가 안전하게 로그인하는 애플리케이션을 빌드할 수 있는 클라우드 ID 서비스입니다.The Azure Active Directory (Azure AD) is a cloud identity service that allows you to build applications that securely sign in users using industry standard protocols like OAuth2.0. AD 응용 프로그램을 만들고 해당 앱 id암호 를 사용 하 여 id 공급자 를 선택 하 고 인증 연결을 생성 합니다.You create an AD application and use its app Id and password to select an identity provider and generate an authentication connection. 이 연결을 bot 채널 등록 설정에 추가 합니다.You add this connection to the bot channel registration settings. 또한 아래에 설명 된 대로 봇 구성 파일에 연결 이름을 추가 합니다.You also add the connection name in the bot configuration files as described below.

  • .Bot. 봇은 채널 등록 (또는 웹 앱) 앱 Id암호로 식별 됩니다.A bot is identified by its channels registration (or web app) app Id and password. Bot의 구성 파일 ( appsettings.json .net), .env (JavaScript), config.py (Python)) 또는 Azure Key Vault 에서 관련 값을 추가 합니다.You add the related values in the bot's configuration files (appsettings.json (.NET), .env (JavaScript), config.py (Python)) or in Azure Key Vault. 또한 파일에 연결 이름을 추가 합니다.You also add the connection name to the files. Bot 앱 id 및 암호를 기반으로 토큰 을 사용 하 여 보호 된 리소스에 액세스 합니다.The bot uses the token based on the app id and password to access protected resources. 또한 bot는 인증 연결을 기반으로 토큰 을 사용 하 여 사용자의 보호 된 리소스에 액세스 합니다.Also, the bot uses the token based on the authentication connection to access user's protected resources.

Bot 인증 및 권한 부여Bot authentication and authorization

다음은 봇을 인증 하 고 사용자의 보호 된 리소스에 액세스 하도록 권한을 부여 하는 기본 단계입니다.The following are the main steps to authenticate a bot and authorize it to access user's protected resources:

  1. Bot 채널 등록 응용 프로그램을 만듭니다.Create a bot channel registration application.
  2. 봇 구성 파일에 등록 앱 id 및 암호를 추가 합니다.Add the registration app id and password to the bot configuration file. 그러면 봇을 인증 하 여 보호 된 리소스에 액세스할 수 있습니다.This allows the bot to be authenticated to access protected resources.
  3. Azure AD 응용 프로그램을 만들어 사용자를 인증 하는 id 공급자를 선택 합니다.Create an Azure AD application to select an identity provider to authenticate the user.
  4. 인증 연결을 만들어 채널 등록 설정에 추가 합니다.Create an authentication connection and add it to the channel registration settings.
  5. Bot의 구성 파일에 연결 이름을 추가 합니다.Add the connection name to the bot's configuration files. 이를 통해 사용자의 보호 된 리소스에 액세스할 수 있는 권한을 봇에 부여할 수 있습니다.This allows the bot to be authorized to access user's protected resources.

전체 예제를 보려면 봇에 인증 추가를 참조 하세요.For a complete example, see Add authentication to a bot.

모범 사례Best practices

  • 서비스 간 응용 프로그램의 원래 용도로 제한 된 AAD 앱 등록을 유지 합니다.Keep the AAD app registration restricted to its original purpose of service to service application.
  • 인증 연결을 사용 하지 않도록 설정 하 고, 암호를 롤링 하거나, 다른 응용 프로그램에서 AAD 앱을 다시 사용 하는 것 보다 더 한정 된 제어를 위해 모든 사용자에 게 서비스 인증을 위한 추가 AAD 앱을Create an additional AAD app for any user to service authentication, for more finite control over disabling authentication connections, rolling secrets, or reusing the AAD app with other applications.

인증을 위해 AAD 등록 앱을 사용 하는 경우 발생 하는 몇 가지 문제는 다음과 같습니다.Some of the problems you encounter if you also use the AAD registration app for authentication are:

  • AAD 앱 등록에 연결 된 인증서를 갱신 해야 하는 경우 인증서를 사용 하 여 다른 AAD 서비스로 인증 된 사용자에 게 영향을 줄 수 있습니다.If the certificate attached to the AAD app registration needs to be renewed it would impact users that have authenticated with other AAD services using the certificate.
  • 일반적으로이 도구는 단일 실패 지점과 봇을 사용 하는 모든 인증 관련 활동에 대 한 제어를 만듭니다.In general, it creates a single point of failure and control for all authentication related activities with the bot.

다음 문서에서는 Bot Framework 인증에 대 한 자세한 정보와 예제를 제공 합니다.The following articles provide in depth information and examples about the Bot Framework authentication. 먼저 인증 유형 을 확인 한 다음 id 공급자를 확인 합니다.Start by looking at the Authentication types and then Identity providers.

아티클Article 설명Description
인증 유형 Authentication types 두 Bot Framework 인증 유형 및 사용 하는 토큰에 대해 설명 합니다.Describes the two Bot Framework authentication types and the tokens they use.
ID 공급자Identity providers Id 공급자를 사용 하는 방법을 설명 합니다.Describes the use of identity providers. OAuth 2.0과 같은 업계 표준 프로토콜을 사용 하 여 사용자가 안전 하 게 로그인 하는 응용 프로그램을 빌드할 수 있습니다.They allow you to build applications that securely sign in users using industry standard protocols like OAuth2.0.
사용자 인증User authentication 사용자를 대신 하 여 작업을 수행 하도록 봇에 권한을 부여 하는 사용자의 인증 및 관련 토큰에 대해 설명 합니다.Describes user's authentication and the related token to authorize a bot to perform tasks on the user's behalf.
Single Sign OnSingle sign on 여러 보호 된 리소스 액세스에 대 한 단일 사용자 인증을 설명 합니다.Describes single user authentication for multiple protected resources access.
봇 채널 등록Bot channels registration Azure Bot Service에 bot를 등록 하는 방법을 보여 줍니다.Shows how to register a bot with the Azure Bot Service.
Bot Framework 보안 지침Bot Framework security guidelines 보안 및 봇 Framework에 적용 되는 일반적인 보안에 대해 설명 합니다.Describes security in general and as it applies to the Bot Framework.
봇에 인증 추가Add authentication to a bot Bot 채널 등록, 인증 연결을 만들고 코드를 준비 하는 방법을 보여 줍니다.Shows how to create bot channel registration, authentication connection and preparing the code.
봇에 Single Sign-On 추가Add single sign on to a bot Bot에 single sign on 인증을 추가 하는 방법을 보여 줍니다.Shows how to add single sign on authentication to a bot.