Flujo de código de autorización de OAuth
- Última actualización2024/10/31
Flujo de código de autorización de OAuth
El flujo de código de autorización es un protocolo de seguridad utilizado en OAuth 2.0 para permitir que aplicaciones de terceros accedan a los recursos de un usuario sin exponer sus credenciales.
En este flujo, la aplicación cliente redirige al usuario al servidor de autorización, donde inicia sesión y aprueba la solicitud de acceso del cliente. Después de la aprobación, el servidor de autorización envía un código de autorización al cliente, que se intercambia por un token de acceso y, opcionalmente, un token de actualización. Este token de acceso se utiliza luego para realizar solicitudes autorizadas al servidor de recursos en nombre del usuario.
Este flujo se usa comúnmente en escenarios en los que un usuario desea otorgar acceso a sus recursos (como datos o servicios) a una aplicación de terceros sin compartir sus credenciales directamente.
La principal diferencia entre el flujo de código de autorización y el flujo de código de autorización con PKCE (clave de prueba para intercambio de código) radica en los mecanismos de seguridad utilizados para prevenir ciertos ataques, particularmente contra aplicaciones móviles y nativas.
En el flujo de código de autorización estándar, el cliente recibe un código de autorización después de que el usuario se autentica en el servidor de autorización. Luego, el cliente intercambia este código por un token de acceso. Sin embargo, este flujo es vulnerable a ataques de interceptación de códigos de autorización, donde un atacante puede interceptar el código de autorización y utilizarlo para obtener un token de acceso.
El flujo de código de autorización con PKCE agrega una capa adicional de seguridad mediante el uso de un secreto generado dinámicamente, el verificador de código, para autenticar la solicitud de autorización. Esto lo hace más seguro, especialmente en entornos donde es difícil almacenar de forma segura los secretos del cliente, como aplicaciones móviles o nativas.
Para crear un tipo de concesión utilizando el Flujo de código de autorización, realice lo siguiente: