¿Qué es OAuth2?

OAuth2 es un protocolo de autorización que permite a terceros, clientes o sistemas, acceder a contenidos propiedad de un usuario, alojados en un servidor de recursos sin que éstos tengan que manejar ni conocer las credenciales del usuario, es decir, usuario y contraseña.

 


 

A continuación se describen las acciones de cada uno:

 

  • Propietario de recursos. Es la entidad que nos da acceso a recursos protegidos.

     

  • Cliente. Es la aplicación que hace peticiones a recursos protegidos, con la autorización del usuario que es propietario de ellos.

     

  • Servidor de recursos. Es el servidor o sistema que nos da acceso a los recursos protegidos. Es capaz de aceptar y responder peticiones usando un Access Token, vía URL.

     

  • Servidor de autorización. Hay ocasiones en que el servidor de autenticación es el mismo que el de recursos, en el caso contrario, este servidor es capaz de generar los tokens de acceso para nuestra aplicación.

 

La ventaja de utilizar un mecanismo de seguridad como OAuth2 es que facilita la comunicación entre el usuario y una aplicación tercera y genera más confianza al no tener que ingresar sus credenciales en la misma y es más segura la interacción para el usuario.

 

Funcionamiento

 

El cliente debe estar dado de alta en un servidor de recursos al cual se quiere acceder, en este cuenta con un client_id y la comunicación es mediante URL’s de redirección para intercambios de token y accesos.

 

Existen 2 maneras de llevar a cabo el proceso de autorización y validación:

 

  • Authorization end-point: Este punto de acceso debe ser el encargado de validar clientes y propietarios de recursos, mediante una URL de redirección que dirige el flujo una vez que el propietario y el cliente han sido validados.

     

  • Token end-point: Este punto es el encargado de dar los tokens de acceso al servidor de recursos.


Cuando un cliente quiere acceder a recursos de un propietario, lo primero que necesita es solicitar permisos al propietario del recurso. Este paso se denomina Authorization Grant. Para que un servidor de recursos conceda un token de acceso, es imprescindible presentarle un Authorization Grant junto a las credenciales del cliente que intenta acceder a dichos datos.

Los token de acceso deben tener un periodo de expiración después del cual se consideran caducados y el proveedor debe rechazarlos, obligando al cliente a obtener un nuevo token de acceso, cada vez que este expire.

De esta manera se lleva a cabo el proceso de comunicación entre aplicaciones con el protocolo de autorización OAuth2.

Ejemplo:

 

 

 

Share: