Qué es OAuth 2.0 y cómo funciona

Índice de Contenido
  1. ¿Qué es OAuth 2.0?
  2. ¿Qué significa eso? ¿Puedes dar un ejemplo concreto?
  3. ¿OAuth 2.0 es sobre autenticación?
  4. ¿Cómo funciona realmente OAuth?
  5. ¿Qué hacen los tokens de acceso?
  6. Con un token de acceso, ¿puede un cliente de OAuth hacer lo que quiera en mi nombre?
  7. ¿Cómo obtienen los clientes de OAuth los tokens de acceso o de actualización?
  8. Creo que entiendo cómo funciona OAuth ahora, ¿pero podemos repasar todo el proceso nuevamente?
  9. No realmente. ¿Cuál sería?

¿Qué es OAuth 2.0?

OAuth 2.0 es la versión actual de un estándar abierto creado para permitir que aplicaciones genéricas accedan a servicios en línea en tu nombre, es decir, con tu identidad, pero sin proporcionar a esas aplicaciones tu nombre de usuario y contraseña para esos servicios.

¿Qué significa eso? ¿Puedes dar un ejemplo concreto?

OAuth 2.0, o simplemente OAuth para abreviar, es lo que, por ejemplo, te permite publicar algo en tu blog y luego anunciarlo automáticamente en Instagram, Twitter o cualquier otra red social, pero sin pasar nunca las contraseñas de esas cuentas a tu sistema de gestión de contenidos del blog.

¿OAuth 2.0 es sobre autenticación?

No, para nada. OAuth no es un protocolo de autenticación, sino un sistema estandarizado para autorizar un acceso limitado a un servicio en línea. ¡Esta es una distinción crucial! OAuth no tiene nada que ver con cómo demuestras a Instagram, LinkedIn o cualquier otra persona que eres realmente tú. Solo les da a terceros lo que se llama "acceso delegado seguro" después de que hayas autenticado tu identidad de alguna otra manera.

¿Cómo funciona realmente OAuth?

Para hacer su trabajo, OAuth distingue entre cuatro actores o roles: el Propietario de Recursos (Resource Owner), el Servidor de Recursos (Resource Server), el Cliente (Client) y el Servidor de Autorización (Authorization Server). El propietario de recursos es simplemente el usuario que quiere que se realice algún trabajo en su nombre, por parte de algún Cliente de terceros, en un Servidor de Recursos. Si quieres que tu blog anuncie una nueva publicación en Instagram, Instagram es el Servidor de Recursos, tú eres el Propietario de Recursos de tu cuenta de Instagram y tu sistema de gestión de contenidos del blog es el Cliente. El Servidor de Autorización, es decir, el núcleo de OAuth, es la parte que, después de verificar la identidad del Propietario de Recursos, proporciona al cliente lo que se llama "Tokens de Acceso".

¿Qué hacen los tokens de acceso?

Los tokens de acceso son los que hacen innecesario compartir contraseñas. Personalmente, creo que algo así como "credenciales de acceso temporales" habría sido un nombre mucho más claro y autoexplicativo, pero dado cómo sucedió todo, nos quedamos con tokens, de dos tipos diferentes. Los tokens de acceso reales son archivos pequeños que un cliente debe mostrar a un Servidor de Recursos para demostrar que está autorizado, durante un tiempo limitado (a menudo solo unas pocas horas), para actuar en nombre de algún usuario. El formato más utilizado para los tokens de acceso de OAuth es el llamado JWT (JSON Web Tokens), que admite el cifrado y firmas digitales de los datos que contiene. Además de los tokens de acceso, los servidores de OAuth también emiten tokens de actualización, que tienen una duración mucho más larga que los demás, pero pueden ser revocados en cualquier momento. Su propósito es permitir que los clientes soliciten nuevos tokens de acceso temporales cuando los que estaban utilizando expiran.

Con un token de acceso, ¿puede un cliente de OAuth hacer lo que quiera en mi nombre?

