Seidor
mujer usando un portatil

08 de marzo de 2023

¿Qué es OAuth? ¿Qué proporciona su protocolo?

Uno de los aspectos críticos de la seguridad informática es poder proporcionar una experiencia de acceso sin interrupciones y de inicio de sesión único (SSO) entre varios dispositivos. Gracias al desarrollo constante de nuevas herramientas, hoy es posible acceder a miles de sitios web completamente no relacionados utilizando un inicio de sesión físico único. Y en este campo, OAuth es uno de los grandes protagonistas.

¿Qué es Open Authorization?

Cuando hablamos de OAuth (Open Authorization) nos referimos a una solución de administración de identidad y acceso (IAM). Su finalidad es otorgar autorizaciones a los usuarios. Se trata de un protocolo para pasar la autorización de un servicio a otro sin compartir las credenciales de usuario reales, como un nombre de usuario y contraseña. Con esta herramienta un usuario puede iniciar sesión en una plataforma y luego estar autorizado para realizar acciones y ver datos en otra plataforma. Es decir, permite el inicio de sesión único (SSO).

Si bien es cierto que OAuth es uno de los métodos más comunes utilizados para pasar la autorización de un servicio de inicio de sesión único a otra aplicación en la nube, también puede servir para realizarlas mismas funciones entre aplicaciones.

¿De dónde surge?

Desde hace ya algunos tiempos, el sector tecnológico ha tratado de resolver el dilema de la autorización de la forma más eficiente. Así, en 2006, Blaine Cook, en aquel momento desarrollador principal en Twitter, intentó encontrar una solución cuando estaba trabajando en la implementación de OpenID. Pero los resultados no fueron satisfactorios, ya que OPenID no proporcionó la delegación del acceso a la API. En ese momento, Cook, se unió a otros implementadores para escribir una propuesta para un protocolo abierto. El resultado fue el desarrollo del estándar OAuth. El resultado fue publicado por Internet Engineering Task Force (IETF) en 2010 (Versión 1.0) y actualizado en 2012 (Versión 2.0).

Poco a poco, OAuth comenzó a ganar popularidad, hasta el punto de que hoy en día, puede trabajar con plataformas tan importantes como Amazon, Facebook, Instagram, LinkedIn, Microsoft, Netflix, Paypal, entre muchos otros.

¿Cómo funciona Oauth? ¿Qué le aporta su token de acceso?

El primer paso es que el usuario inicie la sesión en un sitio web o servicio (recordemos que OAuth solo funciona con HTTPS). El proceso de autorización de OAuth comienza con un usuario final (Propietario de recursos) que especifica que desea proporcionar una aplicación cliente (Cliente) con acceso a datos en una aplicación de terceros (Servidor de recursos). La aplicación cliente redirige esta solicitud a un Servidor de autorización proporcionado por la aplicación de terceros, que autentica al usuario final solicitante. El Servidor de Autorizaciones autoriza la aplicación del cliente y el Propietario del recurso y redirige al usuario a la aplicación del cliente con un código de acceso de un solo uso.

El código de acceso de un solo uso se envía de vuelta al Servidor de autorización, que luego lo convierte en un token de acceso que el usuario final puede usar para acceder al servidor. Al mismo tiempo, el AS también puede devolver un token de actualización, lo que permitirá al usuario final utilizar el mismo OAuth para acceder más de una vez.

Esencialmente, el token de acceso permite a un usuario llamar a la API. A cambio, la API obtiene acceso a la información sobre el cliente y el propietario del recurso y qué camino tomaron, qué cliente están utilizando y quién es el usuario final.

Relacionado con OAuth, no podemos dejar de mencionar OKTA, un sistema de gestión de identidades, que nos facilita su implantación en nuestras apps y proyectos web. Y es que, tal como señalan desde OKTA, tomaron decisión de implementar OAuth 2.0 para extender la autenticación, autorización y administración de usuarios a sus API, cubriendo todas sus pantallas en todos sus dispositivos.

¿Qué es OAuth 2.0?

OAuth 2.0, una versión simplificada y mejorada del OAuth original, es un protocolo de acceso que permite que un usuario autorice una aplicación o servicio a actuar en su nombre sin compartir sus credenciales de usuario.

Define 4 roles principales: el propietario del recurso, el servidor de recursos, el cliente y el servidor de autorización. A través de la interacción entre estos roles, OAuth 2.0 permite a los usuarios controlar el acceso a distintos recursos de manera segura y autorizada.


¿Qué proporciona el protocolo OAuth?

OAuth, como una solución CIAM (Customer Identity and Access Management), se puede usar tanto para autorizar a los usuarios como para permitir el acceso parcial de una aplicación a otra aplicación. Un caso de uso que los usuarios suelen encontrar es permitir que una aplicación acceda a una plataforma de redes sociales u otra cuenta en línea. Las cuentas de usuario de Google pueden integrarse con muchas aplicaciones diferentes para el consumidor, como plataformas de blogs, sitios web de noticias y varios juegos en línea. En esos casos, el protocolo OAuth se usa detrás de escena para permitir que esas aplicaciones externas accedan a los datos necesarios de Google.

Para las empresas, el caso de uso más común para OAuth es en conjunción con los sistemas de gestión de identidad y acceso (IAM). Los usuarios pueden estar autorizados para el uso de la aplicación a través de OAuth. Por ejemplo, un empleado puede iniciar sesión en el sistema SSO de su empresa con su nombre de usuario y contraseña. Este sistema SSO les da acceso a todas las aplicaciones que necesitan para hacer su trabajo, y el sistema SSO lo hace pasando tokens de autorización OAuth a estas aplicaciones.

Un protocolo como OAuth es necesario porque debe haber alguna forma de enviar información de autorización entre aplicaciones sin exponer los datos de inicio de sesión del usuario.

Hay que tener en cuenta que, aunque OAuth a veces se confunde como un método de autenticación no se trata de es un IDaaS y, en consecuencia, no debe usarse para autenticar usuarios, como por ejemplo sí puede hacerse con OKTA.

En conclusión

En resumen, nos encontramos ante una herramienta muy flexible, fácil de implementar y que gracias a su capacidad de compartir datos para los usuarios sin tener que divulgar información personal, proporciona un extra de seguridad en los procesos de autenticación.

Quizá te puede interesar

03 de abril de 2023

¿Qué es el Internet de las Cosas (IoT)?

El Internet de las Cosas – en inglés Internet of Things (de aquí nacen las conocidas siglas IoT) – es un término cada vez más presente en nuestra vida cotidiana. Cada día que pasa es más común escuchar como aparecen nuevos dispositivos que pueden hacernos la vida en el hogar y en el trabajo mucho más fácil, gracias a las múltiples posibilidades que sus aplicaciones nos brindan.

SEIDOR
16 de enero de 2023

¿Qué es y para qué sirve Salesforce? ¿Características del CRM nº1?

Más de 150.000 empresas de todo tipo y tamaño trabajan con la tecnología Salesforce. Gracias a su cada vez más amplia gama de productos las cifras demuestran una clara tendencia de crecimiento.

SEIDOR
11 de enero de 2023

Salesforce Certificaciones: Guía, Exámenes y Oportunidades de Trabajo

Salesforce ocupa el primer puesto de entre los productos de gestión de relaciones con clientes (CRM). Es su versatilidad lo que hace de esta herramienta apta para cualquier tipo de empresa, con independencia de su tamaño y del sector al que pertenezca.

SEIDOR