DSN レスコネクションの作成

一部の ODBC ツールは、データソース名 (DSN) を使用しない ODBC サーバーへの接続をサポートしています。これは DSN レスコネクションと呼ばれています。

ここでは、Virtual DataPort への DSN レスコネクションを作成するために使用する必要があるパラメーターを示します。

64 ビットクライアントからの DSN レスコネクション
DRIVER={DenodoODBC Unicode(x64)};UID=<user account>;PWD=<password of the user>;SERVER=<host name>;DATABASE=<database name>;PORT=9996;SSLmode=prefer;service=;krbsrvname=HTTP;UserAgent=<user agent>;ReadOnly=0;Protocol=7.4-1;FakeOidIndex=0;ShowOidColumn=0;RowVersioning=0;ShowSystemTables=0;ConnSettings=set+i18n+to+us%5fpst%3b;Fetch=100;Socket=4096;UnknownSizes=0;MaxVarcharSize=255;MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=0;Ksqo=0;UseDeclareFetch=1;TextAsLongVarchar=1;UnknownsAsLongVarchar=0;BoolsAsChar=0;Parse=0;CancelAsFreeStmt=0;ExtraSysTablePrefixes=dd_;LFConversion=1;UpdatableCursors=0;DisallowPremature=0;TrueIsMinus1=0;BI=0;ByteaAsLongVarBinary=0;UseServerSidePrepare=0;LowerCaseIdentifier=0;PreferLibpq=1;GssAuthUseGSS=0;XaOpt=3;UseKerberos=0
32 ビットクライアントからの DSN レスコネクション
DRIVER={DenodoODBC Unicode};UID=<user account>;PWD=<password of the user>;SERVER=<host name>;DATABASE=<database name>;PORT=9996;PWD=;SSLmode=prefer;service=;krbsrvname=HTTP;UserAgent=<user agent>;ReadOnly=0;Protocol=7.4-1;FakeOidIndex=0;ShowOidColumn=0;RowVersioning=0;ShowSystemTables=0;ConnSettings=set+i18n+to+us%5fpst%3b;Fetch=100;Socket=4096;UnknownSizes=0;MaxVarcharSize=255;MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=0;Ksqo=0;UseDeclareFetch=1;TextAsLongVarchar=1;UnknownsAsLongVarchar=0;BoolsAsChar=0;Parse=0;CancelAsFreeStmt=0;ExtraSysTablePrefixes=dd_;LFConversion=1;UpdatableCursors=0;DisallowPremature=0;TrueIsMinus1=0;BI=0;ByteaAsLongVarBinary=0;UseServerSidePrepare=0;LowerCaseIdentifier=0;PreferLibpq=1;GssAuthUseGSS=0;XaOpt=3;UseKerberos=0

上記の例について説明します。

  • 上記の例を使用するには、 <user account><password of the user><host name><database name> 、および <user agent> を置き換えます。デフォルトの ODBC ポートを変更した場合、9996 を Virtual DataPort の実際の ODBC ポートに置き換えます。

  • プロパティ DRIVER の値は、コネクションを 32 ビットクライアントまたは 64 ビットクライアントのいずれで作成するかに応じて、それぞれ {DenodoODBC Unicode} または {DenodoODBC Unicode(x64)} にする必要があります。

注釈

パラメーター名、等号記号、値、セミコロンなどの間にはスペースを挿入しないでください。

Kerberos 認証の使用

Kerberos 認証を使用して Virtual DataPort に接続するには、Denodo の管理者に Kerberos が Virtual DataPort 上で構成されている かどうかを確認してください。構成されていない場合、OAuth プロトコルを使用したコネクションは失敗します。

