Share via


Solución de problemas de autenticación SSO en Teams

Esta es una lista de problemas y preguntas sobre SSO y cómo puede corregirlos.

Compatibilidad con Microsoft Graph


1. ¿Graph API funciona en Postman?
Puede usar la colección Microsoft Graph Postman con la API de Microsoft Graph.

Para más información, consulte Usar Postman con la API de Microsoft Graph.


2. ¿Funciona Graph API en el Explorador de Microsoft Graph?
Sí, la API de Graph funciona en el probador de Graph.

Para más información, vea Probador de Graph.


Mensajes de error y cómo abordarlos


1. Error: falta el consentimiento.
Cuando Microsoft Entra identificador recibe una solicitud para acceder a un recurso de Microsoft Graph, comprueba si el usuario de la aplicación o el administrador de inquilinos ha dado su consentimiento para este recurso. Si no hay ningún registro de consentimiento del usuario o administrador, Microsoft Entra id. envía un mensaje de error al servicio web.

El código debe indicar al cliente (por ejemplo, en el cuerpo de una respuesta 403 Prohibido) cómo controlar el error:

  • Si la aplicación de pestañas necesita ámbitos de Microsoft Graph para los que solo un administrador puede dar su consentimiento, el código debería generar un error.
  • Si los únicos ámbitos necesarios pueden ser otorgados por el usuario, entonces el código debe recurrir a un sistema alternativo de autenticación de usuario.

2. Error: Falta ámbito (permiso).
Este error solo se ve durante el desarrollo.

Para controlar este error, el código del lado servidor debe enviar una respuesta 403 Prohibido al cliente. Debe registrar el error en la consola o en un registro.


3. Error: Audiencia no válida en el token de acceso para Microsoft Graph.
El código del lado servidor debe enviar una respuesta 403 Prohibido al cliente para mostrar un mensaje al usuario. Se recomienda que también registre el error en la consola o lo registre en un registro.

4. Error: El nombre de host no debe basarse en un dominio que ya pertenece.
Puede obtener este error en uno de los dos escenarios:
  1. El dominio personalizado no se agrega a Microsoft Entra identificador. Para agregar un dominio personalizado a Microsoft Entra id. y registrarlo, siga el procedimiento Agregar un nombre de dominio personalizado a Microsoft Entra id. A continuación, siga los pasos para configurar el ámbito para el token de acceso de nuevo.
  2. No ha iniciado sesión con las credenciales de administrador en el inquilino de Microsoft 365. Inicie sesión en Microsoft 365 como administrador.

5. Error: El nombre principal de usuario (UPN) no se recibe en el token de acceso devuelto.
Puede agregar UPN como una notificación opcional en Microsoft Entra id.

Para más información, consulte Proporcionar notificaciones opcionales a la aplicación y tokens de acceso.


6. Error: Error del SDK de Teams: resourceDisabled.
Para evitar este error, asegúrese de que el URI del identificador de aplicación esté configurado correctamente en Microsoft Entra registro de la aplicación y en el cliente de Teams.

Para más información sobre el URI del identificador de aplicación, consulte Exponer una API.


7. Error: Error genérico al ejecutar la aplicación de pestaña.
Puede aparecer un error genérico cuando una o varias configuraciones de aplicación realizadas en Microsoft Entra id. son incorrectas. Para resolver este error, compruebe si los detalles de la aplicación configurados en el código y el manifiesto de la aplicación (anteriormente denominado manifiesto de aplicación de Teams) coincide con los valores de Microsoft Entra id.

En la imagen siguiente se muestra un ejemplo de los detalles de la aplicación configurados en Microsoft Entra identificador.

Valores de configuración de la aplicación en Microsoft Entra id.

Compruebe que los siguientes valores coinciden entre el identificador de Microsoft Entra, el código del lado cliente y el manifiesto de aplicación:

  • Id. de aplicación: el identificador de aplicación que generó en Microsoft Entra id. debe ser el mismo en el código y en el archivo de manifiesto de la aplicación. Compruebe si el identificador de la aplicación en el esquema de manifiesto de la aplicación coincide con el identificador de aplicación (cliente) en Microsoft Entra id.

  • Secreto de aplicación: el secreto de aplicación configurado en el back-end de la aplicación debe coincidir con las credenciales de cliente en Microsoft Entra identificador. También debe comprobar si el secreto de cliente ha expirado.

  • URI del identificador de aplicación: el URI del identificador de aplicación en el código y en el archivo de manifiesto de la aplicación debe coincidir con el URI del identificador de aplicación en Microsoft Entra identificador.

  • Aplicación de permisos: compruebe si los permisos definidos en el ámbito cumplen los requisitos de la aplicación. Si es así, compruebe si se le ha concedido al usuario en el token de acceso.

  • Consentimiento del administrador: si algún ámbito requiere consentimiento del administrador, compruebe si el consentimiento se concedió para el ámbito concreto para el usuario.

