Compilación de un bot con autenticación sso
Los bots conversacionales de Microsoft Teams realizan tareas automatizadas repetitivas iniciadas por los usuarios, como el servicio al cliente. El usuario debe iniciar sesión varias veces sin autenticación de inicio de sesión único (SSO). Con los métodos de autenticación sso, los usuarios no necesitan iniciar sesión en el bot varias veces.
Un bot se comporta de forma diferente en función de la conversación en la que esté implicado:
- Los bots en conversaciones de chat de canal y grupo requieren que los usuarios accedan al @mention bot.
- Los bots en una conversación uno a uno no requieren una @mention. Todos los mensajes enviados por el usuario se enrutan al bot.
Esta guía paso a paso le ayuda a crear un bot con autenticación sso. Verá la siguiente salida:
Requisitos previos
Asegúrese de instalar las herramientas siguientes y de configurar el entorno de desarrollo:
Instalar | Para usar... | |
---|---|---|
Microsoft Teams | Microsoft Teams para colaborar con todos los usuarios con los que trabaje a través de aplicaciones para chat, reuniones y llamadas en un solo lugar. | |
Visual Studio 2022 | Puede instalar la versión empresarial en Visual Studio 2022 e instalar las cargas de trabajo ASP.NET y desarrollo web. Use la versión más reciente. | |
Cuenta de desarrollador de Microsoft 365 | Acceso a la cuenta de Teams con los permisos adecuados para instalar una aplicación. | |
Túnel de desarrollo | Las características de aplicaciones de Teams (bots conversacionales, extensiones de mensajes y webhooks entrantes) necesitan conexiones entrantes. Un túnel conecta el sistema de desarrollo a Teams. Dev tunnel es una herramienta eficaz para abrir de forma segura tu host local a Internet y controlar quién tiene acceso. El túnel de desarrollo está disponible en Visual Studio 2022, versión 17.7.0 o posterior. o también puede usar ngrok como túnel para conectar el sistema de desarrollo a Teams. No es necesario para las aplicaciones que solo incluyen pestañas. Este paquete se instala en el directorio del proyecto (mediante npm devDependencies ). |
Nota:
Después de descargar ngrok, regístrese e instale authtoken.
Configuración del inquilino de desarrollo de Teams
Un inquilino es como un espacio o un contenedor donde chatea, comparte archivos y ejecuta reuniones para su organización en Teams. También puede cargar y probar la aplicación personalizada.
Comprobación de la opción de carga de aplicaciones personalizadas
Después de crear la aplicación, debe cargarla en Teams sin distribuirla. Este proceso se conoce como carga de aplicaciones personalizada. Inicie sesión en su cuenta de Microsoft 365 para ver esta opción.
Nota:
La carga de aplicaciones personalizada es necesaria para obtener una vista previa y probar aplicaciones en el entorno local de Teams. Habilite la carga de la aplicación para obtener una vista previa y probar la aplicación localmente en Teams.
¿Ya tiene un inquilino y tiene acceso de administrador? ¡Vamos a comprobar si realmente lo haces!
Para comprobar las aplicaciones de carga personalizadas en Teams:
En el cliente de Teams, seleccione el icono Aplicaciones .
Seleccione Administrar las aplicaciones.
Seleccione Cargar una aplicación.
Busque la opción Cargar una aplicación personalizada. Si ve la opción , la carga de aplicaciones personalizada está habilitada.
Nota:
Póngase en contacto con el administrador de Teams si no tiene la opción de cargar una aplicación personalizada.
Creación de un inquilino para desarrolladores de Teams gratuito (opcional)
Si no tiene una cuenta de desarrollador de Teams, puede obtenerla de forma gratuita. ¡Únete al programa para desarrolladores de Microsoft 365!
Seleccione Unirse ahora y siga las instrucciones en pantalla.
En la pantalla de bienvenida, seleccione Configurar suscripción E5.
Configure una cuenta de administrador. Una vez finalizada, se muestra la pantalla siguiente.
Inicie sesión en Teams con la nueva cuenta de administrador que acaba de configurar. Compruebe que tiene la opción Cargar una aplicación personalizada en Teams.
Configuración del entorno local
Abra Microsoft-Teams-Samples.
Seleccione Código.
En el menú desplegable, seleccione Abrir con GitHub Desktop.
Seleccione Clonar.
Registro de la aplicación Microsoft Entra
Los pasos siguientes le ayudan a crear y registrar el bot en Azure Portal:
- Cree y registre la aplicación de Azure.
- Cree un secreto de cliente para habilitar la autenticación sso del bot.
- Agregue el canal de Teams para implementar el bot.
- Cree un túnel a los puntos de conexión del servidor web mediante el túnel de desarrollo (recomendado) o ngrok.
- Agregue el punto de conexión de mensajería al túnel de desarrollo que ha creado.
Agregar registro de aplicación
Acceda a Portal Azure.
Seleccione Registros de aplicaciones.
Seleccione + Nuevo registro.
Escriba el nombre de la aplicación.
Seleccione Cuentas en cualquier directorio organizativo (cualquier inquilino de Microsoft Entra ID: multiinquilino).
Seleccione Registrar.
La aplicación está registrada en Microsoft Entra ID. Aparece la página de información general de la aplicación.
Nota:
Guarde el identificador de la aplicación desde el identificador de aplicación (cliente) y el identificador de directorio (inquilino) para su uso posterior.
Creación de un túnel
Abra Visual Studio.
Seleccione Crear un nuevo proyecto.
En el cuadro de búsqueda, escriba ASP.NET. En los resultados de la búsqueda, seleccione ASP.NET Core Web App.
Seleccione Siguiente.
Escriba Nombre del proyecto y seleccione Siguiente.
Seleccione Crear.
Aparece una ventana de información general.
En la lista desplegable de depuración, seleccione Túneles de desarrollo (sin túnel activo)>Crear un túnel....
Aparecerá una ventana emergente.
Actualice los detalles siguientes en la ventana emergente:
- Cuenta: escriba una cuenta de Microsoft o GitHub.
- Nombre: escriba un nombre para el túnel.
- Tipo de túnel: en la lista desplegable, seleccione Temporal.
- Acceso: en la lista desplegable, seleccione Público.
Seleccione Aceptar.
Aparece una ventana emergente que muestra que el túnel de desarrollo se ha creado correctamente.
Seleccione Aceptar.
Puede encontrar el túnel que ha creado en la lista desplegable de depuración de la siguiente manera:
Seleccione F5 para ejecutar la aplicación en el modo de depuración.
Si aparece un cuadro de diálogo Advertencia de seguridad , seleccione Sí.
Aparecerá una ventana emergente.
Seleccione Continuar.
La página principal del túnel de desarrollo se abre en una nueva ventana del explorador y el túnel de desarrollo ya está activo.
Vaya a Visual Studio y seleccione Ver > salida.
En el menú desplegable Consola de salida , seleccione Túneles de desarrollo.
La consola de salida muestra la dirección URL del túnel de desarrollo.
Adición de una autenticación web
En el panel izquierdo, en Administrar, seleccione Autenticación.
Seleccione Agregar una plataforma>web.
Escriba el URI de redireccionamiento de la aplicación anexando
auth-end
al nombre de dominio completo. Por ejemplo,https://your-devtunnel-domain/auth-end
ohttps://your-ngrok-domain/auth-end
.En Flujos híbridos y de concesión implícita, seleccione las casillas Tokens de acceso y tokens de identificador .
Seleccione Configurar.
En Web, seleccione Agregar URI.
Escriba
https://token.botframework.com/.auth/web/redirect
.Haga clic en Guardar.
Creación de un secreto de cliente
En el panel izquierdo, en Administrar, seleccione Certificados & secretos.
En Secretos de cliente, seleccione + Nuevo secreto de cliente.
Aparece la ventana Agregar un secreto de cliente .
Escriba Descripción.
Seleccione Agregar.
En Valor, seleccione Copiar en el Portapapeles para guardar el valor del secreto de cliente para su uso posterior.
Agregar permisos de API
En el panel izquierdo, seleccione Permisos de API.
Seleccione + Agregar un permiso.
Seleccione Microsoft Graph.
Seleccione Permisos delegados
SeleccioneUsuario.Lectura>.
Seleccione Agregar permisos.
Nota:
Si a una aplicación no se le concede el consentimiento del administrador de TI, los usuarios deben proporcionar su consentimiento la primera vez que usen una aplicación. Los usuarios solo deben dar su consentimiento a los permisos de API si la aplicación Microsoft Entra está registrada en un inquilino diferente.
URI de Id. de la aplicación:
En el panel izquierdo, en Administrar, seleccione Exponer una API.
Junto a URI de id. de aplicación, seleccione Agregar.
Actualice el URI del identificador de aplicación en el
api://botid-{AppID}
formato y seleccione Guardar.
Agregar un ámbito
En el panel izquierdo, en Administrar, seleccione Exponer una API.
Seleccione + Agregar un ámbito.
Escriba access_as_user como nombre del ámbito.
En ¿Quién puede dar su consentimiento?, seleccione Administradores y usuarios.
Actualice los valores del resto de los campos de la siguiente manera:
Escriba Teams para acceder al perfil del usuario como nombre para mostrar del consentimiento del administrador.
Entrar Permite a Teams llamar a las API web de la aplicación como el usuario actual como descripción del consentimiento del administrador.
Escriba Teams para acceder al perfil de usuario y realizar solicitudes en nombre del usuario como nombre para mostrar del consentimiento del usuario.
Escriba Habilitar Teams para llamar a las API de esta aplicación con los mismos derechos que el usuario que ladescripción del consentimiento del usuario.
Asegúrese de que Estado se establece en Habilitado.
Seleccione Agregar ámbito.
En la imagen siguiente se muestran los campos y los valores:
Nota:
El nombre del ámbito debe coincidir con el URI del identificador de aplicación con
/access_as_user
anexado al final.
Agregar aplicación cliente
En el panel izquierdo, en Administrar, seleccione Exponer una API.
En Aplicaciones cliente autorizadas, identifique las aplicaciones que desea autorizar para la aplicación web de la aplicación.
Seleccione + Agregar una aplicación cliente.
Agregue aplicaciones web de Teams para dispositivos móviles o de escritorio y Teams.
Para equipos móviles o de escritorio de Teams: escriba el identificador de cliente como
1fec8e78-bce4-4aaf-ab1b-5451cc387264
.En Web de Teams: escriba el identificador de cliente como
5e3ce6c0-2b1f-4285-8d4b-75ee78787346
.
Active la casilla Ámbitos autorizados .
Seleccione Agregar aplicación.
En la imagen siguiente se muestra el identificador de cliente:
Actualizar el manifiesto
En el panel izquierdo, seleccione Manifiesto.
Establezca el valor de en
accessTokenAcceptedVersion
2
y seleccione Guardar.
Creación del bot
Creación de un recurso de bot de Azure
Nota:
Si ya está probando el bot en Teams, cierre la sesión de esta aplicación y Teams. Para ver este cambio, vuelva a iniciar sesión.
Ve a Inicio.
Seleccione + Crear un recurso.
En el cuadro de búsqueda, escriba Azure Bot.
Seleccione Introducir.
Seleccione Bot de Azure.
Seleccione Crear.
Escriba el nombre del bot en Identificador de bot.
Seleccione su Suscripción en la lista desplegable.
Seleccione el Grupo de recursos en la lista desplegable.
Si no tiene un grupo de recursos existente, puede crear un nuevo grupo de recursos. Para crear un nuevo grupo de recursos, siga estos pasos:
- Seleccione Crear nuevo.
- Escriba el nombre del recurso y seleccione Aceptar.
- Seleccione una ubicación en la lista desplegable Nueva ubicación del grupo de recursos .
En Precios, seleccione Cambiar plan.
Seleccione FO FreeSelect (Seleccionar libre> de FO).
En Id. de aplicación de Microsoft, seleccione Tipo de aplicación como multiinquilino.
En Tipo de creación, seleccione Usar registro de aplicación existente.
Escriba el identificador de aplicación.
Nota:
No puede crear más de un bot con el mismo identificador de aplicación de Microsoft.
Seleccione Revisar y crear.
Una vez superada la validación, seleccione Crear.
El bot tarda unos minutos en aprovisionarse.
Seleccione Ir a recursos.
Ha creado correctamente el bot de Azure.
Agregar un canal de Teams
En el panel izquierdo, seleccione Canales.
En Canales disponibles, seleccione Microsoft Teams.
Active la casilla para aceptar los Términos de servicio.
Seleccione Aceptar.
Seleccione Aplicar.
Para agregar un punto de conexión de mensajería
Use la dirección URL del túnel de desarrollo en la consola de salida como punto de conexión de mensajería.
En el panel izquierdo, en Configuración, seleccione Configuración.
Actualice el punto de conexión de mensajería con el formato
https://your-devtunnel-domain/api/messages
.Seleccione Aplicar.
Ha configurado correctamente un bot en Azure Bot Service.
Nota:
Si la clave de instrumentación de Application Insights muestra un error, actualice con el identificador de aplicación.
Agregar una configuración de conexión de OAuth
En el panel izquierdo, seleccione Configuración.
Seleccione el botón Agregar ajustes de conexión de OAuth en la pantalla Configuración.
En Nueva configuración de conexión, actualice los detalles siguientes:
- Nombre: escriba un nombre para la nueva configuración de conexión. Puede usar el nombre en la configuración del código de bot service.
- Proveedor de servicios: en la lista desplegable, seleccione Azure Active Directory v2.
- Id. de cliente: actualice el identificador de aplicación de Microsoft.
- Secreto de cliente: actualice el valor de los secretos de cliente.
- Dirección URL de Intercambio de tokens: actualice el URI del identificador de aplicación.
- Identificador de inquilino: escriba Común.
- Ámbitos: escriba User.Read.
Haga clic en Guardar.
Configuración de la configuración de la aplicación y archivos de manifiesto
Vaya al archivo appsettings.json en el repositorio clonado.
Abra el archivo appsettings.json y actualice la siguiente información:
- Establezca en
"MicrosoftAppId"
el identificador de aplicación de Microsoft del bot. - Establezca en
"MicrosoftAppPassword"
el valor de id. de secreto de cliente del bot. - Establezca
ConnectionName
como nombre de conexión de OAuth. - Establezca en
"MicrosoftAppType"
MultiTenant. - Establézcalo en
"MicrosoftAppTenantId"
común.
- Establezca en
Vaya al archivo manifest.json en el repositorio clonado.
Abra el archivo manifest.json y actualice los cambios siguientes:
- Reemplace todas las repeticiones de por su identificador de aplicación de
"{TODO: MicrosoftAppId}"
Microsoft. - Establezca en
"<<domain-name>>"
el dominio de ngrok o de túnel de desarrollo.
- Reemplace todas las repeticiones de por su identificador de aplicación de
Compilación y ejecución del servicio
Abra Visual Studio.
Vaya a Archivo>Abrir>proyecto o solución....
En bot-conversation-sso-quickstart>csharp_dotnetcore carpeta y seleccione BotConversationSsoQuickstart.sln archivo.
Seleccione F5 para ejecutar el proyecto.
Si aparece un cuadro de diálogo Advertencia de seguridad , seleccione Sí.
Se abre una página web con un mensaje El bot está listo.
Solución de problemas
Si recibe el error No se puede encontrar el paquete , siga estos pasos:
- Vaya a Herramientas>Configuración del Administrador> depaquetes NuGet.
- En la ventana Opciones que aparece, seleccioneOrígenes de paquetes del Administrador > de paquetes NuGet.
- Seleccione Agregar.
- En Nombre, escriba
nuget.org
y, en Origen, escribahttps://api.nuget.org/v3/index.json
. - Seleccione Actualizar y Aceptar.
- Recompile el proyecto.
Carga del bot en Teams
En el repositorio clonado, vaya a Microsoft-Teams-Samples>>bot-conversation-sso-quickstart>csharp_dotnetcore>BotConversationSsoQuickstart.
Cree un archivo .zip con los siguientes archivos presentes en la carpeta appPackage :
- manifest.json
- outline.png
- color.png
Vaya a Microsoft Teams.
En el cliente de Teams, seleccione Aplicaciones.
Seleccione Administrar las aplicaciones.
Seleccione Cargar una aplicación.
Busque la opción Cargar una aplicación personalizada.
Seleccione Abrir para cargar el archivo .zip que ha creado en la carpeta Manifiesto .
Seleccione Agregar para agregar el bot al chat.
Puede interactuar con el bot enviándole un mensaje. El bot intercambia un token de SSO y llama a Graph API en su nombre. Mantiene la sesión iniciada a menos que envíe un mensaje para cerrar la sesión.
Envíe un mensaje al bot. El bot de conversación pide consentimiento por primera vez.
Para escritorio: seleccione Continuar para conceder permisos al cliente de Teams para acceder al bot.
Nota:
Ahora ha configurado el inicio de sesión único con la aplicación de bot y es el único momento en que tendrá que dar su consentimiento.
Para dispositivos móviles: seleccione Aceptar.
Nota:
Ahora ha configurado el inicio de sesión único con la aplicación de bot en dispositivos móviles y es el único momento en que tendrá que dar su consentimiento.
Desafío completo
¿Se te ocurrió algo como esto?
¡Enhorabuena!
Ha completado el tutorial para empezar a compilar un bot con autenticación sso.
¿Tiene algún problema con esta sección? Si es así, envíenos sus comentarios para que podamos mejorarla.