Saltar al contenido principal
Use esta página para resolver los errores comunes al integrar aplicaciones de terceros. Para obtener una descripción general de las capacidades y restricciones de las aplicaciones de terceros, consulte Controles de seguridad para aplicaciones de terceros.

Identificar problemas con aplicaciones de terceros

Si encuentra un error durante un flujo de OAuth, compruebe si se trata de una aplicación de terceros:
  • Prefijo de ID de cliente: Las aplicaciones de terceros tienen un client_id que comienza por tpc_.
  • Registros del inquilino: En Auth0 Dashboard > Monitoring > Logs, filtre por la aplicación para revisar los eventos de error.

Errores comunes

unauthorized_client al solicitar tokens

Causa: La aplicación de terceros no tiene un client grant para la API solicitada. Las aplicaciones de terceros siempre requieren un client grant explícito, incluso cuando la política de acceso de la API está configurada como Allow All. Solución: Cree un client grant para la aplicación o configure permisos predeterminados para aplicaciones de terceros. Para obtener más información, consulte Acceso de las aplicaciones a las API: Client Grants.
curl --request POST \
  --url 'https://YOUR_DOMAIN/api/v2/client-grants' \
  --header 'Authorization: Bearer YOUR_MANAGEMENT_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "default_for": "third_party_clients",
    "audience": "https://api.example.com",
    "scope": ["read:items", "write:items"],
    "subject_type": "user"
  }'

unauthorized_client incluso con la política Allow All de la API

Causa: La configuración de la política de acceso de la API Allow All se aplica solo a las aplicaciones propias. Las aplicaciones de terceros siempre requieren un client grant explícito, independientemente de esta configuración. Solución: Configure permisos predeterminados para aplicaciones de terceros o cree permisos por aplicación.

invalid_request en /authorize con parámetros no admitidos

Causa: Las aplicaciones de terceros aplican una validación estricta de los parámetros en el endpoint /authorize. Parámetros como screen_hint, login_ticket, invitation, request (JAR) y request_uri (PAR) no se admiten. Solución: Elimine los parámetros no admitidos de su solicitud de autorización. Para consultar la lista de parámetros permitidos, lea Controles de seguridad para aplicaciones de terceros.

unsupported_response_type para id_token o token

Causa: El flujo implícito (response_type=token o response_type=id_token) no está disponible para aplicaciones de terceros. Solución: Usa response_type=code con PKCE.

No se devuelve ningún token de ID desde /oauth/token

Causa: Las aplicaciones de terceros con controles de seguridad mejorados no devuelven tokens de ID ni procesan alcances de OIDC (openid, profile, email) en esta versión. El endpoint de token devolverá un token de acceso, pero no id_token. Solución: Use tokens de acceso con alcances de API para recuperar la información que necesita su aplicación. La compatibilidad con OIDC para aplicaciones de terceros está prevista para una versión futura.

Tipo de concesión no admitido

Causa: Solo se admiten los tipos de concesión authorization_code, refresh_token y client_credentials. Los tipos de concesión como implicit, password y urn:ietf:params:oauth:grant-type:device_code no están disponibles. Solución: Para los flujos de usuario, use el Authorization Code Flow with PKCE. Para el acceso de máquina a máquina, use el Client Credentials Flow con un cliente confidencial (token_endpoint_auth_method no debe ser none).

Classic Login no funciona

Causa: Classic Login no es compatible con aplicaciones de terceros. Solución: Use Universal Login. Universal Login es la experiencia de inicio de sesión recomendada para todas las aplicaciones.

El ID de cliente comienza con tpc_

Causa: Las aplicaciones de terceros reciben automáticamente el prefijo tpc_ en su ID de cliente para clasificar el tráfico. Se asigna al crearse y no se puede cambiar. Solución: Este comportamiento es el esperado. Actualice cualquier validación del lado del cliente o restricción de la base de datos para admitir el formato de ID de cliente más largo.

No se puede cambiar is_first_party ni el modo de seguridad

Causa: El modo de seguridad y la titularidad de la aplicación son decisiones de diseño permanentes que se establecen al momento de crearla. No se pueden cambiar después. Solución: Cree una aplicación nueva con la configuración deseada. No puede convertir una aplicación existente de propia a de terceros, ni cambiarla entre modos de seguridad.

La verificación del correo electrónico o el restablecimiento de la contraseña muestran una página de error

Causa: La redirection_policy de la aplicación está configurada como open_redirect_protection, lo que impide que Auth0 exponga application.callback_domain en las plantillas de correo electrónico. Solución: Actualice las plantillas de correo electrónico con una condición de Liquid que proporcione una alternativa para aplicaciones de terceros:
{% if application.callback_domain == '' %}
  https://YOUR_FALLBACK_DOMAIN
{% endif %}
{% if application.callback_domain != '' %}
  {{ application.callback_domain }}/result-page
{% endif %}
Como alternativa, configure redirection_policy como allow_always para aplicaciones de terceros de confianza creadas mediante el Dashboard o la Management API. Para obtener más información, consulte Controles de seguridad para aplicaciones de terceros.

El cliente DCR no puede acceder a ninguna API

Causa: Los clientes registrados dinámicamente requieren que se configuren permisos predeterminados antes de poder solicitar tokens. Sin permisos predeterminados, los clientes DCR de terceros no tienen acceso a ninguna API. Solución: Configure permisos predeterminados para las aplicaciones de terceros en cada API a la que deban acceder los clientes DCR. Para obtener más información, consulte Configurar aplicaciones de terceros.

/userinfo devuelve un error

Causa: El endpoint /userinfo no está disponible para aplicaciones de terceros en esta versión. Solución: Use tokens de acceso con scope de API para obtener la información que necesita su aplicación. La compatibilidad con OIDC, incluido /userinfo, está prevista para una versión futura.

/oauth/revoke funciona, pero los endpoints de cierre de sesión no

Causa: Los endpoints de cierre de sesión (/v2/logout) no están disponibles para aplicaciones de terceros. Solución: Use POST /oauth/revoke para revocar tokens de actualización. La aplicación es responsable de eliminar el estado de su propia sesión.

Conexión no disponible para una aplicación de terceros

Causa: La conexión no se ha promovido a nivel de dominio. Las aplicaciones de terceros solo pueden autenticar usuarios mediante conexiones a nivel de dominio. Solución: Promueva la conexión a nivel de dominio. Para obtener más información, consulte Promote Connections to Domain Level.

La rotación de los tokens de actualización genera problemas

Causa: La rotación de tokens de actualización está habilitada de forma predeterminada para las aplicaciones públicas (SPA, Native) de terceros, en línea con los requisitos de OAuth 2.1. Solución: Asegúrese de que su aplicación gestione correctamente la rotación de tokens de actualización: en cada intercambio de token, se devuelve un nuevo token de actualización y el anterior se invalida. Los administradores pueden ajustar la configuración de rotación de las aplicaciones creadas manualmente mediante el Dashboard o la Management API.

Más información