No exactamente, y esta es la belleza de OAuth. Cada token de acceso tiene su propio Scope bien definido, que es un conjunto de permisos detallados, cada uno para un tipo de acción y solo uno. Usando diferentes Scopes, por ejemplo, puedes conectar simultáneamente dos Clientes independientes a tu cuenta de Twitter, uno autorizado solo para enviar tweets y el otro solo para leer tu línea de tiempo de Twitter. Gracias a los Scopes, es decir, OAuth puede manejar simultáneamente tantos servicios y aplicaciones como necesites, cada uno con permisos diferentes. Incluso muchos servicios incluyen algún tipo de panel centralizado de OAuth, para que los usuarios puedan llevar un registro de cuántos Clientes han autorizado, ver qué permisos tiene cada uno de ellos y actualizarlos o revocarlos a voluntad.

Protección antivirus en línea: McAfee Clinic lleva la seguridad de tu PC al siguiente nivel

¿Cómo obtienen los clientes de OAuth los tokens de acceso o de actualización?

Para obtener cualquier token por parte de un Servidor de Autorización, un Cliente de OAuth debe ser "presentado" a este, es decir, tiene que acercarse a él con alguna prueba de que alguien desea que reciba ese token.

OAuth 2 define tres formas principales de emitir tales "concesiones". La más utilizada por las redes sociales y servicios en línea similares se llama "Código de Autorización", mientras que las "credenciales de cliente" (estoy simplificando aquí) están optimizadas para escenarios de máquina a máquina, en los que los programas de software deben obtener autorizaciones de otros programas y no de usuarios humanos. Por último, están las concesiones llamadas "Códigos de Dispositivo", que están diseñadas para dispositivos sin navegadores o teclados, como electrodomésticos inteligentes y consolas de juegos. Sin entrar en detalles, esos Códigos de Dispositivo generan otros códigos que el propietario de los dispositivos puede pasar manualmente al Servidor de Autenticación desde un navegador de escritorio o móvil normal para finalizar el procedimiento de autorización.

Creo que entiendo cómo funciona OAuth ahora, ¿pero podemos repasar todo el proceso nuevamente?

Claro, veamos cómo funcionan todas las piezas juntas en el caso de que el blog solicite autorización para anunciar automáticamente todas tus nuevas publicaciones en Twitter. Para que eso suceda, el sistema de gestión de contenidos del blog (después de que hayas iniciado sesión, por supuesto) te preguntará si deseas hacerlo. Si aceptas, el blog presentará una concesión de autorización que incluye algún código de identificación único al Servidor de Autorización de Twitter. Utilizando una ventana de diálogo en tu navegador, ese servidor te pedirá que autorices explícitamente una o más acciones (por ejemplo, enviar tweets, responder a tweets, descargar tu línea de tiempo, etc.) que necesita para crear el Scope correspondiente. Si aceptas, el Servidor de Autenticación empaquetará todo lo que recibió en un Token de Acceso y lo enviará a tu sistema de gestión de contenidos del blog. En ese momento, el sistema de gestión de contenidos podrá usar ese token directamente para comunicarse con el Servidor de Recursos, es decir, Twitter, y hacer lo que le hayas autorizado a hacer. ¿Has notado la característica más destacada de todo este procedimiento?

No realmente. ¿Cuál sería?

El hecho de que todo lo explicado en el párrafo anterior se pueda reducir a dos flujos independientes, uno para conceder la concesión inicial y otro para emitir y usar el Token de Acceso real, que son manejados por servidores diferentes y totalmente independientes. Esta arquitectura altamente escalable, junto con la granularidad de los permisos proporcionados por los Scopes de OAuth, es lo que hace que OAuth 2.0 sea tan útil y exitoso.

Cómo proteger tu computadora de los virus: métodos y consejos

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Seguridad, allí encontraras muchos artículos similares a Qué es OAuth 2.0 y cómo funciona , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.