CData Python Connector for Google Spanner

Build 21.0.7930

OAuth の使用

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

埋め込みクレデンシャル

デスクトップアプリケーション

本製品 の埋め込みクレデンシャルに接続してカスタムOAuth アプリの作成をスキップするには、埋め込みクレデンシャル を参照してください。

ヘッドレスマシン

カスタムOAuth アプリの作成をスキップして、ヘッドレスサーバーまたは本製品 がブラウザを開く権限がない別のマシンで実行されているアプリケーションを認証するには、ヘッドレスマシン を参照してください。

カスタムクレデンシャル

本製品 の埋め込みクレデンシャルを使って接続する代わりに、アプリを登録してOAuthClientIdOAuthClientSecret を取得できます。

カスタムOAuth アプリを作成するタイミング

Web アプリケーション

Web フローでは、カスタムOAuth アプリを作成する必要があります。

デスクトップアプリケーション

本製品 はすでにGoogle Spanner に登録されており、埋め込みOAuth クレデンシャルで接続できるため、カスタムOAuth アプリの作成は任意です。 カスタムOAuth アプリを作成して、ユーザーがGoogle Spanner OAuth エンドポイントにログインして本製品 にアクセス権を与えるときに表示される情報を変更することもできます。

ヘッドレスマシン

カスタムOAuth アプリの作成は、ヘッドレスマシンを認証するには任意です。本製品 はすでにGoogle Spanner に登録されており、埋め込みOAuth クレデンシャルで接続できるからです。 ヘッドレスOAuth フローでは、ユーザーは別のマシン上のブラウザを介して認証を行う必要があります。カスタムOAuth アプリを作成して、ユーザーがGoogle Spanner OAuth エンドポイントにログインして本製品 にアクセス権を与えるときに表示される情報を変更することもできます。

カスタムOAuth アプリの作成

手順については、カスタムOAuth アプリの作成 を参照してください。

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

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

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

秘密キーの生成

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

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

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

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

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

Copyright (c) 2021 CData Software, Inc. - All rights reserved.
Build 21.0.7930