JDBC Driver for Google Contacts

Build 20.0.7654

カスタムOAuth アプリの作成

各ユーザーやドメインの代わりに、本製品 がGoogle API にアクセスすることを許可できます。OAuth 認証標準を使って、Google API に接続しましょう。

ユーザーアカウントを使ってGoogle Contacts に接続

OAuth フローでは認証するユーザーにブラウザでGoogle Contacts との通信を要求します。下記で説明するとおり、本製品 はさまざまな方法でこれをサポートします。

デスクトップアプリケーションからGoogle Contacts へ認証

InitiateOAuth を"GETANDREFRESH" に設定して、OAuthAccessToken 接続プロパティの生成やOAuth 交換の繰り返しを避けられます。 接続すると、&prodtype; はデフォルトブラウザでOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。

本製品 がOAuth プロセスを完了します。

  1. コールバックURL からアクセストークンを取得し、リクエストを認証します。
  2. アクセストークンの期限が切れたときにはリフレッシュしてください。
  3. 接続にわたり、OAuth 値が維持されるようにします。OAuthSettingsLocation でこのファイルを設定することができます。

Web アプリケーションからの認証

OAuthAccessToken を取得するには、アプリを登録して次の接続プロパティを設定します。

  • OAuthClientId:アプリケーション設定のクライアントID に設定。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。
Web アプリケーションから接続する場合、または本製品 にブラウザウィンドウを開く権限がない場合は、verifier code とアクセストークンを交換する必要があります。
  1. GetOAuthAuthorizationURL を呼び出します。ストアドプロシージャがOAuth エンドポイントのURL を返します。
  2. OAuth エンドポイントにログインして、アプリケーションを認可します。コールバックURL 経由でリダイレクトされます。

    verifier code は"Code" と名付けられたクエリ文字列パラメータとして、コールバックURL に追加されます。verifier code を取り出します。

  3. GetOAuthAccessToken を呼び出します。
OAuthAccessToken を設定し、データに接続します。

アクセストークンの期限が切れたときのリフレッシュには、GetOAuthAccessToken から返されたOAuthRefreshToken 値でRefreshOAuthAccessToken を呼び出します。

サービスアカウントを使って、Domain-Wide データに接続

このOAuth フローのサービスアカウントを使って、ユーザーもしくはドメインの代わりにGoogle API にアクセスすることができます。ドメイン管理者はドメイン全体のアクセスをサービスアカウントに委任する必要があります。

サービスアカウントフローを完了させるには、Google API Console で秘密キーを生成する必要があります。サービスアカウントフローでは、本製品 はOAuthAccessToken を取得し、サービスアカウントと同じGoogle API へのアクセススコープを持つことを可能にします。 本製品 はJSON Web token (JWT) を交換して、アクセストークンを取得します。秘密キーはJWT の署名に必要です。

秘密キーの生成

サービスアカウントから接続する場合は、次のステップに従います。

  1. Google API コンソールにログインしてプロジェクトを開きます。 メインメニューから[API マネージャー]を選択します。
  2. [認証情報]->[認証情報を作成]->[サービスアカウントキー]をクリックします。
  3. サービスアカウントメニューで[新しいサービスアカウント]か既存のサービスアカウントを選択します。
  4. 新しいサービスアカウントを作成している時には、追加で一つもしくは複数のロールを選択します。IAM およびAdmin セクションのプロジェクトレベルでプリミティブロールをアサインすることが可能です。他のロールでは、Google API へのカスタムアクセスを有効にできます。
  5. [キーのタイプ]で[P12 キー]を選択します。
  6. キーペアをダウンロードします。秘密キーのパスワードが表示されます。これは、OAuthJWTCertPassword 内にあります。
  7. クレデンシャルページのサービスアカウントキーセクションでは[Manage Service Accounts]をクリックして、OAuthJWTIssuer をサービスアカウントID で表示されたE メールアドレスに設定します。
  8. [ライブラリ]をクリックして、Drive、Calendar、Contacts API を有効にします。API を有効にするには、API をクリックし、[API を有効にする]をクリックします。

サービスアカウントで認証する

次の接続プロパティを設定して、接続してください。

  • InitiateOAuth:GETANDREFRESH に設定。InitiateOAuth を使って、OAuth 交換や、手動でのOAuthAccessToken 接続プロパティの設定の繰り返しを避けられます。
  • OAuthJWTCertType:"PFXFILE" に設定。
  • OAuthJWTCertPassword:.p12ファイルのパスワードに設定。
  • OAuthJWTCertSubject:"*" に設定すると、証明書ストアの1番目の証明書が選択されます。
  • OAuthJWTIssuer:サービスアカウントのE メールアドレスに設定。
  • OAuthJWTCert:.p12ファイルのパスに設定。
  • OAuthJWTSubject:アクセスの委譲を要求しているアプリケーションのユーザーのE メールアドレスを設定。
接続すると、本製品 はサービスアカウントでのOAuth フローを完了します。
  1. 本製品 に要求されるclaim set でJWT を作成し、サインします。
  2. JWT はアクセストークンと交換されます。
  3. トークンの期限が切れたときは、JWT を送り、新しいアクセストークンと交換します。

Copyright (c) 2020 CData Software, Inc. - All rights reserved.
Build 20.0.7654