Gestión de APIs

OAuth 2.0: Autenticación, seguridad y usabilidad de API

Nos encontramos en el apogeo de la utilización de APIs en las empresas. Y aunque representan un avance tecnológico y económico significativo, la seguridad, autenticación y usabilidad correcta mediante estrategias y estándares de calidad, debe ser clave en su implementación.

OAuth 2.0: explicación, conceptos básicos y características

Desde hace algunos años las empresas han comenzado a incorporar plataformas de API Management en sus arquitecturas de softwares modernas, lo cual hace que sea necesario secularizar las APIs.

El reto de esta estrategia es hallar el equilibrio perfecto entre la seguridad de los usuarios y la usabilidad. Y en este sentido, los estándares cumplen un rol preponderante para lograrlo dado su alto nivel en proporcionar información adecuada y acceso a los usuarios que están autorizados.

El estándar OAuth 2.0 facilita aspectos relevantes como la autenticación de los consumidores de las APIs, la solicitud de autorización de éstos para ejecutar acciones específicas y la disposición de herramientas que identifiquen las partes involucradas en el flujo de tareas.

OAuth 2.0 es el estándar framework de autorización que surge para paliar esas necesidades, permitiendo a las aplicaciones el acceso limitado a la información de los usuarios sin necesidad de proporcionar sus credenciales, desajustando, de esta manera, la autenticación. 

De esta manera brinda soporte a diversas escenas de negocio de acuerdo al tipo de usuario que accede a los datos expuestos por la API: navegador, dispositivo en concreto, apps móviles, servidores, entre otras. Y para obtener dicho acceso se debe transitar un proceso de autenticación (access token) que habilitará o no la accesibilidad.

Entonces, ¿Qué es OAuth 2.0? Se trata de un framework que facilita la delegación de la autorización del cliente, verificando su acceso a las APIs. Por lo tanto, no se trata de un protocolo de autenticación sino de la facilitación de un token de acceso para el acceso a un recurso concreto.

Y en este sentido, OAuth no accede ni gestiona la información del usuario, la desconoce, garantizando también la seguridad de los datos

Para conocer los flujos y aplicaciones de este estándar, es beneficioso comprender los diferentes conceptos que intervienen en todo su accionar. Ellos son:

  • Propietario. Se trata de la entidad/persona encargada de otorgar el acceso a determinado recurso que se encuentra protegido. 
  • Servidor de recursos. Es la herramienta que aloja los recursos protegidos y a través de la cual se otorga o no el acceso.
  • Cliente. Es la aplicación que solicita el acceso a un recurso protegido en nombre del propietario del mismo y con su autorización.
  • Servidor de autorización. Es el servidor encargado de brindar el token de acceso al cliente luego de autenticar al propietario y conseguir la autorización.
  • Tokens. Los access tokens o tokens de acceso son las credenciales que autorizan el acceso al recurso que se encuentra protegido. Se conforman por una duración y ámbito de acceso específico. 
  • Token de actualización. Se trata de una credencial para obtener el token de acceso. El proceso se conforma de la siguiente manera: el servidor de autorización envía tokens de actualización que recibe el cliente y usa para generar un nuevo token de acceso cuando éste ya no es válido.
  • Alcance. Se trata del nivel de acceso solicitado ya que el servidor, de acuerdo a políticas internas, puede ignorar el alcance solicitado. 
  • Scopes. Refiere a identificadores que determinan a qué recurso se solicita acceso en la aplicación y a qué recurso se autoriza a acceder al usuario.

Los flujos de OAuth refieren a la modalidad en que la aplicación adquiere un token de acceso para acceder a la información que expone una API. Y surgen para responder a diversos escenarios de negocio que tienden a surgir en la implementación de APIs. Atienden a 3 variables: tipo de la aplicación, grado de confianza e interacción del usuario en el proceso.

Diferencias entre OAuth 2.0 y JWT

Es relevante mencionar que ambas no pueden ser comparables e incluso excluyentes porque cumplen diferentes objetivos que se relacionan en el proceso de seguridad y protección de datos.

JWT es un protocolo de autenticación que posee ciertas operaciones para emitir y validar un token de acceso cuyo formato es JSON y su método de firmado varía desde algoritmos HMAC a claves RSA

OAuth, como hemos mencionado anteriormente, es el framework encargado de autorizar accesos a recursos desde diversas aplicaciones. 

OAuth y el valor de la seguridad

Lo más importante y valorado en el uso y consumo de APIs es siempre la seguridad. Y OAuth se ha convertido en referencia para lograrla mediante la autorización de accesos a datos valiosos.

De acuerdo a cada caso en particular se deberá optar por el empleo de un flujo u otro con el fin de maximizar el nivel de protección y evitar problemas de seguridad. Por ello es imprescindible conocer a fondo OAuth

¿Quieres ampliar tus conocimientos sobre OAuth y otras tecnologías de autorización de recursos? Contáctanos y descubre herramientas de vanguardia para proteger tu negocio.

oauth