ODBC Driver for GraphQL

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/GraphQLODBCDriverforUnix.deb 

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

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

ドライバーのライセンス

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

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

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

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

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

DSN の作成

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

GraphQL への接続

接続するには以下を設定します。

  • URL:GraphQL のURL を指定。例:https://api.example.com/graphql
  • Location:GraphQL サービスのカスタム定義スキーマを含むファイルパスに設定。

GraphQL への認証

ドライバーは次の認証をサポートします。

  • Basic
  • OAuth 1.0 & 2.0
  • OAuthPKCE
  • AWS Cognito クレデンシャル:
    • AwsCognitoSrp
    • AwsCognitoBasic

Basic

AuthScheme をBasic に設定。GraphQL のUserPassword を指定する必要があります。

OAuth

すべてのOAuth フローでAuthSchemeOAuth に、OAuthVersion を1.0または2.0に設定する必要があります。以下のセクションは、すでに設定済みであることを前提として書かれています。

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

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

  • OAuthRequestTokenURL:OAuth 1.0 に必要です。これはアプリケーションがリクエストトークンをリクエストするURL です。
  • OAuthAuthorizationURL:OAuth 1.0 および2.0 に必要です。これは、ユーザーがサービスにログインして、アプリケーションにアクセス許可を与えるURL です。OAuth 1.0 では、権限が与えられるとリクエストトークンが認可されます。
  • OAuthAccessTokenURL:OAuth 1.0 および2.0 に必要です。これは、アクセストークンがリクエストされるURL です。OAuth 1.0 では、認可されたリクエストトークンはアクセストークンと交換されます。
  • OAuthRefreshTokenURL:OAuth 2.0 に必要です。OAuth 2.0 では、古いトークンの期限が切れたときは、このURL でリフレッシュトークンを新しいアクセストークンと交換します。データソースによっては、アクセストークンと同じURL である場合がありますので、注意してください。
  • OAuthClientId:アプリケーション設定のクライアントId に設定。これはコンシューマーキーとも呼ばれます。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。これはコンシューマーシークレットとも呼ばれます。
  • CallbackURLhttp://localhost:33333 に設定。アプリケーション設定でリダイレクトURL を指定した場合には、一致している必要があります。
接続すると、本製品 はデフォルトブラウザでOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。本製品 がOAuth プロセスを完了します。

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

ヘッドレスマシン

ヘッドレスサーバーや、本製品 がブラウザを開くことができないその他のマシンにGraphQL データソースを作成するには、別のマシンから認証を行う必要があります。認証は、2段階認証プロセスになります。

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

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

ヘッドレスマシンで次のプロパティを設定します。

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

別のマシンから認証してOAuthVerifier 接続プロパティを取得する方法は次のとおりです。

  1. CallbackURL 入力パラメータを、アプリケーション設定で指定した正確なリダイレクトURI に設定してGetOAuthAuthorizationURL ストアドプロシージャを呼び出します。
  2. OAuthVersion が1.0に設定されている場合は返されたAuthToken およびAuthKey の値を保存します。これらは次のステップで使用します。
  3. 返されたURL をブラウザで開きます。ログインして、本製品 にアクセス許可を与えます。すると、verifier code を含むコールバックURL にリダイレクトされます。
  4. verifier code の値を保存します。後ほどこれをOAuthVerifier 接続プロパティに設定する必要があります。

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

  • OAuthRequestTokenURL:OAuth 1.0 に必要です。OAuth 1.0 では、これがアプリケーションがリクエストトークンをリクエストするURL です。
  • OAuthAuthorizationURL:OAuth 1.0 および2.0 に必要です。これは、ユーザーがサービスにログインして、アプリケーションにアクセス許可を与えるURL です。OAuth 1.0 では、権限が与えられるとリクエストトークンが認可されます。
  • OAuthAccessTokenURL:OAuth 1.0 および2.0 に必要です。これは、アクセストークンがリクエストされるURL です。OAuth 1.0 では、認可されたリクエストトークンはアクセストークンと交換されます。
  • OAuthRefreshTokenURL:OAuth 2.0 に必要です。OAuth 2.0 では、古いトークンの期限が切れたときは、このURL でリフレッシュトークンを新しいアクセストークンと交換します。データソースによっては、アクセストークンと同じURL である場合がありますので、注意してください。
  • OAuthClientId:アプリケーション設定のクライアントId に設定。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。
  • CallbackURLhttp://localhost:33333 に設定。アプリケーション設定でリダイレクトURL を指定した場合には、一致している必要があります。

