Conceptos básicos de la autenticación de bot FrameworkBot Framework authentication basics

se aplica a: SDK V4APPLIES TO: SDK v4

A menudo, un bot debe tener acceso a recursos protegidos, por ejemplo, una cuenta de correo electrónico en nombre del usuario.Often a bot must access protected resources, for example email account, on behalf of the user. Para ello, el bot debe estar autorizado según las credenciales del usuario.In order to do that the bot must be authorized based on the user's credentials. Antes de eso, el usuario debe autenticarse en primer lugar.Before that, the user must be authenticated first. Además, el propio bot debe ser una entidad conocida, es decir, debe autenticarse en el contexto de Azure Bot Service.Moreover, the bot itself must be a known entity, that is it must be authenticated in the Azure Bot Service context. Esto sucede antes de que el bot esté autorizado para operar en nombre del usuario.This happens prior to the bot being authorized to operate on behalf of the user.

Veamos si podemos desenredar este paquete empezando por una vista de pájaro del contexto de autenticación de bot Framework.Let's see if we can untangle this bundle by starting with a bird's eye view of the Bot Framework authentication context.

contexto de autenticación de bot.

  • Registro del canal de bot.Bot Channel Registration. Al registrar un bot en Azure, por ejemplo mediante el registro de los canales de bot, Azure crea una aplicación de registro de Active Directory (ad).When you register a bot in Azure, for example via the Bot Channels Registration, Azure creates an Active Directory (AD) registration application. Esta aplicación tiene un identificador de aplicación ( MicrosoftAppID ) y un secreto de cliente ( MicrosoftAppPassword ).This application has an app id (MicrosoftAppID) and a client secret (MicrosoftAppPassword). Estos valores se usan en los archivos de configuración de bot tal y como se describe a continuación.You use these values in the bot configuration files as described below. Tenga en cuenta que puede obtener resultados similares mediante la creación de un Bot de aplicación web.Notice that you can achieve similar results by creating a Web App Bot.

  • Identidad de Azure ad.Azure AD Identity. Azure Active Directory (Azure AD) es un servicio de identidad en la nube que le permite crear aplicaciones que inician sesión de forma segura mediante protocolos estándar del sector como OAuth 2.0.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. Cree una aplicación de AD y use su identificador de aplicación y contraseña para seleccionar un proveedor de identidades y generar una conexión de autenticación .You create an AD application and use its app Id and password to select an identity provider and generate an authentication connection. Agregue esta conexión a la configuración de registro del canal de bot.You add this connection to the bot channel registration settings. También agregará el nombre de conexión en los archivos de configuración de bot tal y como se describe a continuación.You also add the connection name in the bot configuration files as described below.

  • Bot.Bot. Un bot se identifica mediante su identificador de aplicación de registro de canales (o aplicación web) y la contraseña.A bot is identified by its channels registration (or web app) app Id and password. Agregue los valores relacionados en los archivos de configuración de Bot ( appsettings.json (.net), .env (JavaScript), config.py (Python)) o en 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. También agregará el nombre de la conexión a los archivos.You also add the connection name to the files. El bot usa el token basado en el identificador de la aplicación y la contraseña para tener acceso a los recursos protegidos.The bot uses the token based on the app id and password to access protected resources. Además, el bot usa el token basado en la conexión de autenticación para tener acceso a los recursos protegidos del usuario.Also, the bot uses the token based on the authentication connection to access user's protected resources.

Autenticación y autorización de botBot authentication and authorization

Estos son los pasos principales para autenticar un bot y autorizarlo para acceder a los recursos protegidos del usuario:The following are the main steps to authenticate a bot and authorize it to access user's protected resources:

  1. Cree una aplicación de registro de canal de bot.Create a bot channel registration application.
  2. Agregue el identificador y la contraseña de la aplicación de registro al archivo de configuración de bot.Add the registration app id and password to the bot configuration file. Esto permite que el bot se autentique para tener acceso a los recursos protegidos.This allows the bot to be authenticated to access protected resources.
  3. Cree una aplicación de Azure AD para seleccionar un proveedor de identidades para autenticar al usuario.Create an Azure AD application to select an identity provider to authenticate the user.
  4. Cree una conexión de autenticación y agréguela a la configuración de registro del canal.Create an authentication connection and add it to the channel registration settings.
  5. Agregue el nombre de la conexión a los archivos de configuración del bot.Add the connection name to the bot's configuration files. Esto permite que el bot esté autorizado para tener acceso a los recursos protegidos del usuario.This allows the bot to be authorized to access user's protected resources.

Para obtener un ejemplo completo, vea Agregar autenticación a un bot.For a complete example, see Add authentication to a bot.

Procedimientos recomendadosBest practices

  • Mantenga el registro de la aplicación de AAD restringido a su propósito original de la aplicación de servicio a servicio.Keep the AAD app registration restricted to its original purpose of service to service application.
  • Cree una aplicación de AAD adicional para cualquier usuario para la autenticación de servicio, para un control más finito sobre cómo deshabilitar las conexiones de autenticación, los secretos graduales o la reutilización de la aplicación de AAD con otras aplicaciones.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.

Algunos de los problemas que se producen si también se usa la aplicación de registro de AAD para la autenticación son:Some of the problems you encounter if you also use the AAD registration app for authentication are:

  • Si el certificado asociado al registro de la aplicación de AAD debe renovarse, afectaría a los usuarios que se han autenticado con otros servicios de AAD mediante el certificado.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.
  • En general, crea un único punto de error y control para todas las actividades relacionadas con la autenticación con el bot.In general, it creates a single point of failure and control for all authentication related activities with the bot.

En los siguientes artículos se proporciona información detallada y ejemplos sobre la autenticación de bot Framework.The following articles provide in depth information and examples about the Bot Framework authentication. Empiece examinando los tipos de autenticación y, a continuación, los proveedores de identidades.Start by looking at the Authentication types and then Identity providers.

ArtículoArticle DescripciónDescription
Tipos de autenticación Authentication types Describe los dos tipos de autenticación de bot Framework y los tokens que usan.Describes the two Bot Framework authentication types and the tokens they use.
Proveedores de identidadesIdentity providers Describe el uso de proveedores de identidades.Describes the use of identity providers. Permiten compilar aplicaciones que inician sesión de forma segura mediante protocolos estándar del sector como OAuth 2.0.They allow you to build applications that securely sign in users using industry standard protocols like OAuth2.0.
Autenticación de usuariosUser authentication Describe la autenticación del usuario y el token relacionado para autorizar a un bot para que realice tareas en nombre del usuario.Describes user's authentication and the related token to authorize a bot to perform tasks on the user's behalf.
Inicio de sesión únicoSingle sign on Describe la autenticación de un solo usuario para el acceso a varios recursos protegidos.Describes single user authentication for multiple protected resources access.
Registro de canales de botsBot channels registration Muestra cómo registrar un bot con el Azure Bot Service.Shows how to register a bot with the Azure Bot Service.
Protocolos y cifradoBot Framework security guidelines Describe la seguridad en general y a medida que se aplica a bot Framework.Describes security in general and as it applies to the Bot Framework.
Adición de autenticación a un botAdd authentication to a bot Muestra cómo crear el registro del canal de bot, la conexión de autenticación y la preparación del código.Shows how to create bot channel registration, authentication connection and preparing the code.
Adición del inicio de sesión único a un botAdd single sign on to a bot Muestra cómo agregar autenticación de inicio de sesión único a un bot.Shows how to add single sign on authentication to a bot.