Chaves secretas do cliente

A biblioteca de cliente de APIs do Google para usos em .NET client_secrets.json para armazenar o client_id, client_secret e outros parâmetros do OAuth 2.0.

Um client_secrets.json está no formato JSON que contém o ID e a chave secreta do cliente, além de outros parâmetros do OAuth 2.0. Veja aqui 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"
  }
}

Veja 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: aplicativo 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 a biblioteca de cliente .NET não os utiliza.

Motivação

Tradicionalmente, provedores de endpoints OAuth 2.0 esperam as pessoas que usam seus serviços para copiar e colar o ID do cliente e a chave secreta do cliente de uma página de registro para um código de trabalho. 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 o conhecimento de todos os endpoints, e configurar um URI de redirecionamento.) Se os provedores de serviços oferecerem client_secrets.json para download e bibliotecas de cliente estão preparadas para consumir esses arquivos, implementar o OAuth 2.0 será mais fácil e menos propenso a erros.