ODBC Driver for Gmail

Build 23.0.8839

Linux DSN の構成

このセクションでは、以下のいくつかのLinux ディストリビューションでODBC 接続をセットアップしDSN を設定する方法を説明します:Ubuntu のようなDebian ベースのシステム、Red Hat Enterprise Linux (RHEL)、CentOS、およびFedora のようなRed Hat Linux プラットフォーム。

Linux の最小バージョン

Red Hat ベースおよびDebian ベースシステムでサポートされる最小バージョンは以下のとおりです。

OSMin. Version
Ubuntu11.04
Debian7
RHEL6.9
CentOS6.9
Fedora13
SUSE12.1

ドライバー依存関係のインストール

必要な依存関係をインストールするには、次のコマンドをルートとしてまたはsudo で実行します。

  • Debian/Ubuntu:
    apt-get install libc6 libstdc++6 zlib1g libgcc1
  • RHEL/CentOS/Fedora:
    yum install glibc libstdc++ zlib libgcc

本製品 が必要とする対応ライブラリは以下のとおりです。

Debian/Ubuntu PackageRHEL/CentOS/Fedora PackageFile
libc6glibclinux-vdso.1
libc6glibclibm.so.6
libc6glibclibrt.so.1
libc6glibclibdl.so.2
libc6glibclibpthread.so.0
libc6glibclibc.so.6
libc6glibcld-linux-x86-64.so.2
libstdc++6libstdc++libstdc++.so.6
zlib1gzliblibz.so.1
libgcc1libgcclibgcc_s.so.1

ドライバーのインストール

標準のパッケージ管理システムを使用してドライバーをインストールできます。

Ubuntu のようなDebian ベースのシステムでは、次のコマンドをroot またはsudo で実行します。

dpkg -i /path/to/driver/setup/GmailODBCDriverforUnix.deb 

RPM パッケージ形式をサポートするシステムでは、次のコマンドをroot またはsudo で実行します。

rpm -ivh /path/to/driver/GmailODBCDriverforUnix.rpm 

ドライバーのライセンス

次のコマンドを実行して本製品 のライセンスを取得します。評価版をアクティベートするには、<key> の入力を省略してください。

cd /opt/cdata/cdata-odbc-driver-for-gmail/bin/
sudo ./install-license.sh <key>

ドライバーマネージャー経由の接続

ドライバーマネージャーはドライバーをロードし、アプリケーションからドライバーに関数呼び出しを渡します。本製品 をドライバーマネージャーに登録して、ドライバーマネージャーのコンフィギュレーションファイルにDSN を定義する必要があります。

本製品 のインストールでは、本製品 をunixODBC ドライバーマネージャーに登録し、システムDSN を作成します。UnixODBC ドライバーマネージャーは、Python やその他多くのアプリケーションから使用できます。アプリケーションに別のドライバーマネージャーが組み込まれている可能性があります。

DSN の作成

unixODBC をインストールしてDSN を設定するには、unixODBC の使用 を参照してください。OBIEE、Informatica、およびSAS に接続するDSN を作成するには、DataDirect ドライバーマネージャーの使用 を参照してください。

Gmail への接続

本製品 は最新のREST API とIMAP プロトコルを使用したGmail への接続をサポートしています。AuthScheme を使用して接続方法を制御します。REST API がデフォルトです。

Gmail への認証

使用可能な認証スキームは次のとおりです。

  • Basic(IMAP のみ)
  • OAuth
  • OAuthJWT
  • GCP インスタンスアカウント

Basic(IMAP のみ)

IMAP を使用する場合は、ドライバーがIMAP プロトコルを介してGmail と通信できるようにIMAP を有効にする必要があります。IMAP を使用すると、すべてのクライアントデバイスで個々のコピーではなく、同じリモートデータを使用できます。以下の手順に従って、IMAP 経由のGmail へのアクセスを有効にします。

  1. Gmail Web インターフェースを開き、[設定]ボタン(歯車のアイコン)をクリックします。
  2. メール転送とPOP/IMAP タブでIMAP を有効にするを選択します。
  3. 変更を保存します。
非推奨のお知らせ 2022年5月30日時点で、Google はユーザー名とパスワードのみでGoogle アカウントにサインインするよう求めるサードパーティ製のアプリやデバイスの使用をサポートしなくなりました。この認証方法をまだ使えるようにする代替案もあります。例えば、App Passwords です。これを考慮して、Basic 認証を非推奨としました。CData では、よりセキュアな認証方法であるOAuth への切り替えをお勧めします。

