クライアント シークレット

.NET 用の Google API クライアント ライブラリは、client_secrets.json ファイルを使用して、client_idclient_secret、その他の OAuth 2.0 パラメータを保存します。

client_secrets.json ファイルは、クライアント ID、クライアント シークレット、その他の OAuth 2.0 パラメータを含む JSON 形式のファイルです。ウェブ アプリケーションの client_secrets.json ファイルの例を次に示します。

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

インストールされたアプリの client_secrets.json ファイルの例を次に示します。

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

この形式では、次の 2 つのクライアント ID タイプのいずれかを定義します。

  • web: ウェブ アプリケーション。
  • installed: インストール済みのアプリ。

web サブオブジェクトと installed サブオブジェクトには、次の必須メンバーがあります。

  • client_id(文字列): クライアント ID。
  • client_secret(文字列): クライアント シークレット。

このファイルの他のすべてのメンバーはオプションであり、.NET クライアント ライブラリでは使用されません。

目的

従来、OAuth 2.0 エンドポイントのプロバイダは、そのサービスを使用するユーザーが、登録ページからクライアント ID とクライアント シークレットをコピーして機能するコードに貼り付けることを期待してきました。この方法はエラーが発生しやすく、OAuth 2.0 を機能させるために必要な情報の不完全な全体像を示します。(OAuth 2.0 では、すべてのエンドポイントを把握し、リダイレクト URI を構成する必要もあります)。サービス プロバイダからダウンロード可能な client_secrets.json ファイルが提供され、クライアント ライブラリがこれらのファイルを使用できるように準備しておくと、OAuth 2.0 の実装が容易になり、エラーが発生しにくくなります。