Client secret

La libreria client delle API di Google per .NET utilizza i file client_secrets.json per archiviare client_id, client_secret e altri parametri OAuth 2.0.

Un file client_secrets.json è un 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 la libreria client .NET non li utilizza.

Motivazione

Tradizionalmente, i provider di endpoint OAuth 2.0 si aspettano che chi utilizza i propri servizi copi e incolli l'ID client e il client secret da una pagina di registrazione nel codice funzionante. Questo metodo è soggetto a errori e fornisce un'immagine incompleta delle informazioni necessarie per il funzionamento di OAuth 2.0. OAuth 2.0 richiede inoltre di conoscere tutti gli endpoint e di configurare un URI di reindirizzamento. Se i fornitori di servizi forniscono file client_secrets.json scaricabili e le librerie client sono pronte per utilizzare questi file, l'implementazione di OAuth 2.0 sarà più semplice e meno soggetta a errori.