oauth 2.0 (spanish)

36
AdWords API Workshops – All rights reserved

Upload: marcwan

Post on 21-Jan-2015

761 views

Category:

Technology


3 download

DESCRIPTION

AdWords API Workshops São Paulo

TRANSCRIPT

Page 1: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Page 2: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Matias Gomez Carabias, CSE, Google.

Page 3: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

● Introduccion● Preparacion● Obtención del Token de Acceso● Demo● Detalle de los flujos de OAuth 2.0● Recursos Disponibles

Agenda

Page 4: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Introduccion

Page 5: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Has visto esta ventana? Una aplicacion esta solicitando un acceso a tus datos. Se puede permitir o denegar. Se puede revocar en cualquier momento.

Que es OAuth 2.0?

Page 6: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

La aplicacion obtiene un access token y un refresh token luego de que el dueño lo permite, lo cual es requerido para acceder a los servicios de Google

{"access_token" : "yaxx.xxxxxxxxxxxx","token_type" : "Bearer","expires_in" : 3600,"refresh_token" : "1/xxxxxxxxxxxxxxxxxxxg"

}

Que pasa detras realmente?

Page 7: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

La aplicacion puede ahora acceder a los datos mediante el access token.$ curl -H "Authorization: Bearer ya29.AHxxxxxxxxxxxxxxxxxxxx" https://www.googleapis.com/plus/v1/people/me

{ ... "id": "108294709823331281952", "displayName": "Ryuichi Hoshi", "url": "https://plus.google.com/108294709823331281952",

...

Accediendo mediante un access Token

Page 8: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Como funciona OAuth2.

Obtener un Access token para una cuenta mediante la aprobación del dueño de dicha cuenta.

Acceso a los servicios de Google con el Access Token

El flujo de OAuth2 se divide en dos partes: Obtener el access token y acceder el servicio con el token

Page 9: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

● Mayor seguridad○ No se expone el username/password

● Control de Acceso mas especifico○ Los tokens pueden tener alcance restringido sobre los datos○ Token facilmente revocable○ Impacto reducido ante un token comprometido

● Sin CAPTCHAs

Beneficios de usar OAuth 2.0

Page 10: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

● Exposicion de username/passwords ○ Acceso completo a la cuenta incluyendo la posibilidad de

cambiar el password.● Revocar un token no es muy sencillo

○ El token dura 2 semanas.○ Es necesario cambiar la password para invalidar el token.

● El uso de CAPTCHA es a veces requerido○ No es posible automatizar la autenticación cuando el

CAPTCHA es requerido.

Desventajas de ClientLogin

Page 11: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Preparacion

Page 12: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Todas las aplicaciones que usan OAuth 2.0 deben estar registradas

Si aún no fueron creados un Client ID y Client Secret, este es el primer paso para utilizar OAuth 2.0 para los servicios de Google

Crear un Client ID y Client secret

Page 13: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Crear un nuevo proyecto con Google API Console

Page 14: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Crear un nuevo Client Id de OAuth 2.0

Page 15: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Ingresar el nombre de producto

Page 16: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Elegir el tipo de aplicacion

Page 17: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Ahora, ya hemos generado el Client ID and Client secret!

Page 18: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Obtener el Access Token

Page 19: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

El ClientLibrary de Java tiene una pequeña herramienta que nos permite obtener un access token

Obtener un Access Token con ClientLibrary

Page 20: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

1. Descargar y extraer el proyecto de ejemplo adwords-axis-examples-1.20.0.tar.gz from downloads

2. Editar el archivo de propiedadessrc/main/resources/ads.properties para incluir la información de OAuth2 (client ID y client secret) e información básica de la cuenta

Obtener el Access Token con ClientLibrary

Page 21: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

3. Compilar y Ejecutar el program$ mvn -X compile$ mvn -X exec:java \ -Dexec.mainClass="adwords.axis.auth.GetRefreshToken"

Muestra algo como esto:

Paste this url in your browser: https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=xxxxxxxx.apps.googleusercontent.com&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&scope=https://adwords.google.com/api/adwords

Obtener el Access Token con ClientLibrary

Page 22: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

4. Pegar la URL en un browser.

Nota: Es necesario estar logueado con una cuenta de MCC antes de hacerlo.

Obtener el Access Token con ClientLibrary

Page 23: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

5. Aceptar el RequestSe obtendrá un código que puede ser usado par intercambiar con el nuevo Access Token

Obtener el Access Token con ClientLibrary

Page 24: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

6. Insertar el código en el programa que se esta ejecutandoType the code you received here: 4/-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxwIYour refresh token is: 1/xxxxxxxxxxxxxxxxxxxxTl1vgIn your ads.properties file, modify:

api.adwords.refreshToken=1/xxxxxxxxxxxxxxxxxxxxTl1vg

7. Agregar el archivo ads.properties con el refresh token

Obtener el Access Token con ClientLibrary

Page 25: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Felicitaciones! Ahora, su aplicacion tiene un access token y refresh token!

Client Library automáticamente obtiene un nuevo access token con el refresh token cada vez que sea requerido.

Obtener el Access Token con ClientLibrary

Page 26: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Demo

Page 27: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Detalle de los flujos de OAuth 2.0

Page 28: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Google soporta los siguientes escenarios de OAuth 2.0

● Web server applications● Installed applications● Applications on limited-input devices● Service Accounts requires your own Google Apps domain

Flujos de OAuth 2.0 soportados

Page 29: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Diferencias entre los flujos

Registration to API Console

Registration to API Console

Use Authentication Code

Client Secret

Refresh Token Redirection

Web server applications

Required Yes Required Available URL

Installed applications

Required Yes Required Available URL, Text

Client-side applications

Required - - - URL

Applications on limited-input device

Required - Required Available -

Page 30: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Web server or installed application?

Elegir Installed application salvo que se tengan muchas cuentas que necesitan autorización.

Elegir Web server application cuando se necesita autorización para muchas cuentas.

Page 31: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Casos: Se quiere usar autenticación de OAuth 2.0 para cada cliente en vez de invitarlos al MCCBeneficios: El cliente no debe darnos acceso a la UI.No es necesario vincular las cuentas.Es posible automatizar el proceso de intercambio mediante este flujo.

Flujo de Web Server Application

Page 32: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Flujo Installed Application

Casos:Todas las cuentas se encuentran vinculadas a un mismo MCC y se quiere usar un solo set de credenciales.Beneficios: No es necesario administrar/refrescar los access tokens para todos los clientes. Obtener access token para el MCC es suficiente para acceder a todas las cuentas vinculadas.

Page 33: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Recursos Disponibles

Page 34: OAuth 2.0 (Spanish)

Docs Links:

Using OAuth 2.0 to Access Google APIs: http://goo.gl/8Gis5

Using OAuth 2.0 for Web Server Applications: http://goo.gl/IghDp

Using OAuth 2.0 for Installed Applications: http://goo.gl/R9xYB

Authentication: http://goo.gl/RUotMR

Google API Console: http://goo.gl/9R42O

OAuth Service Accounts: http://goo.gl/85Hhw9

Resources

Page 35: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved

Preguntas?

Page 36: OAuth 2.0 (Spanish)

AdWords API Workshops – All rights reserved