OAuth 2.0 refresher

Post on 21-Jan-2015

197 views 2 download

Tags:

description

São Paulo AdWords API Workshops

Transcript of OAuth 2.0 refresher

AdWords API Workshops – All rights reserved

AdWords API Workshops – All rights reserved

OAuth 2.0

Cristiano Breuel, Google, Inc.

AdWords API Workshops – All rights reserved

Agenda

1

2

3

4

5

1. O que é OAuth 2.0?

2. Preparação

3. Obtendo um Access Token

4. Detalhes do fluxo OAuth 2.0

5. Melhores Práticas

AdWords API Workshops – All rights reserved

O que é OAuth 2.0?

AdWords API Workshops – All rights reserved

O que é OAuth 2.0?

● Autorização para a API do AdWords

● Seguro

● Simples

● Padronizado

AdWords API Workshops – All rights reserved

● Sem Nomes de usuário ou Senhas

● Só Tokens

● Controle de acesso Específico

● Escopo restrito

● Fácil de revogar

A segurança do OAuth2

AdWords API Workshops – All rights reserved

A simplicidade do OAuth2

Interagir com a API do AdWords

Obter AcessoPedir aprovação

AdWords API Workshops – All rights reserved

O padrão do OAuth2

● Você já viu essa janela?

● Consentimento do Usuário

● Aceitar

● Cancelar

AdWords API Workshops – All rights reserved

2) Aceitar Consentimento

3) Troca de Código

O Fluxo OAuth2

Sua Aplicação

Usuário da MCC

Servidores do Google

1) Construir URL 4) Fazer Requisição 5) Renovar Accesso

Servidores OAuth2

A API do AdWords

Conceder Accesso Interagir com a API do AdWords

AdWords API Workshops – All rights reserved

● refresh_token

● Atualiza o access_token

● Tempo de vida indefinido

● Armazene!

● access_token

● Para fazer requisições

● Tempo de vida 60 minutos

Acesso inclui 2 Tokens

AdWords API Workshops – All rights reserved

● refresh_token

● Atualiza o access_token

● Tempo de vida indefinido

● Armazene!

● access_token

● Para fazer requisições

● Tempo de vida 60 minutos

Acesso inclui 2 Tokens

AdWords API Workshops – All rights reserved

● refresh_token

● Atualiza o access_token

● Tempo de vida indefinido

● Armazene!

● access_token

● Para fazer requisições

● Tempo de vida 60 minutos

Acesso inclui 2 Tokens

AdWords API Workshops – All rights reserved

Preparação

AdWords API Workshops – All rights reserved

http://code.google.com/apis/console

● Obtenha uma identificação da aplicação● client_id● client_secret

Registre sua aplicação

AdWords API Workshops – All rights reserved

Crie um novo projeto na Google API Console

AdWords API Workshops – All rights reserved

Crie um client ID OAuth 2.0

AdWords API Workshops – All rights reserved

Servidor web ou aplicação instalada?

Escolha Aplicação Instalada a menos que você tenha várias contas de clientes que precisam de autorização.

Escolha Aplicação em Servidor Web quando usar várias contas autorizadas separadamente.

AdWords API Workshops – All rights reserved

Aplicação Instalada

Escolha seu tipo de aplicação

AdWords API Workshops – All rights reserved

Agora, você tem um client_id e client_secret

AdWords API Workshops – All rights reserved

Obtendo Acessoaccess_token & refresh_token

AdWords API Workshops – All rights reserved

Para que serve o Token de Acesso?

Obter Acesso & Renovar TokensObter aprovação

AdWords API Workshops – All rights reserved

Com ou sem Client Libraries

● Com Client Libraries

● Sem Client Libraries

AdWords API Workshops – All rights reserved

● Verifique os detalhes da sua library!

● Exemplo:

● Executar script

● Autorizar aplicação

● Adicionar refresh_token à configuração

Client Libraries podem ajudar

AdWords API Workshops – All rights reserved

1. Construir URL

2. Obter Consentimento

3. Receber Código de Autorização

4. Trocar Código por Token

5. Armazenar Credenciais

Como obter um Token de Acesso

AdWords API Workshops – All rights reserved

https://accounts.google.com/o/oauth2/auth?

access_type=offline&

scope=https://adwords.google.com/api/adwords&

redirect_uri=urn:ietf:wg:oauth:2.0:oob&

response_type=code&

client_id=xxxxxxx.apps.googleusercontent.com

1. Construir uma URL

AdWords API Workshops – All rights reserved

● Enviar Usuário

● Aceitar permissões

2. Obter Consentimento

AdWords API Workshops – All rights reserved

> Enter authorization code here:

4/v6xr77ewYqhvHSyW6UJ1w7jKwAzu

3. Receber Código de Autorização

HTML

AdWords API Workshops – All rights reserved

POST /o/oauth2/token HTTP/1.1 Host: accounts.google.com Content-Type: application/x-www-form-urlencoded code=4/v6xr77ewYqhvHSyW6UJ1w7jKwAzu& client_id=xxxxxxx.apps.googleusercontent.com& client_secret={client_secret}& redirect_uri=& grant_type=authorization_code

4. Trocar Código por Token

AdWords API Workshops – All rights reserved

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

}

5. Armazenar Credenciais

AdWords API Workshops – All rights reserved

Tipos de Fluxos OAuth 2.0

AdWords API Workshops – All rights reserved

O Google suporta cenários OAuth 2.0 comuns

● Aplicações Instaladas

● Aplicações em Web Server

● Aplicações em devices com input limitado

Fluxos OAuth 2.0 Suportados pelo Google

AdWords API Workshops – All rights reserved

Diferenças entre fluxos

Registro no Console de API

Usar código de Autenticação

Client Secret

Renovação de Token

Redirecionamento

Aplicações Instaladas

Requerido Sim Requerido Disponível URL, Texto

Aplicações em Web Server

Requerido Sim Requerido Disponível URL

Aplicações em devices com input limitado

Requerido - Requerido Disponível -

AdWords API Workshops – All rights reserved

Melhores Práticas

AdWords API Workshops – All rights reserved

● Use tipo de acesso offline para obter um refresh_token

● Armazene o refresh_token para obter um novo access_token

● Use a estrutura da MCC● Autorize a MCC de nível mais alto

Melhores Práticas

AdWords API Workshops – All rights reserved

Armazenamento & Compartilhamento

● Armazene os Tokens de Acesso● Armazene o timestamp e o tempo de validade do token de

acesso● Compartilhe Tokens de Acesso entre Threads

AdWords API Workshops – All rights reserved

● AuthenticationError.OAUTH_TOKEN_INVALID○ Quando: Token de Accesso expirado○ Solução: obtenha um novo Token de Acesso com um Refresh

token

● AuthenticationError.INVALID_GRANT_ERROR○ Quando: Refresh Token revogado○ Solução: re-autentique a aplicação com consentimento do

usuário

Informações Úteis sobre Erros

AdWords API Workshops – All rights reserved

Apêndice

AdWords API Workshops – All rights reserved

Recursos

AdWords API Workshops – All rights reserved

Perguntas?

AdWords API Workshops – All rights reserved

AdWords API Workshops – All rights reserved

Escolha acesso offline quando suas aplicações funcionam sem interação com o usuário

Acesso offline é bom para aplicações típicas da API do AdWords que acessam servidores do Google para obter dados e atribuir valores em background.

Offline ou Online?