- Seguridad a nivel de protocolo: Cumplir con las prácticas recomendadas de OAuth 2.1 para garantizar flujos de autorización modernos y seguros.
- Alcance de las funcionalidades: Garantizar que las aplicaciones externas solo puedan acceder a los recursos que autorices explícitamente.
Estándares de OAuth 2.1
- PKCE obligatorio: Todos los flujos de código de autorización requieren Proof Key for Code Exchange. Esto evita ataques de interceptación del código de autorización.
- Tipos de concesión compatibles:
authorization_code,refresh_tokenyclient_credentials. - Tipos de concesión implícito y de contraseña no compatibles: Estos tipos de concesión heredados, que exponen tokens en la URL del navegador o requieren gestionar credenciales directamente, no están disponibles para aplicaciones de terceros.
Las aplicaciones de terceros deben tener un concesión de cliente explícito, incluso cuando una API está configurada con una política de Permitir todo. Puede configurar permisos por aplicación o permisos predeterminados para aplicaciones de terceros.
No se puede conceder acceso a las aplicaciones de terceros a APIs del sistema, como Management API o My Account API.
De máquina a máquina (credenciales de cliente)
client_credentials para el acceso de máquina a máquina. Esto permite integraciones de backend con socios y acceso a API de servidor a servidor sin participación del usuario.
Requisitos y restricciones:
- Tipo de cliente: la aplicación debe ser un cliente confidencial (
token_endpoint_auth_methodno debe sernone). - Organizaciones: se admite el acceso de máquina a máquina con Organizaciones. Se requiere una concesión de cliente de organización explícita para cada organización. La opción
allow_any_organizationno está permitida para aplicaciones de terceros. Las concesiones de cliente predeterminadas para aplicaciones de terceros no se pueden usar para configurarorganization_usage. - No está disponible para aplicaciones creadas mediante Registro dinámico de clientes o CIMD.
- Las Actions con el trigger
credentials-exchangese ejecutan con normalidad en los flujos de acceso de máquina a máquina.
Configuración restringida del cliente
Para consultar la lista completa de propiedades admitidas, consulte el endpoint Create a Client en la referencia de la Management API.
Formato del ID de cliente
client_id con el prefijo tpc_ asignado en el momento de su creación. Este prefijo permite a Auth0 clasificar y gestionar por separado el tráfico de aplicaciones de terceros, incluidos los límites de tasa para estas aplicaciones.
El modo de seguridad y la titularidad de la aplicación son decisiones de diseño permanentes:
third_party_security_modeno se puede cambiar después de la creación.- Las aplicaciones de terceros no se pueden convertir en aplicaciones propias, ni viceversa.
Configuración del token de actualización
- Expiración obligatoria: No se admiten los tokens de actualización sin vencimiento. No se admite una duración de inactividad infinita.
- Rotación habilitada de forma predeterminada para clientes públicos: Las SPA y las aplicaciones nativas de terceros tienen habilitada de forma predeterminada la rotación de tokens de actualización, en consonancia con los requisitos de OAuth 2.1 y MCP.
- Configurable: Los administradores pueden ajustar la rotación, el margen de tolerancia y la duración para las aplicaciones de terceros creadas manualmente.
Protección contra redirecciones
redirection_policy controla cómo Auth0 gestiona las redirecciones para aplicaciones de terceros. Acepta dos valores:
Las redirecciones sin interacción del usuario pueden ser un vector de ataque de phishing cuando la URI de redirección está controlada por un tercero no confiable (redirección abierta). Establezca
redirection_policy en allow_always solo para aplicaciones cuyas URI de callback configuradas sean confiables.
Cuando open_redirect_protection está activa:
- Los errores de autenticación muestran una página de error en lugar de redirigir a la aplicación.
- Las plantillas de correo electrónico (verificación de correo electrónico, restablecimiento de contraseña, usuario bloqueado) no tendrán acceso a
{{ application.callback_domain }}, por lo que debe configurarse un valor de respaldo junto con cualquier uso de{{ application.callback_domain }}. Por ejemplo:
/authorize para aplicaciones de terceros. Solo se aceptan parámetros estándar de OAuth 2.0 y OpenID Connect.
Parámetros permitidos:
acr_valuesaudienceauthorization_detailsclient_idcode_challengecode_challenge_methodconnectioncorrelation_iddisplaydpop_jktext-*(parámetros personalizados)login_hintmax_agenoncepromptredirect_uriresourceresponse_typescopestateui_locales
claimsid_token_hintinvitationlogin_ticketrequest(JAR)request_uri(PAR)screen_hint
invalid_request.