Habilitación del inicio de sesión único para la aplicación de pestañas

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 las aplicaciones de pestaña. Después de iniciar sesión en Teams con la cuenta de Microsoft o Microsoft 365, 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 el acceso concedido a través de Microsoft Entra ID.

Esto es lo que aprenderá en esta sección:

  1. Experiencia de usuario de SSO: Teams ofrece a los usuarios de la aplicación una experiencia de SSO verdadera. Los usuarios de la aplicación pueden usar la aplicación sin volver a iniciar sesión.
  2. Inicio de sesión único en Teams en tiempo de ejecución: la aplicación de pestaña interactúa con Microsoft Entra ID en tiempo de ejecución para la autenticación y autorización únicas para los usuarios de la aplicación.
  3. Habilitar el inicio de sesión único para la aplicación de pestaña: implemente las tareas implicadas para habilitar el inicio de sesión único en la aplicación de pestaña.

Experiencia de usuario de SSO en Teams

Los usuarios de la aplicación inician sesión en Teams con una cuenta microsoft personal o una cuenta de Microsoft 365. Puede aprovechar esta cuenta y usar el inicio de sesión único para autenticar y autorizar a los usuarios de la aplicación.

Captura de pantalla que muestra la experiencia del usuario de SSO en una aplicación de pestaña de Teams.

  • Teams autentica y almacena la identidad de su usuario de la aplicación.
  • La aplicación de pestañas 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 a la aplicación de pestaña.
  • El usuario de la aplicación puede acceder a la aplicación en el cliente web, de escritorio o móvil.

Puede ver aquí un ejemplo de experiencia del usuario con SSO en una aplicación de pestañas:

La representación gráfica muestra la experiencia del usuario del inicio de sesión único en la aplicación de pestaña.

Mejora de la experiencia del usuario con el SSO

Esto es lo que obtienen los usuarios de la aplicación con la experiencia de SSO:

  • Teams obtiene el token de acceso del usuario de la aplicación actual de Microsoft Entra ID. Esta interacción con Microsoft Entra ID es invisible para el usuario de la aplicación. Se traduce para obtener acceso a la aplicación sin tener que salir del entorno de Teams.
  • Un usuario de la aplicación solo debe dar su consentimiento en un entorno multiinquilino. Si el usuario de la aplicación y la aplicación residen en el mismo inquilino, el usuario de la aplicación no necesita dar su consentimiento para usar la aplicación.
  • Después de dar su consentimiento a Teams por primera vez, el usuario de la aplicación puede usar la aplicación sin necesidad de consentimiento adicional, incluso en cualquier otro dispositivo. Por este motivo, ofrece una mejor experiencia de usuario.
    • Como alternativa, el administrador de inquilinos puede conceder consentimiento en nombre de los usuarios de la aplicación. En este escenario, cuando el administrador de inquilinos da su consentimiento a los usuarios de la aplicación en el inquilino, no es necesario solicitar consentimiento a los usuarios de la aplicación. Esto significa que los usuarios de la aplicación no ven los diálogos de consentimiento y pueden acceder a la aplicación sin problemas.
  • Teams captura previamente el token de acceso para mejorar el rendimiento y el tiempo de carga de la aplicación en el entorno de Teams.
  • Los usuarios de la aplicación no necesitan memorizar ni registrar varias contraseñas para acceder y usar aplicaciones en el entorno de Teams.

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

Consiga el SSO en una aplicación de pestaña mediante la obtención del token de acceso para el usuario de la aplicación de Teams que ha iniciado sesión actualmente. Este proceso implica el cliente y el servidor de la aplicación de pestaña, el cliente de Teams y Microsoft Entra ID. Durante esta interacción, el usuario de la aplicación debe dar su consentimiento para usar la identidad de Teams para obtener el token de acceso en un entorno multiinquilino.

En la imagen siguiente se muestra cómo funciona el SSO cuando un usuario de la aplicación de Teams intenta acceder a la aplicación de pestaña:

