OAuth2 es la solución estándar de la industria para implementar autorización en aplicaciones modernas. Este protocolo permite gestionar de forma segura quién puede acceder a qué recursos, sin necesidad de compartir credenciales sensibles entre diferentes sistemas.
En este tutorial práctico, crearemos "auth-api", un servicio de autorización que implementará OAuth2 para proteger nuestra API de contactos existente. Este servicio se ejecutará en la misma instancia EC2 que nuestra API original, funcionando como un guardián que valida las solicitudes antes de permitir el acceso a los recursos.
Trabajaremos con dos implementaciones específicas:
Al finalizar este tutorial, tendrás un sistema completo de autorización para tu API que incluye validación de tokens, todo ejecutándose en contenedores Docker en AWS EC2.
Asumiendo que ya tienes funcionando la API de contactos del tutorial anterior, comencemos a entender e implementar OAuth2.
OAuth2 es un protocolo de autorización que permite a aplicaciones de terceros obtener acceso limitado a un servicio HTTP en nombre de un propietario de recursos o en nombre de la propia aplicación. Este protocolo reemplaza al original OAuth y se ha convertido en el estándar de la industria para la implementación de autorización en aplicaciones modernas.
La principal ventaja de OAuth2 es que permite el acceso a recursos protegidos sin compartir las credenciales originales (como nombre de usuario y contraseña). En su lugar, utiliza tokens que otorgan acceso temporal y limitado a los recursos.
En el protocolo OAuth2 existen cuatro roles principales:
OAuth2 define varios flujos de autorización adaptados a diferentes casos de uso: