Obiekty tajne klienta

Biblioteka klienta interfejsów API Google dla środowiska .NET korzysta client_secrets.json plików do przechowywania client_id, client_secret i inne parametry OAuth 2.0.

client_secrets.json jest plikiem w formacie JSON zawierający identyfikator klienta, tajny klucz klienta i inne parametry OAuth 2.0. Oto przykładowy plik client_secrets.json dla aplikacji internetowej:

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

Oto przykładowy plik client_secrets.json dla zainstalowanej aplikacji:

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

Format określa jeden z 2 typów identyfikatorów klienta:

  • web: aplikacja internetowa.
  • installed: zainstalowano aplikację.

Obiekty podrzędne web i installed mają tych obowiązkowych członków:

  • client_id (ciąg znaków): identyfikator klienta.
  • client_secret (ciąg znaków): tajny klucz klienta.

Wszyscy pozostali użytkownicy tego pliku są opcjonalna, biblioteka klienta .NET nie będzie ich używać.

Motywacja

Tradycyjnie dostawcy punktów końcowych OAuth 2.0 muszą oczekiwać, użytkowników korzystających z ich usług do skopiowania i wklejenia identyfikatora klienta. ze strony rejestracji do działającego kodu. Ta metoda jest podatna na błędy i daje niepełny obraz które są niezbędne do działania protokołu OAuth 2.0. Protokół OAuth 2.0 wymaga też znajomości wszystkich punktów końcowych, i konfigurowanie identyfikatora URI przekierowania). Jeśli dostawcy usług udostępniają plik client_secrets.json do pobrania a biblioteki klienta są gotowe do ich przetwarzania, to wdrożenie protokołu OAuth 2.0 będzie łatwiejsze i mniej podatne na błędy.