Captura de pantalla que muestra el flujo de proceso de inicio de sesión único de la pestaña y cómo funciona.

# Interacción Qué sucede
1 Aplicación de pestaña → Cliente de Teams La aplicación de pestañas realiza una llamada de JavaScript a getAuthToken(), que indica a Teams que obtenga un token de acceso.
2 → Microsoft Entra ID cliente de Teams Teams solicita Microsoft Entra punto de conexión para el token de acceso para el usuario de la aplicación actual en función de la identidad de Teams.
3 formulario de consentimiento de Microsoft Entra ID → Si el usuario de la aplicación actual usa la aplicación de pestaña por primera vez, Teams muestra la solicitud de consentimiento, si la aplicación necesita acceder a algunos datos protegidos. El usuario de la aplicación (o el administrador) debe dar su consentimiento a Teams para usar la identidad de Teams del usuario de la aplicación para obtener el token de acceso de Microsoft Entra ID.
Como alternativa, hay un mensaje de solicitud para controlar la autenticación de paso a paso, como la autenticación en dos fases.
4 Microsoft Entra ID → cliente de Teams Microsoft Entra ID envía el token de acceso al cliente de Teams. El token es un token web JSON (JWT) y su validación funciona igual que la validación de tokens en la mayoría de los flujos estándar de OAuth. Teams almacena en caché el token en su nombre para que las llamadas futuras a getAuthToken() devuelvan el token almacenado en caché.
5 Cliente de Teams → Cliente de la aplicación de pestaña Teams envía el token de acceso a la aplicación de pestaña como parte del objeto de resultado devuelto por la llamada getAuthToken().
6 Aplicación de tabulación (entre cliente y servidor) La aplicación de pestañas analiza el token de acceso mediante JavaScript para extraer la información necesaria, como la dirección de correo electrónico del usuario de la aplicación. El token devuelto a la aplicación de pestañas es un token de acceso y un token de identidad.

Para obtener más información, consulte Agregar código para habilitar el inicio de sesión único en una aplicación de pestaña y Agregar código para habilitar el inicio de sesión único en la aplicación de bot.

Importante

  • getAuthToken() solo es válido para dar su consentimiento a un conjunto limitado de API de nivel de usuario, como correo electrónico, perfil, offline_access y OpenId. No se usa para otros ámbitos de Graph, como User.Read o Mail.Read. Para obtener soluciones alternativas sugeridas, consulte Extender la aplicación con permisos de Microsoft Graph.
  • Se getAuthToken produce un error para los usuarios anónimos, ya que no son cuentas Microsoft Entra.

Las pestañas son páginas web compatibles con Teams. Para habilitar el inicio de sesión único en una página web hospedada dentro de una aplicación de pestaña, agregue la biblioteca cliente de JavaScript de Teams y llame a microsoftTeams.initialize(). Después de la inicialización, llame a microsoftTeams.getAuthToken() para obtener el token de acceso de la aplicación.

Casos de uso para habilitar el SSO

Puede habilitar el inicio de sesión único en Teams para todas las aplicaciones que admiten Microsoft Entra ID como proveedor de identidades. Además de usar el SSO para autenticar usuarios de aplicaciones en una aplicación de pestaña, también puede usarlo para habilitar el acceso sin problemas en Teams.

Algunos escenarios en los que puede usar la API del SSO para autenticar a los usuarios de la aplicación son:

  • Si quiere autenticar a los usuarios de la aplicación en una aplicación de pestaña de Teams, la API del SSO permite a los usuarios de la aplicación usar la aplicación en Teams sin necesidad de autenticación adicional. En función de la identidad de Teams del usuario de la aplicación, puede obtener el token de acceso de Microsoft Entra ID.
  • Si la aplicación usa diálogos (denominados módulos de tareas en TeamsJS v1.x) desde un bot, una pestaña, una extensión de mensaje o tarjetas adaptables, puede usar la API de SSO para autenticar a los usuarios de la aplicación.
  • También puede usar la API de SSO para autenticar a los usuarios de la aplicación que quieran acceder a Stageview sin necesidad de volver a validarlo.

