Chaves secretas do cliente

A biblioteca de cliente das APIs do Google para .NET usa arquivos client_secrets.json para armazenar client_id, client_secret e outros parâmetros do OAuth 2.0.

client_secrets.json é um arquivo no formato JSON que contém o ID e a chave secreta do cliente, além de outros parâmetros do OAuth 2.0. Confira um exemplo de arquivo client_secrets.json para um aplicativo da Web:

{
  "web": {
    "client_id": "asdfjasdljfasdkjf",
    "client_secret": "1912308409123890",
    "redirect_uris": ["https://www.example.com/oauth2callback"],
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://accounts.google.com/o/oauth2/token"
  }
}

Este é um exemplo de arquivo client_secrets.json para um aplicativo instalado:

{
  "installed": {
    "client_id": "837647042410-75ifg...usercontent.com",
    "client_secret":"asdlkfjaskd",
    "redirect_uris": ["http://localhost"],
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://accounts.google.com/o/oauth2/token"
  }
}

O formato define um dos dois tipos de ID do cliente:

  • web: aplicativo da Web.
  • installed: app instalado.

Os subobjetos web e installed têm os seguintes membros obrigatórios:

  • client_id (string): o ID do cliente.
  • client_secret (string): a chave secreta do cliente.

Todos os outros membros desse arquivo são opcionais e não são usados pela biblioteca de cliente .NET.

Motivação

Tradicionalmente, os provedores de endpoints OAuth 2.0 esperam que os usuários dos serviços copiem e colem o ID e a chave secreta do cliente de uma página de registro em um código em funcionamento. Esse método é propenso a erros e fornece uma imagem incompleta das informações necessárias para que o OAuth 2.0 funcione. O OAuth 2.0 também requer conhecer todos os endpoints e configurar um URI de redirecionamento. Se os provedores de serviços disponibilizarem arquivos client_secrets.json para download e as bibliotecas de cliente estiverem preparadas para consumir esses arquivos, a implementação do OAuth 2.0 será mais fácil e menos suscetível a erros.