Diferencia entre revisiones de «Usuario:ManuelRomero/PHP/hibridas/auth2»
De WikiEducator
< Usuario:ManuelRomero | PHP | hibridas
Línea 75: | Línea 75: | ||
===Pasos para crear una app de autentificarnos=== | ===Pasos para crear una app de autentificarnos=== | ||
+ | https://developers.google.com/identity/protocols/OAuth2WebServer | ||
+ | |||
*Instalamos el cliente de google para php | *Instalamos el cliente de google para php | ||
https://developers.google.com/api-client-library/php/start/installation | https://developers.google.com/api-client-library/php/start/installation |
Última revisión de 08:41 12 feb 2018
Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos. Ver página de charlas. |
Protocolo OAuth 2.0
- http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=SpringSecurity-OAuth-Google
- http://rubenvasallo.es/php/google-y-su-oauth2/
- https://developers.google.com/accounts/docs/OAuth2?hl=es
- https://github.com/google/google-api-php-client
- http://www.thegameofcode.com/2012/07/conceptos-basicos-de-oauth2.html
- http://es.wikipedia.org/wiki/OAuth
Que es oauth2.0
OAuth (Open Authorization) es un protocolo abierto, que tras autentificarse (seguridad) autoriza el uso de una API para aplicaciones de escritorio, móviles y web. |
- 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
- Cliente Aplicación que quiere acceder a los datos privados en nombre del propietario
- Propietario de recursos El es quien puede dar permiso para acceder a recursos y solo él
- 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.
https://developers.google.com/identity/sign-in/web/sign-in
Seguimos este enlace y vemos lo sencillo que es identificarse
- Como podemos ver todo el proceso se hace escribiendo código en el cliente
- Una vez identificados tenemos un token que podemos usar para verificar que estamos identificados
===Pendiente de desarrollar=== http://www.ladrupalera.com/drupal/desarrollo/javascript/como-usar-una-api-de-google-con-autenticacion-traves-de-oauth2
- Diferencias entre autentificar y autorizar
- Descripción de cada proceso
- Uso del protocolo con php
- Alcance de su uso
- Duración de las claves
- Concepto del funcionamiento del protocolo.
- En la página anterior hay un párrafo que describe perfectamente el proceso.
- También vamos a analizar la información de esta página http://rubenvasallo.es/php/google-y-su-oauth2/
Archivo:ProtocoloAuth20 1.png Pasos: (Texto literal de la página con permiso del autor)
- El usuario hará clic en el botón de login para identificarse en nuestra aplicación web con una cuenta de google.
- Nuestra aplicación web solicitara a la api de google, permiso para acceder a los datos del usuario.
- La api de google le pedirá al usuario permiso para que nuestra web acceda a sus datos.
- Cuando el usuario acepte, la api de google retornara a nuestra web un código con el que solicitar un token valido.
- Con este código, nuestra aplicación web solicitara un token valido para poder acceder a los datos del usuario.
- La api de google retornara un token valido con el que poder hacer consultas
- Nuestra aplicación web solicitara los datos del usuario pasando el token devuelto antes.
- La api de google retornara los datos del usuario.
- Y con esto habrá acabado el proceso. En la imagen lateral se puede ver un gráfico del proceso para mejor comprensión.
- 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
https://developers.google.com/identity/protocols/OAuth2
- Esta misma idea la podemos usar para autentificarnos. Vamos a seguir el proceso
- 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
Archivo: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
- Ahora hay que establecer permisos, el cual es un paso importante
Pasos para crear una app de autentificarnos
https://developers.google.com/identity/protocols/OAuth2WebServer
- Instalamos el cliente de google para php
https://developers.google.com/api-client-library/php/start/installation
- Creamos el fichero composer.json en nuestro directorio de proyecto
{ "require": { "google/apiclient": "^2.0" } }
- Ejecutamos composer para descargar todas las librerías de apiclient de google
composer install
- Nos habrá creado una carpeta vendor en el directorio actual
- Contiene toda la librería de google-client para php
- Composer habrá creado un fichero autloload para localizar cualquier fichero que queramos utilizar