Diferencia entre revisiones de «Usuario:ManuelRomero/PHP/hibridas/auth2»
De WikiEducator
< Usuario:ManuelRomero | PHP | hibridas
(Página creada con «{{:Usuario:ManuelRomero/PHP/hibridas/nav}} __NOTOC__») |
|||
(3 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
{{:Usuario:ManuelRomero/PHP/hibridas/nav}} | {{:Usuario:ManuelRomero/PHP/hibridas/nav}} | ||
__NOTOC__ | __NOTOC__ | ||
+ | {{TEP}} | ||
+ | <br/> | ||
+ | ==Protocolo OAuth 2.0== | ||
+ | <br/> | ||
+ | {{Recursos de la Web|}} | ||
+ | #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 | ||
+ | {{Definicion|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. | ||
+ | {{Activicdad|Hacer una página para identificarse usando las credenciales de google}} | ||
+ | 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. | ||
+ | [[Imagen:protocoloAuth20.png]] | ||
+ | *También vamos a analizar la información de esta página http://rubenvasallo.es/php/google-y-su-oauth2/ | ||
+ | [[Imagen: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 | ||
+ | [[imagen:auth_1.png]] | ||
+ | <br /> | ||
+ | [[imagen:auth_2.png]] | ||
+ | <br /> | ||
+ | [[imagen:auth_3.png]] | ||
+ | <br /> | ||
+ | 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 | ||
+ | |||
+ | ===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 | ||
+ | <source lang=php> | ||
+ | { | ||
+ | "require": { | ||
+ | "google/apiclient": "^2.0" | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | *Ejecutamos composer para descargar todas las librerías de apiclient de google | ||
+ | <source lang=bash> | ||
+ | composer install | ||
+ | </source> | ||
+ | *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 | ||
+ | [[Archivo:instalacion_vendor_1.png]] |
Ú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