この認証方法を使うには、AuthSchemeBasic に、SchemaIMAP に設定します。このアプローチは、自分のデータにアクセスする必要がある場合に適しています。User プロパティとPassword プロパティに、有効なGmail ユーザー資格情報を設定します。

ユーザーアカウント(OAuth)

AuthScheme は、すべてのユーザーアカウントフローでOAuth に設定する必要があります。加えて、すべてのユーザーアカウントフローで、Gmail にカスタムアプリケーションを作成し登録する必要があります。それから本製品 を使用してOAuth トークンの値を取得および管理します。カスタムアプリケーションについて詳しくは、カスタムOAuth アプリの作成 を参照してください。

NOTE: CData は、OAuth 認証でIMAP およびREST の両方のスキーマをサポートしています。唯一の違いは、IMAP はUser 接続プロパティを必要とすることです。REST では必要ありません。

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

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

  • OAuthClientId:カスタムOAuth アプリケーション設定のクライアントId に設定。
  • OAuthClientSecret:カスタムOAuth アプリケーション設定のクライアントシークレットに設定。
  • User:(IMAP のみ)認証に使用されるGmail ユーザーアカウントに設定。
接続すると、本製品 はデフォルトブラウザでOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。以下のように本製品 がOAuth プロセスを完了します。

  • コールバックURL からアクセストークンを取得します。
  • 古いトークンの期限が切れたときは、新しいアクセストークンを取得します。
  • OAuth 値をOAuthSettingsLocation に保存します。これらの値は接続間で永続化されます。

Web アプリケーション

OAuth アクセストークンの取得

次の接続プロパティを設定し、OAuthAccessToken を取得します。

  • OAuthClientId:アプリケーション設定のクライアントId に設定。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。
  • User:(IMAP のみ)認証に使用されるGmail ユーザーアカウントに設定。

続いてストアドプロシージャを呼び出し、OAuth 交換を完了します。

  1. GetOAuthAuthorizationURL ストアドプロシージャを呼び出します。CallbackURL インプットをアプリケーション設定で指定したコールバックURL に設定します。ストアドプロシージャがOAuth エンドポイントのURL を返します。
  2. ステップ1でストアドプロシージャが返したURL に移動します。カスタムOAuth アプリケーションにログインして、Web アプリケーションを認可します。認証されると、ブラウザはコールバックURL にリダイレクトします。
  3. GetOAuthAccessToken ストアドプロシージャを呼び出します。AuthMode をWEB に、Verifier インプットをコールバックURL のクエリ文字列の"code" パラメータに設定します。

アクセストークンとリフレッシュトークンを取得した後、データに接続し、OAuth アクセストークンを自動または手動でリフレッシュすることが可能です。

OAuth アクセストークンの自動リフレッシュ

ドライバーがOAuth アクセストークンを自動的にリフレッシュするようにするには、最初のデータ接続で次のように設定します。

  • InitiateOAuthREFRESH に設定。
  • OAuthClientId:アプリケーション設定のクライアントId に設定。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。
  • OAuthAccessTokenGetOAuthAccessToken によって返されたアクセストークンに設定。
  • OAuthRefreshTokenGetOAuthAccessToken によって返されたリフレッシュトークンに設定。
  • OAuthSettingsLocation:本製品 がOAuth トークン値を保存する場所に設定。これは接続間で維持されます。
  • User:(IMAP のみ)認証に使用されるGmail ユーザーアカウントに設定。
次回のデータ接続では、OAuthAccessToken およびOAuthRefreshToken の値は、OAuthSettingsLocation から取得されます。

OAuth アクセストークンの手動リフレッシュ

データ接続時に手動でOAuth アクセストークンをリフレッシュするために必要な値は、OAuth リフレッシュトークンのみです。

GetOAuthAccessToken によって返されたExpiresIn パラメータ値が経過した後に、RefreshOAuthAccessToken ストアドプロシージャを使用し、手動でOAuthAccessToken をリフレッシュします。次の接続プロパティを設定します。

  • OAuthClientId:アプリケーション設定のクライアントId に設定。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。
  • User:(IMAP のみ)認証に使用されるGmail ユーザーアカウントに設定。

