Secretos del cliente

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

Un client_secrets.json sea un archivo con formato JSON que contenga el ID de cliente, el secreto de 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 .NET no las usa.

Motivación

Tradicionalmente, los proveedores de extremos de OAuth 2.0 esperaban quienes usan sus servicios para copiar y pegar el ID de cliente de registro y de cliente desde 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 necesaria para hacer funcionar OAuth 2.0. (OAuth 2.0 también requiere conocer todos los endpoints, y configurar un URI de redireccionamiento). Si los proveedores de servicios ofrecen client_secrets.json descargables y las bibliotecas cliente están preparadas para consumir estos archivos entonces, la implementación de OAuth 2.0 será más fácil y menos propensa a errores.