Sugerencia

También puede usar la API de SSO para autenticar a los usuarios de la aplicación en diálogos que insertan contenido web.

Para lograr el inicio de sesión único en tiempo de ejecución, configure la aplicación para habilitarlo para autenticar y autorizar a los usuarios de la aplicación.

Habilitación del inicio de sesión único para una aplicación de pestaña de Teams

En esta sección se describen las tareas implicadas en la implementación del inicio de sesión único para una aplicación de Teams. Estas tareas son independientes del lenguaje y del marco.

Para habilitar el inicio de sesión único para una aplicación de pestaña de Teams:

       Captura de pantalla que muestra los pasos para habilitar el inicio de sesión único para la pestaña .

  1. 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 el token de acceso, configure ámbitos y autorice aplicaciones cliente de confianza.
  2. Agregar código: agregue el código para controlar el token de acceso, envíe este token al código de servidor de la aplicación en el encabezado Authorization y valide el token de acceso cuando se reciba.
  3. Actualizar manifiesto de aplicación de Teams: actualice el manifiesto de la aplicación cliente de Teams 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.

Cookies de terceros en iOS

Después de la actualización de iOS 14, Apple ha bloqueado el acceso a cookies de terceros para todas las aplicaciones de forma predeterminada. Por lo tanto, las aplicaciones que usan cookies de terceros para la autenticación en sus pestañas Canal o Chat y Aplicaciones personales no podrán completar sus flujos de trabajo de autenticación en clientes iOS de Teams. Para cumplir con los requisitos de privacidad y seguridad, debe pasar a un sistema basado en tokens o usar cookies propias para los flujos de trabajo de autenticación de usuario.

Soporte técnico para clientes móviles de Teams

Para Teams para móviles, las versiones de cliente que admiten el SSO son:

  • Teams para Android (1416/1.0.0.2020073101 y versiones posteriores)
  • Teams para iOS (versión: 2.0.18 y posteriores)
  • Biblioteca de JavaScript de Teams (versión: 1.11 y versiones posteriores) para que el inicio de sesión único funcione en el panel lateral de la reunión

Para la mejor experiencia con Teams, use la última versión de iOS y Android.

Guías paso a paso

Use las siguientes guías paso a paso para habilitar el inicio de sesión único para la aplicación teams:

Procedimientos recomendados

Esta es una lista de procedimientos recomendados:

  • Llame al token de acceso solo cuando lo necesite: llame a getAuthToken() solo cuando necesite un token de acceso. Puede llamarlo cuando un usuario de la aplicación accede a la aplicación de pestañas o para usar una función determinada que requiera la validación del usuario de la aplicación.
  • No almacenar el token de acceso en el código del lado cliente: no almacene en caché ni almacene el token de acceso en el código del lado cliente de la aplicación. El cliente de Teams almacena en caché el token de acceso (o solicita uno nuevo si expira). Esto garantiza que no haya ninguna pérdida accidental del token de la aplicación web.
  • Usar código del lado servidor para llamadas Microsoft Graph: use siempre el código del lado servidor para realizar llamadas Microsoft Graph u otras llamadas que requieran pasar un token de acceso. Nunca devuelva el token OBO al cliente para permitir que el cliente realice llamadas directas a Microsoft Graph. Esto ayuda a proteger el token de ser interceptado o filtrado. Para obtener más información, vea Extender la aplicación de pestañas con permisos de Microsoft Graph y ámbito.

Limitaciones conocidas

  • Actualmente, el SSO en Teams solo admite el token de OAuth 2.0. No admite el token SAML.
  • No se admiten varios dominios por aplicación. Para obtener más información, consulte Aplicaciones personalizadas creadas para su organización (aplicaciones LOB).
  • Los redireccionamientos no se admiten para aplicaciones siramadas o intermediadas. Asegúrese de usar MSAL.js en el marco superior de la ventana si usa las API de redireccionamiento o usa la API (window.parent!==window) => trueemergente .

Paso siguiente

Recursos adicionales