次に、RefreshOAuthAccessToken を呼び出し、OAuthRefreshTokenGetOAuthAccessToken によって返されたOAuth リフレッシュトークンを指定します。新しいトークンが取得できたら、OAuthAccessToken プロパティにRefreshOAuthAccessToken によって返された値を設定し、新しい接続をオープンします。

最後に、OAuth リフレッシュトークンを保存し、OAuth アクセストークンの有効期限が切れた後に手動でリフレッシュできるようにします。

ヘッドレスマシン

ヘッドレスマシンのユーザーアカウントでOAuth を使用するようにドライバーを設定するには、インターネットブラウザに対応した別の端末で認証する必要があります。

  1. 以下のオプションから選択します。
    • オプション1:後述の「Verifier code を取得および交換」に従い、OAuthVerifier 値を取得します。
    • オプション2:インターネットブラウザに対応したマシンに本製品 をインストールし、後述の「OAuth 設定を転送」の説明に従い、通常のブラウザベースのフローで認証後にOAuth 認証値を転送します。
  2. 次に、ヘッドレスマシンからアクセストークンを自動的にリフレッシュするように本製品 を設定します。

オプション1:Verifier code を取得および交換

Verifier code を取得するには、OAuth Authorization URL で認証する必要があります。

インターネットブラウザに対応したマシンから認証してOAuthVerifier 接続プロパティを取得する方法は次のとおりです。

  1. 以下のプロパティを設定し、認証URL を作成します。
    • InitiateOAuthOFF に設定。
    • OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId に設定。
    • OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレットに設定。
    • User:(IMAP のみ)認証に使用されるGmail ユーザーアカウントに設定。
  2. 適切なCallbackURL を指定してGetOAuthAuthorizationURL ストアドプロシージャを呼び出します。ストアドプロシージャによって返されたURL をブラウザで開きます。
  3. ログインして、本製品 にアクセス許可を与えます。すると、verifier code を含むコールバックURL にリダイレクトされます。
  4. verifier code の値を保存します。後ほどこれをOAuthVerifier 接続プロパティに設定します。
次に、OAuth verifier code をOAuth リフレッシュトークンおよびアクセストークンと交換する必要があります。次のプロパティを設定します。

ヘッドレスマシンでは、次の接続プロパティを設定してOAuth 認証値を取得します。

  • InitiateOAuthREFRESH に設定。
  • OAuthVerifier:verifier code に設定。
  • OAuthClientId:カスタムOAuth アプリケーション設定のクライアントId に設定。
  • OAuthClientSecret:カスタムOAuth アプリケーション設定のクライアントシークレットに設定。
  • OAuthSettingsLocation:これを設定すると、暗号化されたOAuth 認証値が指定された場所に永続化されます。
  • User:(IMAP のみ)認証に使用されるGmail ユーザーアカウントに設定。

OAuth 設定ファイルが生成されたら、以下のように接続プロパティをリセットする必要があります。

  • InitiateOAuthREFRESH に設定。
  • OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId に設定。
  • OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレットに設定。
  • OAuthSettingsLocation:暗号化されたOAuth 認証値を含む場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所が本製品 に読み書きのアクセス許可を与えることを確認してください。

オプション2:OAuth 設定を転送

ヘッドレスマシンでの接続に先立ち、インターネットブラウザに対応したデバイスでドライバとの接続を作成し、インストールする必要があります。上述の「デスクトップアプリケーション」の説明に従って、接続プロパティを設定します。

「デスクトップアプリケーション」の手順が完了すると、生成された認証値は、OAuthSettingsLocation で指定された場所に暗号化されて書き込まれます。デフォルトのファイル名はOAuthSettings.txt です。

接続が正常にテストされたら、OAuth 設定ファイルをヘッドレスマシンにコピーします。

ヘッドレスマシンで、次の接続プロパティを設定し、データに接続します。

  • InitiateOAuthREFRESH に設定。
  • OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId に設定。
  • OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレットに設定。
  • OAuthSettingsLocation:OAuth 設定ファイルの場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所が本製品 に読み書きのアクセス許可を与えることを確認してください。
  • User:(IMAP のみ)認証に使用されるGmail ユーザーアカウントに設定。

サービスアカウント(OAuthJWT)

サービスアカウントを使用して認証するには、新しいサービスアカウントを作成し、アカウント証明書のコピーを用意する必要があります。サービスアカウントを持っていない場合は、カスタムOAuth アプリの作成 の手順に従って作成できます。 NOTE: OAuth JWT 認証方式では、委任が必要です。これは、Google Workspace アカウントを使用している場合のみ可能です。

