Compartir a través de


Habilitación del inicio de sesión único para la aplicación Teams

Microsoft Teams proporciona una función de inicio de sesión único (SSO) para que una aplicación obtenga el token de usuario de Teams que ha iniciado sesión para acceder a Microsoft Graph y a otras API. Microsoft Teams Toolkit simplifica el proceso mediante la incorporación de ciertos flujos de trabajo e integraciones de Microsoft Entra en API sencillas y de alto nivel. Como resultado, puede incorporar sin esfuerzo funcionalidades de SSO en la aplicación de Teams. Para obtener más información, consulte Autenticación de usuarios en Microsoft Teams.

Configuraciones clave

Para habilitar el inicio de sesión único, configure la aplicación de Teams de la siguiente manera:

  • Microsoft Entra manifiesto de aplicación: asegúrese de definir URI, incluido el URI que identifica la aplicación de autenticación de Microsoft Entra y el URI de redireccionamiento que devuelve el token.

  • Manifiesto de aplicación de Teams: conecte la aplicación sso a la aplicación de Teams mediante la incorporación de la configuración correcta.

  • Archivos de configuración e infraestructura del kit de herramientas de Teams: asegúrese de que se han implementado las configuraciones necesarias para habilitar el inicio de sesión único para la aplicación de Teams.

  • Información de la aplicación sso en los archivos de configuración del kit de herramientas de Teams: asegúrese de que la aplicación de autenticación se registra en el servicio back-end y que Teams Toolkit la inicia durante la depuración o la vista previa de la aplicación de Teams.

Creación de Microsoft Entra manifiesto de aplicación

  1. Descargue la plantilla de manifiesto de aplicación Microsoft Entra.

  2. Agregue el código de plantilla de manifiesto de aplicación descargado al ./aad.manifest.json archivo. Esto le permite personalizar diferentes aspectos del registro de la aplicación y actualizar el manifiesto según sea necesario. Para obtener más información, vea manifiesto de aplicación.

Actualización del manifiesto de aplicación de Teams

En el ./appPackages/manifest.json archivo, agregue el código siguiente:

"webApplicationInfo": {
  "id": "${{AAD_APP_CLIENT_ID}}",
  "resource": "api://${{TAB_DOMAIN}}/${{AAD_APP_CLIENT_ID}}"
}

webApplicationInfoproporciona su Microsoft Entra id. de aplicación y la información de Microsoft Graph para ayudar a los usuarios a iniciar sesión en la aplicación.

Nota:

Puede usar para hacer {{ENV_NAME}} referencia a variables en el env/.env.{TEAMSFX_ENV} archivo.

