Autorizar solicitações

Quando seu aplicativo solicita dados privados, a solicitação precisa ser autorizada por um usuário autenticado com acesso a esses dados.

Toda solicitação que seu aplicativo envia à API do Cloud DNS precisa incluir um token de autorização. O token também identifica o aplicativo para o Google.

Sobre protocolos de autorização

Seu aplicativo precisa usar o OAuth 2.0 para autorizar solicitações. Nenhum outro protocolo de autorização é aceito. Caso o aplicativo use o Login do Google, alguns aspectos da autorização serão tratados para você.

Autorizar solicitações com OAuth 2.0

Todas as solicitações para a API do Cloud DNS precisam ser autorizadas por um usuário autenticado.

Os detalhes do processo de autorização ou “fluxo” para o OAuth 2.0 variam um pouco, dependendo do tipo de aplicativo que você está criando. Este processo geral se aplica a todos os tipos de aplicativos:

  1. Ao criar o aplicativo, você o registra usando o Console do Google Cloud. Em seguida, o Google fornece informações que serão necessárias mais tarde, como uma chave secreta e um ID do cliente.
  2. Ative a API do Cloud DNS no Console do Google Cloud. (Se a API não estiver listada no Cloud Console, ignore esta etapa.)
  3. Quando seu aplicativo precisa de acesso aos dados do usuário, ele pede ao Google um escopo específico de acesso.
  4. O Google exibe uma tela de consentimento para o usuário, pedindo para que o aplicativo seja autorizado a solicitar alguns dos dados dele.
  5. Se o usuário aprovar, o Google fornecerá ao aplicativo um token de acesso de curta duração.
  6. O aplicativo solicita dados de usuário, anexando o token de acesso à solicitação.
  7. Se o Google determinar que a solicitação e o token são válidos, ele retornará os dados solicitados.

Alguns fluxos incluem etapas adicionais, como atualizar tokens para adquirir novos tokens de acesso. Para mais informações sobre fluxos de vários tipos de aplicativos, acesse a documentação OAuth 2.0 do Google.

Veja as informações de escopo do OAuth 2.0 para a API do Cloud DNS:

escopo Significado
https://www.googleapis.com/auth/ndev.clouddns.readwrite Acesso de leitura e gravação.
https://www.googleapis.com/auth/ndev.clouddns.readonly Acesso somente de leitura.

Para solicitar acesso usando o OAuth 2.0, você precisa das informações do escopo, bem como as fornecidas pelo Google durante o registro do aplicativo, como o ID e a chave secreta do cliente.

Exemplo

Neste exemplo, demonstramos um fluxo simples do OAuth 2.0 usando JavaScript que pede ao usuário para autorizar o aplicativo a fazer solicitações em nome dele. O usuário precisa ter acesso de proprietário ou editor ao projeto na área da equipe do Console do Google Cloud. O escopo do OAuth 2.0 https://www.googleapis.com/auth/ndev.clouddns.readwrite concede ao aplicativo acesso para ler e gravar na API do Cloud DNS.
<button id="authButton">Authorize</button>
<script type="text/javascript">
// Array of scopes
var authParams = {
  'response_type' : 'token', // Retrieves an access token only
  'client_id' : 'xxxxxxx.apps.googleusercontent.com', // Client ID from Cloud Console
  'immediate' : false, // For the demo, force the auth window every time
  'scope' : ['https://www.googleapis.com/auth/ndev.clouddns.readwrite']  // Array of scopes
};

function myCallback(authResult){
  if (authResult && authResult['access_token']) {
    // User granted authorization
    // Set the token for later API calls
    gapi.auth.setToken(authResult);
    ... // Next step, load API and query API
  } else {
    // Authorization failed or user declined
  }
}

// Attach a click even to an authorization button. Use clicks to trigger
// the flow so that the pop-up window succeeds.
document.getElementById('authButton').onclick = function(){
  gapi.auth.authorize(authParams, myCallback)
};
</script>
}
Agora que você está autenticado, pode interagir com a API do Cloud DNS.