¿Qué es OAuth? | SAML vs. OAuth

OAuth es un protocolo para ampliar la autorización del usuario en múltiples aplicaciones sin compartir los datos de autenticación de la identidad del usuario con esas aplicaciones.

Objetivos de aprendizaje

Después de leer este artículo podrás:

  • Más información sobre qué es OAuth y cómo funciona
  • Explorar la diferencia entre autenticación y autorización
  • Contrastar SAML vs. OAuth

Contenido relacionado


¿Quieres saber más?

Suscríbase a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.

Revisa la política de privacidad de Cloudflare para saber más sobre cómo Cloudflare gestiona tus datos personales.

Copiar enlace del artículo

¿Qué es OAuth?

OAuth es un estándar técnico para autorizar a los usuarios. Es un protocolo para pasar la autorización de un servicio a otro sin compartir las credenciales reales del usuario, como un nombre de usuario y una contraseña. Con OAuth, un usuario puede iniciar sesión en una plataforma y luego tener autorización para realizar acciones y ver datos en otra plataforma.

OAuth permite pasar la autorización de una aplicación a otra, independientemente de qué aplicaciones sean. OAuth es uno de los métodos más utilizados para pasar la autorización desde un servicio de inicio de sesión único (SSO) a otra aplicación en la nube, pero se puede utilizar para todo tipo de aplicaciones. Hay otros protocolos que también pueden llevar a cabo esta función, aunque OAuth es uno de los más utilizados.

Imaginemos que llega visita a una casa cuando el propietario no está, y en vez de enviarle una llave real de la casa, el propietario le envía un código temporal para entrar en una caja fuerte que contenga la llave. OAuth funciona de forma similar. En OAuth, una aplicación envía a otra un token de autorización para dar acceso a un usuario, en lugar de enviar las credenciales del usuario.

¿Cómo funcionan los tokens de autorización OAuth?

Supongamos que Alice quiere acceder a la aplicación de almacenamiento de archivos en la nube de su empresa. Ya ha iniciado sesión en el SSO de su empresa, pero todavía no ha accedido a la aplicación de almacenamiento de archivos ese día. Cuando abre la aplicación de almacenamiento de archivos, en lugar de simplemente dejarla entrar, la aplicación solicita autorización a su SSO para Alice.

En respuesta, el SSO envía un token de autorización OAuth a la aplicación. El token contiene información sobre los privilegios con los que cuenta Alice en la aplicación. El token también tendrá un límite de tiempo: después de un tiempo determinado, el token caduca y Alice tendrá que volver a iniciar sesión en su SSO.

Los tokens de OAuth se suelen enviar con HTTPS, lo que significa que están encriptados. Se envían en la capa 7 del modelo OSI.

¿Para qué se utiliza OAuth?

OAuth se puede utilizar tanto para autorizar a los usuarios como para permitir que una aplicación tenga acceso parcial a otra. Un caso de uso que los usuarios encuentran a menudo es permitir que una aplicación acceda a una plataforma de redes sociales o a otra cuenta online. Las cuentas de usuario de Google pueden integrarse con muchas aplicaciones de consumo diferentes, como plataformas de blogs, sitios web de noticias y varios juegos en línea. En esos casos, el protocolo OAuth se utiliza en segundo plano para permitir que esas aplicaciones externas accedan a los datos necesarios de Google.

Para las empresas, el caso de uso más habitual de OAuth es en conjunto con los sistemas de gestión de identidad y acceso (IAM). A los usuarios se les puede autorizar para el uso de la aplicación mediante 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.

OAuth es uno de los diferentes protocolos de autorización que se utilizan en la actualidad. Estos protocolos de autorización son necesarios, porque tiene que haber alguna forma de enviar información de autorización entre aplicaciones sin exponer los datos de acceso del usuario. Algunas plataformas han desarrollado sus propios métodos de autorización, por ejemplo, Facebook ofrece Facebook Connect.

¿Qué es OAuth 2.0?

OAuth 2.0 es la última versión de OAuth. La primera versión de OAuth se publicó en 2010. OAuth 2.0 se publicó en 2012, y solucionó una serie de vulnerabilidades que había en OAuth 1.0.

SAML vs. OAuth: ¿Cuál es la diferencia entre autenticación y autorización?

Autorización y autenticación suenan parecido, pero en la gestión de acceso no son exactamente lo mismo, y la diferencia entre las mismas es muy importante para entender cómo funciona la tecnología de gestión de acceso (incluyendo OAuth). La autenticación tiene que ver con la identidad del usuario, mientras que la autorización tiene que ver con los privilegios del usuario.

Imaginemos que Bob trabaja en unas instalaciones seguras con una caseta de vigilancia en la puerta. Todos los vehículos que entran en las instalaciones se detienen en la caseta de vigilancia, y solo se deja entrar a los empleados conocidos. En la caseta se lleva a cabo la autentificación del usuario: los guardias de seguridad cotejan la tarjeta de identificación de Bob con una lista de empleados y comprueban la matrícula de su vehículo con una lista de vehículos permitidos. Si consiguen autenticarle a él y a su vehículo, puede entrar y aparcar en el aparcamiento de las instalaciones.

Sin embargo, que Bob pueda entrar en las instalaciones no implica que pueda aparcar su vehículo donde quiera. Todo lo contrario, hay aparcamientos designados para cada tipo de empleado. Bob solo puede aparcar en su aparcamiento designado; no puede ocupar la plaza de aparcamiento del Director general.

OAuth es un protocolo de autorización: garantiza que Bob vaya al aparcamiento correcto. En cambio, el Lenguaje de marcado para confirmaciones de seguridad (SAML) es un protocolo para la autenticación, es decir, para permitir que Bob pase por la caseta de vigilancia.

Un proveedor de identidad (IdP) o un servicio SSO se pueden utilizar ambos en conjunto con el otro, o solo OAuth (aunque utilizar OAuth para la autenticación se considera "pseudoautenticación").

En resumen: SAML y OAuth son protocolos diferentes y se utilizan para fines diferentes, pero ambos se suelen utilizar con SSO.

¿Ofrece Cloudflare autenticación o autorización de usuarios?

Cloudflare Zero Trust actualmente no ofrece autenticación de usuarios —por ejemplo, un servicio SSO—, pero sí permite que las organizaciones gestionen el acceso y los privilegios de los usuarios. Cloudflare permite gestionar la autorización de los usuarios sin necesidad de recurrir a una red privada virtual (VPN).

Cloudflare Zero Trust se integra con diversos proveedores de SSO y puede incluso integrarse con varios SSO, lo cual facilita el dar acceso a agencias y proveedores externos a los sistemas. Lee una publicación del blog sobre multi-SSO con Cloudflare para más información.