oauth 2.0 refresher
DESCRIPTION
São Paulo AdWords API WorkshopsTRANSCRIPT
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
Links:
https://developers.google.com/accounts/docs/OAuth2
https://developers.google.com/accounts/docs/OAuth2WebServer
https://developers.google.com/accounts/docs/OAuth2InstalledApp
https://developers.google.com/adwords/api/docs/authentication#oauth
https://code.google.com/apis/console
Resources
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?