Client secret

La libreria client delle API di Google per .NET utilizza client_secrets.json per l'archiviazione client_id, client_secret e altri parametri OAuth 2.0.

client_secrets.json il file è in formato JSON contenente l'ID client, il client secret e altri parametri OAuth 2.0. Ecco un file client_secrets.json di esempio per un'applicazione 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"
  }
}

Ecco un file client_secrets.json di esempio per un'applicazione installata:

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

Il formato definisce uno dei due tipi di ID client:

  • web: applicazione web.
  • installed: applicazione installata.

Gli oggetti secondari web e installed hanno i seguenti membri obbligatori:

  • client_id (stringa): l'ID client.
  • client_secret (stringa): il client secret.

Tutti gli altri membri di questo file sono facoltativi e non vengono usate dalla libreria client .NET.

Motivazione

Tradizionalmente, i provider di endpoint OAuth 2.0 si aspettavano coloro che utilizzano i loro servizi per copiare e incollare l'ID client e client secret da una pagina di registrazione a un codice funzionante. Questo metodo è soggetto a errori e fornisce un'immagine incompleta tutte le informazioni necessarie per il funzionamento di OAuth 2.0. (OAuth 2.0 richiede anche la conoscenza di tutti gli endpoint, e la configurazione di un URI di reindirizzamento. Se i fornitori di servizi forniscono contenuti scaricabili client_secrets.json e le librerie client sono preparate per utilizzare questi file, l'implementazione di OAuth 2.0 sarà più semplice e meno soggetta a errori.