OAuth 2.0 con AWS, Kong y OAuth2 Proxy

OAuth 2.0 con AWS, Kong y OAuth2 Proxy

A medida que las APIs se vuelven indispensables para nuestras aplicaciones, facilitar un acceso seguro a estos endpoints se vuelve más crítico que nunca. Uno de los protocolos más famosos para el acceso seguro es OAuth 2.0. Con OAuth 2.0 las aplicaciones pueden delegar de forma segura acceso a recursos sin exponer credenciales. Esto lo convierte en el estándar para autenticación y autorización en una gran variedad de plataformas, de aplicaciones móviles a aplicaciones web y otros como IoT.

A la hora de implementar OAuth 2.0, los API Gateways pueden ser utilizados como plataforma para este protocolo ya que al estar como punto de entrada de los requests se pueden llevar la tarea de autenticarlas y autorizarlas antes de que lleguen al backend. En este post veremos algunos ejemplos sobre cómo funciona OAuth 2.0 en tres API Gateways populares: AWS API Gateway, Kong y OAuth2 Proxy.

Descripción del escenario típico

Para nuestro ejemplo primero definimos cuatro actores:

  1. Usuario: es quien inicia el proceso para dar acceso a un tercero a una de sus cuentas, por ejemplo, para iniciar sesión en Spotify con su cuenta de Gmail.
  2. Spotify: es el servicio que desea obtener acceso a la cuenta del usuario, para nuestro ejemplo solo quiere obtener el nombre de usuario.
  3. Gmail Auth: el servicio que valida el usuario y emite los tokens. Este será el componente que implementaremos.
  4. Gmail: es el servicio de email el cual puede retornar el nombre de usuario.

La idea de este post es mostrar un flujo "Authorization Code" que lo podemos ver en el siguiente gráfico:

Read more