DSN レスコネクションで Kerberos 認証を使用するには、以下を考慮しながら、以前の一般的なテンプレートを使用します。

  1. パラメーター UIDPWD を削除します。

  2. パラメーター UseKerberos1 に設定します。

  3. SERVER プロパティの値は、Denodo サーバーの完全修飾ドメイン名である必要があります。つまり、Denodo サーバーの Kerberos 構成の [Server principal] フィールドが HTTP/denodo-prod.subnet1.contoso.com@CONTOSO.COM の場合、「 denodo-prod.subnet1.contoso.com 」と入力します。

  4. 通常、 krbsrvname はデフォルト値で問題ありません。この値はサーバーのサービスプリンシパル名の「サービスクラス」と一致している必要があります。たとえば、サーバーの Kerberos 設定の [Server Principal] フィールドの値が HTTP/denodo1.contoso.com@CONTOSO.COM の場合、krbsrvname の値は HTTP である必要があります。

OAuth 認証の使用

OAuth 認証を使用して Virtual DataPort に接続するには、Denodo の管理者に Virtual DataPort 上で OAuth が有効になっている かどうかを確認してください。有効になっていない場合、OAuth プロトコルを使用したコネクションは失敗します。

Denodo ODBC ドライバーでは、OAuth を使用する Denodo への接続に 2 つの経路を用意しています。選んだ経路に応じて、パラメーターなどをコネクション文字列に追加する必要があります。

経路 #1: アクセストークンを提供する OAuth 2.0 認証

クライアントアプリケーションは、OAuth アクセストークンを取得し、それをドライバーに渡します。その後、ドライバーはユーザー/パスワードの代わりにこのトークンを使用して、Virtual DataPort に接続します。

この経路は、Virtual DataPort に接続するためのアクセストークンを取得する機能を持つクライアントアプリケーションで使用することを想定したものです。このクライアントアプリケーションは、このアクセストークンを自身のため、またはアプリケーションのエンドユーザーのために取得できます。

この方法を使用するには、以下の手順に従って実施してください。

  1. 次のパラメーターを DNS レスコネクション文字列に追加します。

    • UseOAuth2: 0 または 1。OAuth 2.0 認証を有効にします。

    • AccessToken: クライアントアプリケーションから取得したアクセストークンを直接送信します。

  2. パラメーター UIDPWD を削除します。

経路 #2: リソース所有者パスワード資格情報による OAuth 2.0

クライアントアプリケーションに OAuth トークンを取得する機能がない場合、組織の ID プロバイダーが Resource Owner Password Credentials という OAuth フローをサポートしていれば、ドライバーがアプリケーションに代わってトークンを取得することができます。

この場合、ID プロバイダーに関する情報を使ってコネクションを構成できます。その情報は、ID プロバイダーにトークンをリクエストするための URL、ID プロバイダーに登録したアプリケーションのクライアント ID とクライアントシークレットなどです。

この方法を使用するには、以下の手順に従って実施してください。

  1. パラメーター UID および PWD の値を提供します。これらに対して、アクセストークンを取得するための ID プロバイダーの資格情報が提供されます。

  2. コネクション文字列に、以下のパラメーターを追加します。

OAuth 認証のパラメーター

プロパティ

意味

UseOAuth2

1 に設定します。OAuth 認証を使用してコネクションを開くようにドライバーに指示します。

TokenEndpoint

OAuth サーバーによって公開される URL。access_token をリクエストするために使用されます。例: https://login.microsoftonline.com/common/oauth2/token

ClientId

アプリケーションのクライアント ID。通常はクライアントアプリケーションを ID プロバイダーに登録するときに取得します。

ClientSecret

アプリケーションのクライアントシークレット

スコープ

リクエストされるスコープのアクセス許可のスペースで区切られたリスト。

ExtraParams

ドライバーが OAuth トークンを取得するために送信する HTTP リクエストの本文に追加されるパラメーター。このパラメーターの値の構文は param1=value1&param2=value2&... です。

UseIdToken``:

1 の場合、ドライバーは「id_token」を使用して認証を行います。 0 の場合は「access_token」を使用します。「OpenID Connect」のある環境では、 1 に設定してください。

OAuthSSLVerify

1 の場合、ドライバーは ID プロバイダーの SSL 証明書を検証します。 0 の場合は検証しません。デフォルト値は 1 です。