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
OAuth2
requiere 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
OAuth2
devuelve 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 Tasks
para 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
OAuth2
para obtener un código de refresco.