データへの接続

OAuth 設定ファイルが生成されたら、次のプロパティを設定してデータに接続します。

  • OAuthSettingsLocation:暗号化されたOAuth 認証値を含む場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所がプロバイダーに読み書きのアクセス許可を与えることを確認してください。
  • InitiateOAuth:REFRESH に設定。

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

別のマシンに本製品 をインストールして認証し、結果のOAuth 値を転送する方法は次のとおりです。

セカンドマシンに、本製品 をインストールして、次の接続プロパティセットで接続します。

  • OAuthSettingsLocation:書き込み可能な場所に設定。
  • OAuthClientId:アプリケーション設定のクライアントId に設定。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。
  • CallbackURL:アプリケーション設定のコールバックURL に設定。

認証する接続をテストします。生成された認証値は、OAuthSettingsLocation で指定された場所に暗号化されて書き込まれます。接続テストに成功したら、OAuth 設定ファイルをヘッドレスマシンにコピーします。ヘッドレスマシンで、次の接続プロパティを設定し、データに接続します。

  • InitiateOAuthREFRESH に設定。
  • OAuthSettingsLocation:OAuth 設定ファイルの場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所が本製品 に読み書きのアクセス許可を与えることを確認してください。

OAuthPKCE

NOTE:OAuth Proof Key for Code Exchange (PKCE) は、OAuth 2.0 Authorization Code フローの拡張機能です。

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

以下を設定して、接続してください。

  • AuthSchemeOAuthPKCE に設定。
  • InitiateOAuth:GETANDREFRESH に設定すると、手動でのOAuth 交換や接続文字列のアクセストークン設定を避けられます。
  • OAuthClientId:GraphQL サービスでOAuth アプリケーションを作成する際に生成されたクライアントId に設定。
  • OAuthAuthorizationURL:GraphQL サービスの認可URL に設定。これは、ユーザーがサービスにログインして、OAuth アプリケーションにアクセス許可を与えるURL です。例:https://api.example.com/authorize
  • OAuthAccessTokenURL:GraphQL サービスのアクセストークンURL に設定。これは、アクセストークンがリクエストされるURL です。例:https://api.example.com/token
  • OAuthRefreshTokenURL:GraphQL サービスのリフレッシュトークンURL に設定。古いトークンの期限が切れたときは、このURL でリフレッシュトークンを新しいアクセストークンと交換します。データソースによっては、OAuthAccessTokenURL と同一の場合がありますので、留意してください。

接続すると、本製品 はデフォルトブラウザでOAuth 認可エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。本製品 がOAuth プロセスを完了します。

  1. 認可コードをコールバックURL から取得します。
  2. 認可コードをアクセストークンおよびリフレッシュトークンに交換します。
  3. アクセストークンの期限が切れたときにはリフレッシュしてください。
  4. OAuth 値を保存します。これらの値は接続間で永続化されます。

AWS Cognito クレデンシャル

AWS Cognito のユーザープールに登録されたユーザーで本製品 を使用する場合は、以下のプロパティを設定して認証してください。

  • AuthSchemeAwsCognitoSrp に設定(推奨)。また、AwsCognitoBasic を使用することもできます。
  • AWSCognitoRegion:ユーザープールのリージョンに設定。
  • AWSUserPoolId:ユーザープールのId に設定。
  • AWSUserPoolClientAppId:ユーザープールのアプリクライアントId に設定。
  • AWSUserPoolClientAppSecret:ユーザープールのクライアントシークレットに設定。
  • AWSIdentityPoolId:ユーザープールとリンクしているID プールのId に設定。
  • User:ユーザープールに登録されているユーザーのユーザー名に設定。
  • Password:ユーザープールに登録されているユーザーのパスワードに設定。

OAuth 値のリフレッシュ

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

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

    OAuthSettingsLocation=/tmp/oauthsettings.txt
    

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

OAuth 認証標準は、認証するユーザーにWeb ブラウザを使用したGraphQL との通信を要求します。最初の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-graphql/lib/cdata.odbc.graphql.ini' でコードページを指定できます。

[Driver]
AnsiCodePage = 932

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