CData Python Connector for JSON

Build 22.0.8479

カスタムOAuth アプリの作成

本製品 は次のOAuth 認証フローを行います。

  • ユーザー同意フローにより、個々のユーザーが自分のデータに接続できます。
  • サービスアカウントフローを使用すると、ドメイン全体のデータにアクセスできます。

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

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

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

InitiateOAuth をGETANDREFRESH に設定して、接続してください。 InitiateOAuth を使って、OAuth 交換や、手動でのOAuthAccessToken接続プロパティの設定の繰り返しを避けられます。 接続すると、本製品 はデフォルトブラウザでOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。本製品 がOAuth プロセスを完了します。

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

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

Web アプリケーションから接続する場合、または本製品 にブラウザウィンドウを開く権限がない場合は、verifier code とアクセストークンを交換する必要があります。

始めるには、Google にOAuth アプリを登録して次の接続プロパティを設定します。

  • OAuthClientId:アプリケーション設定のクライアントID に設定。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。

アプリを登録してOAuthClientId およびOAuthClientSecret を設定したら、verifier code をアクセストークンと交換できます。

  1. GetOAuthAuthorizationURL を呼び出します。ストアドプロシージャがOAuth エンドポイントのURL を返します。
  2. OAuth エンドポイントにログインして、アプリケーションを認可します。コールバックURL 経由でリダイレクトされます。

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

  3. GetOAuthAccessToken を呼び出します。
データへの接続には、OAuthAccessToken を設定します。 アクセストークンの期限が切れたときは、RefreshOAuthAccessToken を呼び出します。

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

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

サービスアカウントフローを完了させるには、Google API Console で秘密キーを生成します。サービスアカウントフローにおいて、本製品 はOAuthAccessToken へのJSON Web Token (JWT) を交換します。秘密キーはJWT の署名に必要です。OAuthAccessToken が認証し、本製品 はサービスアカウントと同じアクセス許可が与えられます。

秘密キーの生成

下記の手順に従って、秘密キーを生成しアプリケーションのクレデンシャルを取得します。

  1. Google API コンソールにログインします。
  2. [プロジェクトの作成]をクリック、または既存のプロジェクトを選択します。
  3. API Manager で、[認証情報]->[認証情報を作成]->[サービスアカウントキー]をクリックします。サービスアカウントメニューで[新しいサービスアカウント]か既存のサービスアカウントを選択します。[キーのタイプ]で[P12 キー]を選択します。
  4. [作成]をクリックして、キーペアをダウンロードします。秘密キーのパスワードが表示されます。これは、OAuthJWTCertPassword 内にあります。
  5. クレデンシャルページのサービスアカウントキーセクションでは[Manage Service Accounts]をクリックして、OAuthJWTIssuer をサービスアカウントID で表示されたE メールアドレスに設定します。
  6. [ライブラリ]->[Google Drive API]->[有効にする]をクリックします。

サービスアカウント

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

  • InitiateOAuthGETANDREFRESH に設定。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) 2023 CData Software, Inc. - All rights reserved.
Build 22.0.8479