El protocolo estándar de autorización OAuth2, permite a una aplicación externa obtener acceso a información de carácter privado a través de un servicio web. Para ello establece un acuerdo de acceso a la misma entre la aplicación externa, el servicio web y el propietario de los datos a los que se solicita el acceso.
Por ejemplo, si una aplicación "X" solicita a Google acceso a los calendarios del usuario "gestor", Google pedirá a "gestor" permiso indicándole qué aplicación es la que solicita el acceso y a qué información. Si el usuario "gestor" otorga permiso, la aplicación "X" podrá acceder a los datos que solicitó a través del servicio de Google.
OAuth2 funciona de forma similar pero ligeramente distinta dependiendo de quién solicite acceso a la información. En nuestro caso supondremos que el solicitante será siempre una aplicación web. Veamos por ejemplo qué sucede cuando nuestra aplicación necesita acceder a información personal del usuario a través del servicio de Google Tasks. En este caso, los pasos que se seguirán son los siguientes:
- La aplicación web se comunica con el servidor de autorización
OAuth2, indicando la información a que quiere acceder y el tipo de acceso a la misma. - El servidor de autorización
OAuth2requiere al usuario de la aplicación web a que inicie sesión con su cuenta deGoogle(si aún no lo ha hecho), y le redirige a una página en la que le pide su consentimiento para otorgar acceso a su información privada.
(Elaboración propia) - Si el usuario da su consentimiento, el servidor de autorización
OAuth2devuelve a la aplicación web un código de autorización. - Antes de poder acceder a la información privada del usuario, la aplicación web debe intercambiar ese código de autorización por otro código de acceso.
- Utilizando el código de acceso, la aplicación puede utilizar el servicio de
Google Taskspara gestionar la información privada del usuario, dentro de los límites de acceso que se han otorgado. - Los códigos de acceso tienen un tiempo de vida limitado. Cuando caducan, la aplicación ha de comunicarse de nuevo con el servidor de autorización
OAuth2para obtener un código de refresco.
