0% encontró este documento útil (0 votos)
270 vistas3 páginas

Autenticación JWT para API REST segura

Este documento explora varios métodos de autenticación para API REST como autenticación básica, basada en token, basada en clave API y OAuth 2.0. Indica que la autenticación basada en tokens JWT es una opción sólida debido a su eficiencia, escalabilidad y seguridad, ya que los tokens contienen información para autenticar y autorizar solicitudes sin consultas adicionales.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
270 vistas3 páginas

Autenticación JWT para API REST segura

Este documento explora varios métodos de autenticación para API REST como autenticación básica, basada en token, basada en clave API y OAuth 2.0. Indica que la autenticación basada en tokens JWT es una opción sólida debido a su eficiencia, escalabilidad y seguridad, ya que los tokens contienen información para autenticar y autorizar solicitudes sin consultas adicionales.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd

1

Adrián Hernández Granda

Métodos de autentificación API REST jandry.hernandez@unl.edu.ec


privilegios de acceso a los recursos a un usuario en una
Resumen— En este ensayo se exploraron diversos métodos de aplicación.” [1]
seguridad y autenticación utilizados en las API REST, como la Como se muestra en la (Fig. 1), el proceso de autenticación
autenticación básica, basada en token, basada en clave API y implica enviar las credenciales al servidor en una solicitud de
OAuth 2.0. Entre ellos, la autenticación basada en tokens de inicio de sesión. El servidor verifica la autenticidad de las
acceso con JWT se considera una opción sólida debido a su credenciales comparándolas con los registros almacenados en
eficiencia, escalabilidad y seguridad. Los tokens JWT contienen su base de datos o sistema de autenticación. Si las
toda la información necesaria para autenticar y autorizar una
credenciales son válidas, el servidor devuelve una respuesta
solicitud, evitando consultas adicionales a la base de datos.
Además, permiten transmitir datos adicionales y utilizan firmas
de éxito y proporciona un mecanismo para que el cliente
digitales para garantizar la integridad y autenticidad de los pueda acceder a los recursos protegidos de la API.
tokens. Finalmente se dio respuesta a que la autenticación
basada en tokens JWT es una opción confiable y segura para
proteger las API REST en la era digital actual.
Palabras Clave— API REST, JWT, Oauth, Autenticación,
Seguridad

Abstract—- This essay explored various security and


authentication methods used in REST APIs, such as basic,
token-based, API key-based, and OAuth 2.0 authentication.
Among them, access token-based authentication with JWT is
considered a strong option due to its efficiency, scalability, and Fig. 1 Proceso de autenticación
security. JWT tokens contain all the information needed to Existen numerosos métodos de seguridad y formas de
authenticate and authorize a request, avoiding additional autenticación disponibles para adaptarse a diferentes
database queries. In addition, they allow additional data to be
necesidades y escenarios en el mundo de las API REST.
transmitted and use digital signatures to guarantee the integrity
and authenticity of the tokens. Finally, an answer was given that
JWT token-based authentication is a reliable and secure option Los métodos básicos de autenticación para una API REST
to protect REST APIs in today's digital age. son:
Keywords— REST API, JWT, Oauth, Authentication,
Security 1. Autenticación básica: Es el método más simple de
autenticación que se puede enviar con el encabezado
de "autorización" en cada aplicación. Sin embargo,
I. INTRODUCCIÓN este método no se considera seguro porque la
información de inicio de sesión se envía en texto

E n la era digital actual, las API REST (Application


Programming Interfaces) se han convertido en un
componente esencial para el intercambio de datos y servicios 2.
plano sin cifrado.

Autenticación basada en token: Este método implica


entre aplicaciones. La seguridad en las API REST es un la generación y el envío del token de acceso en lugar
aspecto importante que no se puede pasar por alto. Al permitir de los datos de contabilidad en cada aplicación. Los
el acceso a datos confidenciales o acciones importantes, es tokens de acceso suelen ser cadenas largas y
esencial implementar un método de autenticación y aleatorias y se utilizan para identificar y autorizar el
aprobación sólidos para proteger estas API de ataques usuario o la aplicación. El servidor puede generar
maliciosos ilegales y posibles. tokens después de la autenticación exitosa e incluirse
En este ensayo, exploraremos en profundidad los diferentes en el encabezado de "Authorization" de las
métodos de seguridad y autenticación basados en tokens que solicitudes.
se utilizan en las API REST. Analizaremos sus características,
ventajas y desventajas, y evaluaremos cuál de ellos puede Uno de los tipos de token más utilizados es el JWT
considerarse el método óptimo en función de los requisitos de (JSON Web Token), que es un estándar abierto que
seguridad, la escalabilidad y la facilidad de implementación. define una forma compacta y segura de transmitir
información entre dos partes como un objeto JSON.
II. DESARROLLO La (Fig. 2) muestra como está estructurado el JWT:
Para comenzar, se debe conocer a diferencia entre la
autentificación y la autorización. Entonces, se puede decir
que “la autentificación es el método o acción de verificar la
identidad de un usuario, en cambio, la autorización, son los


Adrián Hernández | Desarrollo Basado en Plataformas | Unidad 2
2

Fig. 3 Envio del Token SSH

3. Autenticación basada en clave API: En este método,


