> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Solucionar problemas con aplicaciones de terceros

> Resuelva los errores comunes al trabajar con aplicaciones de terceros en Auth0.

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](/es/docs/get-started/applications/third-party-applications/security-controls).

<div id="identify-third-party-application-issues">
  ## Identificar problemas con aplicaciones de terceros
</div>

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](https://manage.auth0.com/#/logs), filtre por la aplicación para revisar los eventos de error.

<div id="common-errors">
  ## Errores comunes
</div>

<div id="unauthorized_client-when-requesting-tokens">
  ### `unauthorized_client` al solicitar tokens
</div>

**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](/es/docs/get-started/applications/application-access-to-apis-client-grants).

```bash theme={null}
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"
  }'
```

<div id="unauthorized_client-even-with-allow-all-api-policy">
  ### `unauthorized_client` incluso con la política **Allow All** de la API
</div>

**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](/es/docs/get-started/applications/application-access-to-apis-client-grants#default-permissions-for-third-party-applications) o cree permisos por aplicación.

<div id="invalid_request-on-authorize-with-unsupported-parameters">
  ### `invalid_request` en `/authorize` con parámetros no admitidos
</div>

**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](/es/docs/get-started/applications/third-party-applications/security-controls#authorize-parameter-validation).

<div id="unsupported_response_type-for-id_token-or-token">
  ### `unsupported_response_type` para `id_token` o `token`
</div>

**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](/es/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce).

<div id="no-id-token-returned-from-oauthtoken">
  ### No se devuelve ningún token de ID desde `/oauth/token`
</div>

**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.

<div id="grant-type-not-supported">
  ### Tipo de concesión no admitido
</div>

**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](/es/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce). Para el acceso de máquina a máquina, use el [Client Credentials Flow](/es/docs/get-started/authentication-and-authorization-flow/client-credentials-flow) con un cliente confidencial (`token_endpoint_auth_method` no debe ser `none`).

<div id="classic-login-not-working">
  ### Classic Login no funciona
</div>

**Causa**: [Classic Login](/es/docs/authenticate/login/auth0-universal-login/universal-login-vs-classic-login/classic-experience) no es compatible con aplicaciones de terceros.

**Solución**: Use [Universal Login](/es/docs/authenticate/login/auth0-universal-login). Universal Login es la experiencia de inicio de sesión recomendada para todas las aplicaciones.

<div id="client-id-starts-with-tpc_">
  ### El ID de cliente comienza con `tpc_`
</div>

**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.

<div id="cannot-change-is_first_party-or-security-mode">
  ### No se puede cambiar `is_first_party` ni el modo de seguridad
</div>

**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.

<div id="email-verification-or-password-reset-shows-an-error-page">
  ### La verificación del correo electrónico o el restablecimiento de la contraseña muestran una página de error
</div>

**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:

```liquid wrap lines theme={null}
{% 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](/es/docs/get-started/applications/third-party-applications/security-controls#redirect-protection).

<div id="dcr-client-cannot-access-any-api">
  ### El cliente DCR no puede acceder a ninguna API
</div>

**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](/es/docs/get-started/applications/third-party-applications/configure-third-party-applications#default-permissions-for-all-third-party-applications).

<div id="userinfo-returns-error">
  ### `/userinfo` devuelve un error
</div>

**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.

<div id="oauthrevoke-works-but-logout-endpoints-do-not">
  ### `/oauth/revoke` funciona, pero los endpoints de cierre de sesión no
</div>

**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.

<div id="connection-not-available-for-a-third-party-application">
  ### Conexión no disponible para una aplicación de terceros
</div>

**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](/es/docs/authenticate/identity-providers/promote-connections-to-domain-level).

<div id="refresh-token-rotation-causing-issues">
  ### La rotación de los tokens de actualización genera problemas
</div>

**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.

<div id="learn-more">
  ## Más información
</div>

* [Aplicaciones de terceros](/es/docs/get-started/applications/third-party-applications)
* [Controles de seguridad para aplicaciones de terceros](/es/docs/get-started/applications/third-party-applications/security-controls)
* [Configurar aplicaciones de terceros](/es/docs/get-started/applications/third-party-applications/configure-third-party-applications)
* [Acceso de las aplicaciones a las API: Client Grants](/es/docs/get-started/applications/application-access-to-apis-client-grants)
