Resumen
Conceptos clave
- Conozca el tipo de concesión de OAuth 2.0, Authorization Code Flow with Proof Key for Code Exchange (PKCE).
- Use este tipo de concesión en aplicaciones que no pueden almacenar un Secreto del cliente, como las aplicaciones nativas o de una sola página.
- Revise distintos métodos de implementación con los SDK de Auth0.
- No pueden almacenar de forma segura un . Al descompilar la aplicación, se revelará el , que está asociado a la aplicación y es el mismo para todos los usuarios y dispositivos.
- Son vulnerables a ataques de interceptación e inyección del código de autorización. Sin un secreto del cliente, un atacante que intercepte el código de autorización puede canjearlo por tokens.
- Pueden usar un esquema de URL personalizado para capturar redirecciones (por ejemplo, MyApp://), lo que podría permitir que aplicaciones maliciosas reciban un de su . Debido a este riesgo, Auth0 desaconseja firmemente el uso de esquemas URI personalizados. Para obtener más información, consulte Medidas contra la suplantación de identidad de aplicaciones.
- No pueden almacenar de forma segura un Secreto del cliente porque todo su código fuente está disponible en el navegador.
Cómo funciona

- El usuario hace clic en Iniciar sesión dentro de la aplicación.
- El SDK de Auth0 crea un
code_verifieraleatorio desde el punto de vista criptográfico y, a partir de él, genera uncode_challenge. - El SDK de Auth0 redirige al usuario al Servidor de autorización de Auth0 (endpoint
/authorize) junto con elcode_challenge. - Tu Servidor de autorización de Auth0 redirige al usuario a la pantalla de inicio de sesión y autorización.
- El usuario se autentica mediante una de las opciones de inicio de sesión configuradas y puede ver una página de consentimiento con la lista de permisos que Auth0 otorgará a la aplicación.
- Tu Servidor de autorización de Auth0 almacena el
code_challengey redirige al usuario de vuelta a la aplicación con uncodede autorización, válido para un solo uso. - El SDK de Auth0 envía este
codey elcode_verifier(creado en el paso 2) al Servidor de autorización de Auth0(endpoint /oauth/token). - Tu Servidor de autorización de Auth0 verifica el
code_challengey elcode_verifier. - Tu Servidor de autorización de Auth0 responde con un token de ID y un token de acceso (y, opcionalmente, un token de actualización).
- Tu aplicación puede usar el token de acceso para llamar a una API y acceder a información sobre el usuario.
- La API responde con los datos solicitados.
Si tienes habilitada la rotación de Token de actualización, se genera un nuevo Token de actualización con cada solicitud y se emite junto con el Token de acceso. Cuando se intercambia un Token de actualización, el Token de actualización anterior se invalida, pero el servidor de autorización conserva información sobre esa relación.
Cómo implementarlo
Los avances recientes en los controles de privacidad del usuario en los navegadores afectan negativamente a la experiencia de usuario al impedir el acceso a cookies de terceros; por lo tanto, los flujos basados en navegador deben usar la rotación de Token de actualización, que proporciona un método seguro para usar tokens de actualización en las SPA y, al mismo tiempo, ofrece a los usuarios finales acceso ininterrumpido a los recursos sin las interrupciones en la experiencia de usuario causadas por tecnologías de privacidad del navegador como ITP.