¿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.

Índice:

¿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.

Relacionado: ¿Cómo se producen los ataques de relleno de credenciales?

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é proporciona el protocolo OAuth?

OAuth, como una solución CIAM (Consumer 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.

Relacionado: ¿OAuth vs SAML? Descubre qué es SAML, la solución que permite integrar el Single Sign-on (SSO).

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.

En NTS Seidor somos especialistas, por lo que podemos ayudarte a implantar las herramientas adecuadas para proteger la identidad de los empleados, colaboradores y partners que se conectan a aplicaciones de negocio, proporcionando herramientas que facilitan la identificación, autenticación y autorización.

Relacionado: ¿Qué es un SIEM? ¿Cómo puede mejorar la seguridad informática de tu empresa?