Página 134 de 142
27.5. Autenticación y autorización en API con API Gateway y Lambda: uso de tokens JWT para autenticación y autorización
Escuchar en audio
La autenticación y la autorización son partes fundamentales de cualquier aplicación. Se aseguran de que el usuario sea quien dice ser (autenticación) y de que tenga permiso para hacer lo que intenta hacer (autorización). En el contexto de las API REST, esto es especialmente importante ya que estas API a menudo están expuestas en Internet y, por lo tanto, son objetivos potenciales de abuso.
Una forma común de implementar autenticación y autorización en las API REST es utilizar tokens JWT (tokens web JSON). JWT es un estándar abierto que define una forma compacta e independiente de transmitir información entre partes como un objeto JSON. Esta información se puede verificar y confiar porque está firmada digitalmente. Los JWT se pueden firmar usando un secreto (con el algoritmo HMAC) o un par de claves pública/privada usando RSA o ECDSA.
En un escenario típico, el usuario se autentica proporcionando credenciales, como un nombre de usuario y una contraseña. Si las credenciales son correctas, el servidor genera un token JWT y lo envía de vuelta al cliente. Luego, el cliente incluye este token en cada solicitud posterior al servidor. El servidor verifica el token y, si es válido, procesa la solicitud. Si el token no es válido (por ejemplo, está caducado), el servidor rechaza la solicitud.
Autenticación y Autorización con API Gateway y Lambda
AWS API Gateway y AWS Lambda son dos servicios potentes que se pueden utilizar para crear y alojar API REST. También admiten autenticación y autorización mediante tokens JWT.
API Gateway se puede configurar para requerir un token JWT para ciertas rutas. Esto se hace mediante una función llamada 'Autorizadores de tokens JWT'. Un autorizador de token JWT es una función Lambda que recibe un token JWT, verifica su validez y devuelve una política de acceso que especifica qué acciones el titular del token está autorizado a realizar.
Aquí tienes un ejemplo de cómo podría funcionar esto:
- El cliente se autentica proporcionando sus credenciales.
- El servidor comprueba las credenciales y, si son correctas, genera un token JWT y lo envía de vuelta al cliente.
- El cliente incluye el token JWT en cada solicitud posterior al servidor.
- API Gateway recibe la solicitud y extrae el token JWT.
- API Gateway llama a la función Lambda del JWT Token Authorizer y pasa el token JWT como argumento.
- La función Lambda verifica la validez del token JWT. Si el token es válido, la función Lambda devuelve una política de acceso que especifica qué acciones el titular del token está autorizado a realizar.
- API Gateway comprueba la política de acceso devuelta por la función Lambda. Si la política permite la acción solicitada, API Gateway procesa la solicitud. Si la política no permite la acción solicitada, API Gateway rechaza la solicitud.
Este proceso garantiza que solo los usuarios autenticados con los permisos adecuados puedan acceder a sus API REST.
Conclusión
La autenticación y la autorización son partes fundamentales de cualquier aplicación y el uso de tokens JWT es una forma eficaz de implementar estas funcionalidades en las API REST. AWS API Gateway y AWS Lambda brindan un sólido soporte para la autenticación y autorización mediante tokens JWT, lo que los convierte en una excelente opción para desarrollar API REST seguras.
Ahora responde el ejercicio sobre el contenido:
¿Cuál es el papel del JWT Token Authorizer en la autenticación y autorización con API Gateway y Lambda?
¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.
¡Tú error! Inténtalo de nuevo.
Siguiente página del libro electrónico gratuito: