Controlando el acceso a APIs HTTP con autorizadores JWT en AWS (1 de 2).

Alex
5 min readFeb 26, 2024

En palabras simples, como a mi me hubiese gustado que me explicarán.

JSON Web Token

Podemos usar JSON Web Tokens como parte de los frameworks OpenID Connect (OIDC) y OAuth 2.0 para restringir el acceso de clientes a nuestras APIs.

OAuth fue diseñado originalmente para que las aplicaciones obtengan acceso a las APIs, lo que significa que requieren la capacidad de acceder a la API y en realidad la aplicación no necesita saber quién es el usuario que esta utilizando la aplicación.

Suena medio extraño hacer esa distición, pero tenganme paciencia por un segundo, quiero darles esta analogía de un sistema tipo OAuth en el mundo real y esa puede ser el como se lleva a cabo el registro en un hotel.

Imagen descargada de Freepik.

Entonces, cuando llegas a un hotel, le muestras a la persona en recepción tu identificación y tu tarjeta de crédito, te registra y al final te devuelven una tarjeta del hotel. Esta tarjeta de acceso es la que utilizamos para acceder a las habitación del hotel.

Llevamos esta a la puerta de la habitación, la deslizamos sobre la puerta y la puerta se abre y te deja entrar. Ahora, para que ese sistema funcione, la puerta en realidad no necesita saber quién eres. Las personas de recepción saben quién eres. Ellos son los que revisan tu identificación, pero te devuelven esta tarjeta llave que representa el acceso a esa habitación. También podemos usar esa tarjeta de acceso para entrar al gimnasio del hotel, a la piscina y a otros recursos del hotel.

Entregan estas tarjetas de acceso que representan tokens de acceso.
Usando la tarjeta además del acceso a la habitación podemos habilitar el uso del elevador.

Y esto es exactamente análogo a OAuth, donde la persona en recepción es el servidor de autorización (authorization server), Amazon Cognito provee un OAuth 2.0 authorization server, pero eso lo veremos más adelante.

Este servidor de autorización es el encargado de revisar las tarjetas de identificación y autenticar al usuario.

--

--

Alex

DevOps Lead @evinova, former Dynatrace Solutions Engineer. Cheerleader in Chief for KMMX, Technical Writer & International Speaker, Dad & 2 cats.