Fig. 2 Estructura de un JSON Web Token se asigna una clave única a cada usuario o aplicación
autorizada. La clave de API se envía en cada
Según [3] la descripción de la estructura de un JWT solicitud como parte de los parámetros de la URL o
es: en el encabezado. El servidor autentica y autoriza la
solicitud utilizando la clave de API correspondiente.
El Encabezado (Header) normalmente está
compuesto por dos elementos: el tipo de token, que 4. OAuth 2.0 (Autorización abierta): Este es un
generalmente es "JWT", y el algoritmo de firma protocolo de autorización utilizado para permitir que
utilizado, como HMAC (Hash-based Message las aplicaciones accedan a los recursos en nombre de
Authentication Code), RSA (Rivest-Shamir- los usuarios, sin revelar sus credenciales.
Adleman) o ECDSA (Elliptic Curve Digital Proporciona un flujo de autorización seguro y
Signature Algorithm). permite a los usuarios otorgar permisos a las
aplicaciones de terceros para acceder a sus recursos
Carga útil (Payload) la cual contiene la información sin compartir sus contraseñas.
que se quiere transmitir y almacenar en el token.
Puede incluir datos como el identificador del usuario, Para [4] la autenticación en OAuth 2.0, se utiliza un
roles, permisos u otra información relevante [3]. flujo específico llamado "Flujo de Concesión de
La carga útil no está encriptada y se puede leer Credenciales del Cliente" (Client Credentials Grant).
fácilmente, por lo que no debe incluir información
confidencial. Como muestra la (Fig. 4), este flujo permite que una
aplicación o servicio se autentique directamente con
Finalmente, la Firma (Signature) que se utiliza para el servidor de autorización en lugar de actuar en
garantizar la integridad de los datos y verificar que el nombre de un usuario final.
token no haya sido modificado por terceros no
autorizados. Esta firma se genera combinando el El flujo de autenticación descrita en [4] del Flujo de
encabezado codificado en Base64, la carga útil Concesión de Credenciales del Cliente involucra los
codificada en Base64 y una clave secreta conocida siguientes pasos:
solo por el emisor y el receptor del token [3]. El
algoritmo de firma especificado en el encabezado se 1. El cliente envía una solicitud de autenticación al
utiliza para calcular la firma. servidor de autorización, incluyendo su ID de cliente
y su secreto de cliente (credenciales confidenciales).
Los JWTs son comúnmente utilizados como tokens 2. El servidor de autorización valida las credenciales
de acceso en la autenticación basada en token para del cliente y autentica al cliente.
API REST. 3. Si la autenticación es exitosa, el servidor de
autorización emite un token de acceso al cliente.
Como refleja la (Fig. 3), también se incluye el SSH 4. El cliente puede utilizar este token de acceso para
(Secure Shell) en la autenticación basada en el token, realizar solicitudes autenticadas a los recursos
ya que es utilizado para establecer conexiones protegidos en el servidor de recursos.
seguras y autenticar en entornos de acceso remoto.
Es importante tener en cuenta que, en este flujo, no
hay una interacción directa con un usuario final para
autenticarse. En cambio, la aplicación o servicio se
autentica directamente con el servidor de
autorización utilizando sus credenciales de cliente.
3

IV. CONCLUSIÓN

La protección y el control de la información en los


servicios públicos a través de una API o cualquier otro
sistema son requisitos fundamentales. La elección de los
métodos de autenticación y autorización adecuados es
esencial para garantizar la seguridad de los datos y prevenir
accesos no autorizados. El uso de tokens, como JWT, y
protocolos como OAuth 2.0, proporcionan mecanismos
efectivos para asegurar la comunicación y controlar el
acceso a los recursos protegidos en una API REST.

REFERENCIAS

[1] Vergara, S. (2019, 20 de junio). ¿Cuál es el mejor método de


autentificación en un API REST? Blog ITDO - Agencia de desarrollo
Web, APPs y Marketing en
Barcelona. https://www.itdo.com/blog/cual-es-el-mejor-metodo-de-
autentificacion-en-un-api-rest/
Fig. 4 Flujo de Concesión de Credenciales del Cliente [2] Buenas prácticas de Seguridad para las API REST. (s.f.). Club de
Tecnología. https://www.clubdetecnologia.net/blog/2020/buenas-
practicas-de-seguridad-para-las-api-rest/
Cabe destacar que OAuth 2.0 también se utiliza en [3] JWT.IO - JSON Web Tokens Introduction. (s.f.). JSON Web Tokens -
conjunto como la autenticación basada en token, para jwt.io. https://jwt.io/introduction
[4] OAuth2 Overview | SoapUI. (s.f.). The World's Most Popular API
obtener un flujo de autorización más robusto y seguro [1]. Testing Tool | SoapUI. https://www.soapui.org/docs/oauth2/oauth2-
overview/
La elección del método adecuado dependerá de diversos
factores, como el tipo de dispositivo utilizado, el nivel de
confidencialidad de la información, los requisitos de
seguridad, la escalabilidad y la facilidad de
implementación.

III. ¿CUÁL ES EL MEJOR MÉTODO DE AUTENTICACIÓN


PARA API REST QUE USTED USARÍA?
Considero que la autenticación basada en tokens de acceso
con JWT (JSON Web Tokens) sería una opción sólida para
una API REST. Por 4 razones [3]:

1. Integridad y autenticidad: Los tokens JWT utilizan


firmas digitales para garantizar que el token no haya
sido modificado por terceros no autorizados.

2. Transmisión segura: Los tokens JWT se transmiten


a través de canales seguros, como HTTPS, lo que
protege la confidencialidad de los datos.

3. Control de acceso: Los tokens JWT permiten


especificar alcances y permisos que determinan qué
recursos o acciones pueden accederse.

4. Expiración y revocación: Los tokens JWT pueden


tener una fecha de expiración establecida, lo que
limita su tiempo de validez. Además, si se sospecha
de un token comprometido o se desee revocar el
acceso, se puede mantener una lista negra de tokens
o implementar técnicas de revocación basadas en
listas de permitidos (White lists).

También podría gustarte