Usuario:ManuelRomero/DAW/distancia/OAuth

Protocolo OAuth 2.0
Que es oauth2.0
 * 1) http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=SpringSecurity-OAuth-Google
 * 2) http://rubenvasallo.es/php/google-y-su-oauth2/
 * 3) https://developers.google.com/accounts/docs/OAuth2?hl=es
 * 4) https://github.com/google/google-api-php-client
 * 5) http://www.thegameofcode.com/2012/07/conceptos-basicos-de-oauth2.html
 * 6) http://es.wikipedia.org/wiki/OAuth


 * Permite mediante terceros (No es ni el cliente ni el servidor, sino un servicio externo a nuestra aplicación, como google, twiter o Facebook), poder autentificarnos en lugar de tener que identificar usuario y contraseña en nuestra aplicación
 * En realidad esta parte es más propia de OpenID, pero queda integrada en oAuth2.0
 * Además autoriza mediante el uso de token a que el cliente pueda acceder a determinada información privada de un usuario sin necesidad de identificarse con los credenciales de dicho usuario, pero sí acceder en su nombre
 * La idea es que una aplicación (cliente)  que requiere tener acceso a datos privados de un usuario (Propietario de recursos). Pero esta aplicación no debe conocer los datos privados usuario y contraseña del propietario de recursos
 * Entonces entra en escena un tercer elemento llamado proveedor
 * Êl proveedor identifica al cliente y le concede permiso para acceder a los recursos privados
 * El escenario se produce con tres elementos
 * 1) Cliente Aplicación que quiere acceder a los datos privados en nombre del propietario
 * 2) Propietario de recursos El es quien puede dar permiso para acceder a recursos y solo él
 * 3) Provedor (Servidor de recursos y de autentificación). Pueden ir juntos o separados. Contienen los datos privados a los que quiere acceder y por medio de tokens es capaz de aceptar solicitudes del cliente y responder con los datos solicitados. Genera tokens de acceso, valida usuarios y accesos.

Pendiente de desarrollar
http://www.ladrupalera.com/drupal/desarrollo/javascript/como-usar-una-api-de-google-con-autenticacion-traves-de-oauth2

https://developers.google.com/identity/protocols/OAuth2 imagen:auth_1.png
 * Diferencias entre autentificar y autorizar
 * Descripción de cada proceso
 * Uso del protocolo con php
 * Alcance de su uso
 * Duración de las claves
 * Es importante que Auth es un protocolo de autorización más que de autentificación.
 * Lo que permite Auth es que una aplicación acceda en tu nombre a ciertos datos tuyos privados sin que tenga que conocer la aplicación tus credenciales.
 * Podemos leer la documentacion oficial
 * Esta misma idea la podemos usar para autentificarnos. Vamos a seguir el proces
 * Paso 1: Identificamos nuestra aplicación en google
 * Accedemos a https://console.developers.google.com/dcredirect?pli=1#access
 * Si no estábamos registrados, nos pedirá que nos autentifiquemos
 * Creamos el nuevo proyecto

imagen:auth_2.png

imagen:auth_3.png

Paso2 Seleccionamos las apis a las que queremos que los clientes puedan acceder Seleccionamos el menú de credenciales (Credentials) y creamos un cliente nuevo imagen:auth_5.png
 * Ahora hay que establecer permisos, el cual es un paso importante