Secretos del cliente

La biblioteca cliente de las API de Google para .NET usa archivos client_secrets.json a fin de almacenar client_id, client_secret y otros parámetros de OAuth 2.0.

Un archivo client_secrets.json es un archivo con formato JSON que contiene el ID de cliente, el secreto del cliente y otros parámetros de OAuth 2.0. Este es un archivo client_secrets.json de ejemplo para una aplicación 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 es un archivo client_secrets.json de ejemplo para una aplicación instalada:

{
  "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"
  }
}

El formato define uno de estos dos tipos de ID de cliente:

  • web: Aplicación web.
  • installed: Aplicación instalada.

Los subobjetos web y installed tienen los siguientes miembros obligatorios:

  • client_id (string): Es el ID de cliente.
  • client_secret (string): El secreto del cliente.

Todos los demás miembros de este archivo son opcionales y la biblioteca cliente de .NET no los usa.

Motivación

Tradicionalmente, los proveedores de extremos de OAuth 2.0 esperan que quienes usan sus servicios copien y peguen el ID y el secreto del cliente de una página de registro en un código que funcione. Este método es propenso a errores y proporciona una imagen incompleta de la información que se necesita para que OAuth 2.0 funcione. (OAuth 2.0 también requiere conocer todos los extremos y configurar un URI de redireccionamiento). Si los proveedores de servicios proporcionan archivos client_secrets.json descargables y las bibliotecas cliente están preparadas para consumir esos archivos, implementar OAuth 2.0 será más fácil y menos propenso a errores.