Todo sobre OAuth, la nube de autenticación

Lenildo Morais es Maestro en Ciencias de la Computación, Profesor Universitario, Investigador y Gerente de Proyectos.

Publicado el 20 Ene 2021

Lenildo Moraes.

Casi todo el mundo ha pasado por un proceso de OAuth, aunque la mayoría de los usuarios no saben qué es. Y ese es el punto. Este es un proceso de autorización en gran parte en segundo plano. Uno de los desafíos para los especialistas en seguridad de la información desde el auge de las redes de computadoras es crear un SSO fluido para que los usuarios con las mismas credenciales puedan usar múltiples computadoras y sistemas. En otras palabras, la misma cuenta para servicios individuales.

¿Cómo abrir de forma segura un almacén de datos de backend al mundo exterior? Siempre que sea una única parte de confianza que necesite acceso a un conjunto de datos, está bien. Se intercambian un nombre de usuario y una contraseña y esta parte tiene acceso a los datos relevantes con una conexión https segura con estas credenciales.

Hay situaciones más complejas en las que todos los usuarios quieren acceder a sus propios datos, y los clientes los anotan o los ponen a disposición terceros, por lo que el control de acceso es mucho más difícil. Varias partes están involucradas (el usuario, el proveedor de datos y la aplicación utilizada).

Misma Cuenta para Servicios Individuales

Esto se debe principalmente a OAuth. Este es un estándar abierto que describe cómo los servidores y servicios individuales pueden otorgar permisos sin tener que usar las credenciales originales de SSO. Llaman a esta autorización delegada por un tercero protegido en el mundo de la seguridad de la información.

En 2010, RFC 5849 se publicó como un estándar abierto aprobado por Twitter, Google y otras empresas desde el principio. Creció rápidamente y se realizó un trabajo considerable durante los dos años siguientes. Auth 2.0 se lanzó en 2012 y es muy popular porque los usuarios pueden iniciar sesión en Facebook, Netflix, Paypal, Twitter, Microsoft, Instagram, LinkedIn y muchos otros gigantes de Internet.

Autorización de otro Sitio

El ejemplo más simple de OAuth es conectarse a un sitio. Este sitio ofrece una o más opciones de conexión con una cuenta de otro servicio.

Otro escenario común de OAuth es que un usuario descarga archivos de una nube a otra y los dos sistemas no están vinculados. Cuando el usuario vincula un archivo adjunto, OAuth se puede usar en segundo plano para autenticar y buscar archivos protegidos sin requerir un segundo inicio de sesión desde el sistema donde se almacenan los archivos.

Uno para Todos

En cualquier caso, OAuth también se utiliza para vincular servicios de terceros a otro servidor web. El punto es que dos o más servicios están vinculados por una acción del usuario final. Prefiere registrarse una vez que varias veces para una sola transacción. El cliente (por ejemplo, el navegador), los servicios conectados y el proveedor de autenticación deben admitir la misma versión de OAuth.

La idea es que diferentes servicios juntos intenten replicar algo para los usuarios o su software entre sí. Los tres deben trabajar juntos para obtener múltiples aprobaciones para autorizar la transacción completa. También es importante saber que esto siempre es una autorización y no una autenticación directa.

Autenticación frente a Autorización

La autenticación verifica la identidad digital del usuario, que es el proceso de verificación de una identidad. En pocas palabras, aquí es cuando el usuario realmente demuestra quiénes son. Un ejemplo muy común de autenticación es la combinación de nombre de usuario y contraseña.

La autorización, a su vez, es el proceso que ocurre después de la verificación de autenticación. Esto afecta los permisos otorgados a un usuario específico cuando usa una aplicación. Se utiliza para comprobar si un determinado usuario está autorizado para ejecutar recursos o manipular determinadas acciones, lo cual es de fundamental importancia para una aplicación.

Un ejemplo al que podemos dar permiso es el uso de un ERP de una empresa específica. Después de la autenticación en el sistema, el usuario financiero solo tiene acceso a los módulos que corresponden a la ejecución de su trabajo, por ejemplo. B. Cuentas por pagar y cuentas por cobrar.

Operación OAuth

Supongamos que un usuario ya inició sesión en un sitio web o servicio en la nube. (Recuerde, OAuth solo funciona con https). El usuario ingresa una transacción que se vincula a otro sitio web o servicio en la nube. En resumen, el proceso funciona así:

1) El sitio visitado se conecta a otro servicio en la nube o sitio de servicio en la nube y solicita la verificación de la identidad del usuario a través de OAuth.

2) El segundo sitio genera un token y una clave únicos para la transacción y las partes involucradas.

3) El sitio visitado pasa este token al software del cliente, por ejemplo. B. el navegador.

4) El software del cliente muestra un token de solicitud al proveedor de autorización (este puede ser el segundo sitio o servicio, pero no es obligatorio).

5) Si la autenticación aún no es posible, el proveedor de autorización puede solicitar al cliente que se autentique.

6) Después de autorizar la transacción de autorización para el segundo sitio, se le pedirá al cliente que se autentique

7) El usuario (o el software en segundo plano) aprueba la transacción en el sitio visitado.

8) Se pasa un token de acceso aprobado al usuario (no más token de solicitud).

9) El usuario pasa el token de acceso aprobado al sitio visitado.

10) El sitio visitado transmite este token al segundo sitio como prueba de autenticación del usuario.

11) El segundo sitio permite al sitio visitado acceder al sistema en nombre del usuario.

12) El usuario ve que la transacción se realizó correctamente.

Muchos sistemas de autenticación tratan las transacciones de esta manera para el usuario final. Lo único de OAuth es que es posible en la mayoría de los sitios web y tiene una amplia aceptación. Outh aceptó con éxito donde otros intentos fallaron por varias razones.

Aunque no es tan simple, los desarrolladores web comprenden bien el sistema de transacciones. La creación de un sitio habilitado para OAuth puede llevar algunas horas o un día. Con un poco de esfuerzo adicional, cientos de millones de usuarios pueden iniciar sesión en sitios web sin tener que configurar su propio sistema de autenticación complejo y escalable para una gran empresa. No existe un SSO totalmente seguro y aceptado universalmente que funcione en todos los sitios web. Pero con OAuth, puede ir un paso más allá.

¿Qué te ha parecido este artículo?

La tua opinione è importante per noi!

Redacción

Artículos relacionados