JSON ファイルの場合は、以下のプロパティを設定します。

  • AuthSchemeOAuthJWT に設定。
  • OAuthJWTCertTypeGOOGLEJSON に設定。
  • OAuthJWTCert:Google が提供する.json ファイルへのパスに設定。
  • OAuthJWTSubject:(オプション)この値は、サービスアカウントがGSuite ドメインの一部で、ドメイン全体の委任を有効にする場合にのみ設定します。このプロパティの値は、データにアクセスしたいユーザーのE メールアドレスでなければなりません。ドメイン全体の委任の実装については、Google Workspace 管理者ヘルプを参照してください。

PFX ファイルの場合は、以下のプロパティを設定します。

  • AuthSchemeOAuthJWT に設定。
  • OAuthJWTCertTypePFXFILE に設定。
  • OAuthJWTCert:Google が提供する.pfx ファイルへのパスに設定。
  • OAuthJWTCertPassword:(オプション).pfx ファイルのパスワードに設定。Google はPFX 証明書を暗号化するため、ほとんどの場合、これを提供する必要があります。
  • OAuthJWTCertSubject:(オプション)複数の証明書を格納するOAuthJWTCertType を使用している場合にのみ設定します。Google によって生成されたPFX 証明書には設定しないでください。
  • OAuthJWTIssuer:サービスアカウントのE メールアドレスに設定。このアドレスには、通常iam.gserviceaccount.com ドメインが含まれます。
  • OAuthJWTSubject:(オプション)この値は、サービスアカウントがGSuite ドメインの一部で、ドメイン全体の委任を有効にする場合にのみ設定します。このプロパティの値は、データにアクセスしたいユーザーのE メールアドレスでなければなりません。ドメイン全体の委任の実装については、Google Workspace 管理者ヘルプを参照してください。
  • User:接続するGmail アカウントのユーザーに設定。

GCP インスタンスアカウント

GCP 仮想マシン上で実行している場合は、本製品 は仮想マシンに関連付けられたサービスアカウントを使用して認証できます。 このモードを使用するには、AuthSchemeGCPInstanceAccount に設定します。

OAuth 値のリフレッシュ

本製品 は、ブラウザベースのOAuth 認証交換中に取得されたテンポラリーOAuth アクセストークンをリフレッシュできます。デフォルトでは、本製品 は暗号化されたトークンを、DSN に対応するodbc.ini ファイルに保存します。System DSN の場合、このodbc.ini ファイルへのアクセスを制限できます。

トークンの自動交換を有効にするには、本製品 にシステムodbc.ini への書き込みアクセス権を与えます。または、OAuthSettingsLocation 接続プロパティを、ドライバーが読み書きアクセス権を持つ別のファイルパスに設定することもできます。

    OAuthSettingsLocation=/tmp/oauthsettings.txt
    

OAuth 認証の依存関係のインストール

OAuth 認証標準は、認証するユーザーにWeb ブラウザを使用したGmail との通信を要求します。最初のOAuth インタラクションがドライバーがインストールされている同じマシン上で行われる場合(例えばデスクトップアプリケーションの場合)、本製品 はデフォルトブラウザを立ち上げるxdg-open プログラムにアクセスする必要があります。

この依存関係を満たすには、パッケージマネージャーに対応するパッケージをインストールします。

Debian/Ubuntu PackageRHEL/CentOS/Fedora PackageFile
xdg-utilsxdg-utilsxdg-open

ドライバーエンコーディングの設定

ODBC ドライバーは、ODBC ドライバーマネージャーで使用するエンコーディングを指定する必要があります。デフォルトでは、Unix 用のCData ODBC ドライバーはunixODBC と互換性のあるUTF-16 を使用するように設定されていますが、他のドライバーマネージャーでは代替エンコーディングが必要な場合があります。

また、ANSI ODBC API を使用するアプリケーションからODBC ドライバーを使用している場合は、ANSI コードページを設定する必要があります。例えば、ANSI アプリケーションに日本語の文字をインポートするには、設定ファイル'/opt/cdata/cdata-odbc-driver-for-gmail/lib/cdata.odbc.gmail.ini' でコードページを指定できます。

[Driver]
AnsiCodePage = 932

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 23.0.8839