Clientschlüssel

Die Google APIs-Clientbibliothek für .NET verwendet client_secrets.json-Dateien zum Speichern von client_id, client_secret und anderen OAuth 2.0-Parametern.

Eine client_secrets.json-Datei ist eine JSON-Datei, die die Client-ID, den Clientschlüssel und andere OAuth 2.0-Parameter enthält. Hier ist eine client_secrets.json-Beispieldatei für eine Webanwendung:

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

Hier ist eine Beispieldatei client_secrets.json für eine installierte Anwendung:

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

Im Format wird einer von zwei Client-ID-Typen definiert:

  • web: Webanwendung.
  • installed: installierte Anwendung.

Die Unterobjekte web und installed haben die folgenden obligatorischen Elemente:

  • client_id (String): Die Client-ID.
  • client_secret (String): Der Clientschlüssel.

Alle anderen Mitglieder dieser Datei sind optional und werden von der .NET-Clientbibliothek nicht verwendet.

Ziel

Traditionell haben Anbieter von OAuth 2.0-Endpunkten von den Nutzern ihrer Dienste erwartet, die Client-ID und den Clientschlüssel von einer Registrierungsseite zu kopieren und in funktionierenden Code einzufügen. Diese Methode ist fehleranfällig und liefert ein unvollständiges Bild der Informationen, die für OAuth 2.0 erforderlich sind. Für OAuth 2.0 müssen Sie außerdem alle Endpunkte kennen und einen Weiterleitungs-URI konfigurieren. Wenn Dienstanbieter herunterladbare client_secrets.json-Dateien bereitstellen und Clientbibliotheken diese Dateien verarbeiten können, ist die Implementierung von OAuth 2.0 einfacher und weniger fehleranfällig.