Habilitación del inicio de sesión único para la aplicación
Con el inicio de sesión único (SSO) en Teams, los usuarios de la aplicación tienen la ventaja de usar Teams para acceder a aplicaciones de extensión de mensajes o bots. Después de iniciar sesión en Teams con Microsoft o Microsoft 365 cuenta, los usuarios de la aplicación pueden usar la aplicación sin necesidad de volver a iniciar sesión. La aplicación está disponible para los usuarios de la aplicación en cualquier dispositivo con acceso concedido a través de Microsoft Entra ID.
Nota:
El inicio de sesión único para una aplicación de bot en Teams solo se admite en el chat uno a uno.
En esta sección se describe la configuración de SSO necesaria para las aplicaciones de extensión de bot y mensajería.
Experiencia de usuario de SSO en Teams
Los usuarios de la aplicación inician sesión en Teams con una cuenta personal de Microsoft o una cuenta de Microsoft 365. Puede aprovechar esto y usar el inicio de sesión único para autenticar y autorizar a los usuarios de la aplicación. Microsoft Entra ID proporciona a los usuarios de la aplicación acceso a la aplicación de extensión de mensaje o bot.
- Teams autentica y almacena la identidad de su usuario de la aplicación.
- El bot usa la identidad almacenada del usuario de la aplicación que teams ya ha validado.
- El usuario de la aplicación debe dar su consentimiento a Teams para usar la identidad para acceder al bot.
- El usuario de la aplicación puede acceder a la aplicación en el cliente web, de escritorio o móvil.
Nota:
Los usuarios de la aplicación no pueden conceder permiso a algunos ámbitos de permisos, como Sites.ReadWrite.All
, que permite al usuario de la aplicación leer y escribir en todos los recursos de SharePoint y OneDrive del espacio empresarial. Para estos ámbitos, solo el administrador de inquilinos puede conceder consentimiento en nombre de un usuario de la aplicación.
Ahora, veamos lo que sucede en el back-end durante el tiempo de ejecución para lograr la experiencia de SSO en Teams.
SSO en Teams en tiempo de ejecución
Para lograr el inicio de sesión único en una aplicación de extensión de bot o mensaje, obtenga el token de acceso para el usuario de la aplicación de Teams que ha iniciado sesión. Este proceso implica el cliente y el servidor de la aplicación de bot, el cliente de Teams, Bot Framework y el identificador de Microsoft Entra. Durante esta interacción, el usuario de la aplicación debe dar su consentimiento para obtener el token de acceso en un entorno multiinquilino.
En la imagen siguiente se muestra cómo funciona el inicio de sesión único cuando un usuario de la aplicación de Teams intenta acceder a la aplicación de extensión de mensaje o bot:
# | Interacción | Qué sucede |
---|---|---|
1 | Servicio bot de → cliente de Teams | El cliente de Teams recibe el mensaje que envía el usuario de la aplicación, que lo envía al bot. Si el usuario de la aplicación ha iniciado sesión anteriormente, se guarda un token en Bot Framework Token Store. El bot llama a Bot Framework Token Service, que comprueba si hay un token existente para el usuario de la aplicación en Bot Framework Token Store. • Si el token existe, se le da acceso al usuario de la aplicación. • Si no hay ningún token disponible, el bot desencadena el flujo de autenticación. |
2 | Bot service → Bot Framework Token Service | El bot llama a Bot Framework Token Service para obtener un vínculo de inicio de sesión para el usuario. |
3 | Bot Framework Token Service → cliente de Teams | • Para la aplicación bot: Bot Framework Token Service envía la solicitud de vínculo de inicio de sesión al servicio bot, que lo reenvía al cliente de Teams en una tarjeta de OAuth. • Para la aplicación de extensión de mensaje: en lugar de la tarjeta OAuth, Bot Framework Token Service envía una solicitud de invocación. |
4 | Cliente de Teams → Bot Service → Bot Framework Token Service → id. de Microsoft Entra | Una vez que el cliente de Teams recibe la tarjeta de OAuth para el usuario de la aplicación, si el inicio de sesión único está habilitado, envía una solicitud de intercambio de tokens para el usuario de la aplicación al bot. El bot llama a Bot Framework Token Service e intenta intercambiar el token recibido desde el identificador de Microsoft Entra. |
5 | Microsoft Entra ID → cliente de Teams | Para el usuario de la aplicación que usa el servicio bot por primera vez, el intercambio de tokens solo puede producirse después de que el usuario de la aplicación dé su consentimiento. El cliente de Teams muestra un mensaje al usuario de la aplicación para dar su consentimiento. En caso de que se produzca un error en el consentimiento: 1. La autenticación vuelve al símbolo del sistema de inicio de sesión y el usuario de la aplicación debe iniciar sesión para usar la aplicación bot. El botón de inicio de sesión aparece en el cliente de Teams y, cuando el usuario de la aplicación lo selecciona, se representa la página de inicio de sesión de Microsoft Entra. 2. El usuario de la aplicación inicia sesión y concede acceso al servicio bot. |
6 | Bot service → Bot Framework Token Service | El token del usuario de la aplicación se almacena en Bot Framework Token Store. |
Para un bot o una aplicación de extensión de mensaje, la aplicación de bot envía una tarjeta OAuth al cliente de Teams. Esta tarjeta se usa para obtener el token de acceso de Microsoft Entra ID mediante tokenExchangeResource
. Tras el consentimiento del usuario de la aplicación, el cliente de Teams envía el token recibido de Microsoft Entra ID a la aplicación bot mediante tokenExchange
. A continuación, la aplicación bot puede analizar el token para recuperar la información del usuario de la aplicación, como la dirección de correo electrónico.
Importante
Una aplicación de extensión de bot o mensaje puede tener más de un punto de conexión activo. La primera vez que el usuario de la aplicación recibiría una solicitud de consentimiento para todos los puntos de conexión activos.
Habilitación del inicio de sesión único para una aplicación de Teams
Las aplicaciones de extensión de bot y mensaje usan Bot Framework para controlar la comunicación con los usuarios de la aplicación.
Aplicación de bot: también conocida como bot de chat o bot conversacional, es un servicio que ejecuta tareas sencillas y repetitivas para los usuarios de la aplicación. Los bots pueden formar parte de una aplicación más grande o ser un servicio independiente.
Aplicación de extensión de mensajes: es un servicio web que hospeda que se puede invocar desde el cliente de Teams. Utiliza el esquema de mensajería de un bot para garantizar una comunicación segura. Tendrá que registrar el servicio web como bot para habilitar el inicio de sesión único para la aplicación de extensión de mensajes.
En esta sección se describen las tareas implicadas en la implementación del inicio de sesión único para un bot de Teams o una aplicación de extensión de mensajes. Para habilitar el inicio de sesión único para un bot de Teams o una aplicación de extensión de mensaje:
Configurar la aplicación con Microsoft Entra ID: cree una aplicación de Microsoft Entra para generar un identificador de aplicación y un URI de identificador de aplicación. Para generar un token de acceso, configure ámbitos y autorice aplicaciones cliente de confianza. La configuración necesaria en Microsoft Entra ID para habilitar el inicio de sesión único en un bot y las aplicaciones de extensión de mensaje es la misma. Cree un recurso de bot y configure su secreto de cliente, punto de conexión de mensajería y conexión de OAuth para habilitar el inicio de sesión único.
Agregar código: agregue el código para controlar el token de acceso para enviar este token al código de servidor de la aplicación en el encabezado Authorization y validar el token de acceso cuando se reciba. El código necesario para habilitar el inicio de sesión único en una aplicación de bot es diferente del código necesario para una aplicación de extensión de mensaje.
Nota:
Esta sección le permite seleccionar la aplicación para la que desea agregar código para habilitar el inicio de sesión único.
Actualizar manifiesto de aplicación (anteriormente denominado manifiesto de aplicación de Teams): actualice el manifiesto de la aplicación con el identificador de aplicación y el URI de identificador de aplicación generados en Microsoft Entra ID para permitir que Teams solicite tokens de acceso en nombre de la aplicación. La actualización necesaria en el archivo de manifiesto de la aplicación es la misma para las aplicaciones de extensión de bots y mensajes.
Configurar los ámbitos y permisos de Graph: puede agregar más ámbitos a la aplicación ampliando la aplicación con permisos y ámbitos de Microsoft Graph.