Además, inspeccione el token de acceso que se envió a la aplicación de pestañas para comprobar si los valores siguientes son correctos:

  • Audiencia (aud): compruebe si el identificador de la aplicación en el token es correcto tal y como se indica en Microsoft Entra id.
  • Id. de inquilino (tid): compruebe si el inquilino mencionado en el token es correcto.
  • Identidad de usuario (preferred_username): compruebe si la identidad del usuario coincide con el nombre de usuario en la solicitud de token de acceso para el ámbito al que el usuario actual quiere acceder.
  • Ámbitos (scp): compruebe si el ámbito para el que se solicita el token de acceso es correcto y como se define en Microsoft Entra identificador.
  • Microsoft Entra versión 1.0 o 2.0 (ver):Compruebe si Microsoft Entra versión es correcta.

Puede usar JWT para inspeccionar el token.

Error del token de SSO del bot


Error de intercambio de tokens.
Si se produce un error de intercambio de tokens, use el código siguiente:
{​​ 
    "status": "<response code>", 
    "body": 
    {​​ 
        "id":"<unique Id>", 
        "connectionName": "<connection Name on the bot (from the OAuth card)>", 
        "failureDetail": "<failure reason if status code is not 200, null otherwise>" 
    }​​ 
}​​

Para comprender el comportamiento del bot cuando el intercambio de tokens no desencadena una solicitud de consentimiento, consulte los pasos siguientes:

Nota:

No es necesario realizar ninguna acción de usuario, ya que el bot realiza las acciones cuando se produce un error en el intercambio de tokens.

  1. El cliente inicia una conversación con el bot desencadenando un escenario de OAuth.

  2. El bot devuelve una tarjeta OAuth al cliente.

  3. El cliente intercepta la tarjeta de OAuth antes de mostrarla al usuario de la aplicación. Comprueba si contiene una TokenExchangeResource propiedad.

  4. Si la propiedad existe, el cliente envía un TokenExchangeInvokeRequest al bot. El cliente debe tener un token intercambiable para el usuario. Este token debe ser un token de Azure AD v2 cuya audiencia debe ser la misma TokenExchangeResource.Uri que la propiedad .

  5. El cliente envía una actividad de invocación al bot con el código siguiente:

    {
        "type": "Invoke",
        "name": "signin/tokenExchange",
        "value": 
        {
            "id": "<any unique Id>",
            "connectionName": "<connection Name on the skill bot (from the OAuth card)>",
            "token": "<exchangeable token>"
        }
    }
    
  6. El bot procesa TokenExchangeInvokeRequest y devuelve un elemento TokenExchangeInvokeResponse al cliente. El cliente debe esperar hasta que reciba TokenExchangeInvokeResponse.

    {
        "status": "<response code>",
        "body": 
        {
            "id":"<unique Id>",
            "connectionName": "<connection Name on the skill bot (from the OAuth card)>",
            "failureDetail": "<failure reason if status code is not 200, null otherwise>"
        }
    }
    
  7. Si TokenExchangeInvokeResponse tiene status de 200, el cliente no muestra la tarjeta de OAuth. Vea la imagen de flujo normal. Para cualquier otro status o si TokenExchangeInvokeResponse no se recibe, el cliente muestra la tarjeta OAuth al usuario. Consulte la imagen de flujo de reserva. Si hay errores o dependencias no satisfechas, como el consentimiento del usuario, esta actividad garantiza que el flujo de SSO vuelva al flujo normal de OAuthCard.

    Nota:

    En el cliente web de Teams, el mensaje de contraseña no aparece porque hay una sesión de Microsoft Entra activa en el explorador, que se usa para la autenticación y para adquirir un token. En el cliente de escritorio de Teams, aparece el mensaje de contraseña porque el cliente de escritorio no tiene ninguna sesión de Microsoft Entra que compartir y se le pide que inicie sesión.

Vea también

Procedimientos recomendados de seguridad para las propiedades de la aplicación en Microsoft Entra id.