La primera parte del contenido introduce OAuth, su propósito, los roles, los tipos de concesión, los tokens portadores y JWT, y un poco del proyecto OAuth 2.1. A continuación, demostraré cómo funcionan los flujos de autorización (tipos de concesión).
Las credenciales de cliente se utilizan cuando los clientes (aplicaciones) solicitan un token para acceder a sus propios recursos en su nombre, no en nombre del usuario. Estos clientes suelen ser aplicaciones máquina a máquina (M2M), como CLIs, daemons o servicios que se ejecutan en el backend. Por lo tanto, este flujo sólo debe utilizarse para clientes de confianza. Así es como funciona.
Este flujo se utiliza para obtener un token de acceso a través de un código de autorización. Aquí hablamos tanto de aplicaciones de confianza como de aplicaciones públicas, ya sean web, móviles o nativas.
A diferencia de las Credenciales de Cliente, en este caso el propietario del recurso es un usuario final, por lo que la aplicación necesita abrir el navegador para iniciar el flujo. Como se trata de aplicaciones públicas, se requieren algunas medidas de seguridad adicionales. Por eso tenemos la Clave de Prueba para el Intercambio de Códigos o PKCE(RFC 7636). Se trata de una extensión del flujo del Código de Autorización que evita los ataques de inyección y CSRF creando una "combinación" con cada solicitud de autorización, y junto con esta combinación y el código de autorización, solicita un token de acceso. Véase la imagen siguiente.
El protocolo recomienda el uso de Credenciales de Cliente para aplicaciones M2M y Código de Autorización + PKCE para otros tipos de aplicaciones. Como expliqué en la parte I, mi intención con estos dos artículos era proporcionar una rápida visión general de OAuth. Espero haberlo conseguido. Gracias de nuevo a todos los que han nacido conmigo hasta aquí. Hasta la vista.