Actualizar archivos de configuración del kit de herramientas de Teams

  1. Busque los archivos de configuración del kit de herramientas de Teams, como ./teamsapp.yml y ./teamsapp.local.yml. Actualice las configuraciones necesarias relacionadas con Microsoft Entra en estos archivos.

  2. Agregue la aadApp/create acción en provision./teamsapp.yml y ./teamsapp.local.yml para crear una nueva aplicación de Microsoft Entra que se usa para el inicio de sesión único:

    - uses: aadApp/create
      with:
        name: "YOUR_AAD_APP_NAME"
        generateClientSecret: true
        signInAudience: "AzureADMyOrg"
      writeToEnvironmentFile:
          clientId: AAD_APP_CLIENT_ID
          clientSecret: SECRET_AAD_APP_CLIENT_SECRET
          objectId: AAD_APP_OBJECT_ID
          tenantId: AAD_APP_TENANT_ID
          authority: AAD_APP_OAUTH_AUTHORITY
    

    Nota:

    Reemplace el name valor por el nombre deseado para la aplicación de Teams.

    Para obtener más información, vea aadApp/create.

  3. Agregue la aadApp/update acción en provision./teamsapp.yml y ./teamsapp.local.yml para actualizar la aplicación de Microsoft Entra:

    - uses: aadApp/update
      with:
        manifestPath: "./aad.manifest.json"
        outputFilePath: "./build/aad.manifest.${{TEAMSFX_ENV}}.json"
    

    Nota:

    • Actualice el manifestPath valor a la ruta de acceso relativa de la plantilla aad.manifest.jsonde manifiesto de aplicación Microsoft Entra , si ha cambiado la ruta de acceso del archivo.
    • En una configuración local, coloque después de aad/update la file/createOrUpdateEnvironmentFile acción. Esto es necesario porque aad/update usa la salida de file/createOrUpdateEnvironmentFile.

    Para obtener más información, consulte aadApp/update

  4. Para un proyecto de React, actualice cli/runNpmCommand en deploy.

  5. Si va a compilar una aplicación de pestaña mediante el marco de React en la CLI, busque la cli/runNpmCommand acción con build app en el teamsapp.yml archivo y agregue las siguientes variables de entorno:

    env:
      REACT_APP_CLIENT_ID: ${{AAD_APP_CLIENT_ID}}
      REACT_APP_START_LOGIN_PAGE_URL: ${{TAB_ENDPOINT}}/auth-start.html
    
  6. Si va a compilar una aplicación de pestaña con React marco, busque la acción para la file/createOrUpdateEnvironmentFile implementación en teamsapp.local.yml el archivo y agregue las siguientes variables de entorno:

    envs:
      ...
      REACT_APP_CLIENT_ID: ${{AAD_APP_CLIENT_ID}}
      REACT_APP_START_LOGIN_PAGE_URL: ${{TAB_ENDPOINT}}/auth-start.html
    

Actualización del código fuente

Con los cambios anteriores implementados, el entorno está preparado. Ahora puede actualizar el código para incorporar el inicio de sesión único en la aplicación de Teams.

JavaScript de vainilla

Para una aplicación de pestaña que no usa React, use el código siguiente como ejemplo básico para obtener el token de SSO:

function getSSOToken() {
  return new Promise((resolve, reject) => {
    microsoftTeams.authentication.getAuthToken()
      .then((token) => resolve(token))
      .catch((error) => reject("Error getting token: " + error));
  });
}

function getBasicUserInfo() {
  getSSOToken().then((ssoToken) => {
    const tokenObj = JSON.parse(window.atob(ssoToken.split(".")[1]));
    console.log(`username: ${tokenObj.name}`);
    console.log(`user email: ${tokenObj.preferred_username}`);
  });
}

React

Para React proyectos, asegúrese de que se establecen las siguientes variables de entorno en el proceso de implementación:

Para actualizar el código fuente, siga estos pasos:

  1. Mueva los auth-start.html archivos y auth-end.html de la auth/public carpeta a la public/ carpeta . Estos archivos HTML tienen el propósito de controlar los redireccionamientos de autenticación.

  2. Mueva la sso carpeta en auth/ a src/sso/.

    1. InitTeamsFx: este archivo ejecuta una función que inicializa el SDK de TeamsFx. Después de la inicialización del SDK, abre el GetUserProfile componente.
    2. GetUserProfile: este archivo ejecuta una función para recuperar la información del usuario invocando la Graph API de Microsoft.
  3. Importe y agregue InitTeamsFxWelcome.*.

Para obtener más información, consulte Aplicación de pestaña habilitada para SSO.


Depuración de la aplicación

Para depurar la aplicación, seleccione la tecla F5 . Teams Toolkit usa el manifiesto de Microsoft Entra para registrar una aplicación habilitada para SSO. Para obtener más información, vea Depurar la aplicación de Teams localmente.

Personalización de aplicaciones Microsoft Entra

El manifiesto de aplicación de Teams le permite personalizar diferentes aspectos del registro de la aplicación. Puede actualizar el manifiesto según sea necesario.

Para incluir permisos de API adicionales para acceder a las API deseadas, consulte Editar Microsoft Entra manifiesto.

Para ver la aplicación de Microsoft Entra en Azure Portal, consulta Editar Microsoft Entra manifiesto.

Paso siguiente