ODBC Driver for Salesforce

Build 24.0.9062

Linux DSN の構成

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

Linux の最小バージョン

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

OSMin. Version
Ubuntu18.04
Debian10
RHEL8
Fedora28
SUSE15

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

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

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

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

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

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

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

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

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

ドライバーのライセンス

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

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

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

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

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

DSN の作成

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

Salesforce への接続

デフォルトでは、本製品 は本番環境に接続します。

Salesforce sandbox アカウントを使用するには、UseSandboxtrue に設定し、User でsandbox ユーザーネームを指定してください。

Salesforce への認証

Salesforce は、ユーザー資格情報またはOAuth 標準による認証をサポートしています。

ユーザー資格情報

通常、ユーザー資格情報による認証では、セキュリティトークンを追加で使用する必要があります。セキュリティトークンは、Salesforce からのみ取得できます。セキュリティトークンを要求するには:

  1. Salesforce.com の[私の設定]->[個人用]->[私のセキュリティトークンのリセット]を開きます。
  2. [セキュリティトークンのリセット]をクリックします。トークンがE メールで送られます。
  3. SecurityToken 接続プロパティでセキュリティトークンを入力するか、Password に追加します。

セキュリティトークンの使用を不要にするには:

  1. Salesforce にログインして、[設定]セクションの[クイック検索]ボックスにNetwork Access を入力します。
  2. IP アドレスを信頼できるIP アドレスのリストに追加します。
接続の準備ができたら、次のパラメータを設定します。

  • AuthSchemeBasic
  • User:ユーザーのログインID。
  • Password:ユーザーのパスワード。
  • SecurityToken(オプション):Salesforce から取得したセキュリティトークン。

セキュリティトークンを使用せずに接続したい場合は、以下の手順でセキュリティトークンを無効にする必要があります。

  1. Salesforce にログインして、[設定]セクションの[クイック検索]ボックスにNetwork Access を入力します。
  2. IP アドレスを信頼できるIP アドレスのリストに追加します。

OAuth

Salesforce は埋め込みOAuth 認証情報を提供しており、デスクトップアプリケーション またはヘッドレスマシンからの接続を簡単にします。Web アプリケーションから接続するには、カスタムOAuth アプリケーションの作成 で説明するようにカスタムOAuth アプリケーションを作成する必要があります。

すべての認証フローで、OAuth 経由で接続するにはAuthSchemeOAuth に設定する必要があります。

以下のサブセクションでは、利用可能なOAuth フローでのSalesforce への認証について詳しく説明します。 カスタムOAuth アプリケーションの作成についての情報と、すでに埋め込みOAuth 認証情報を持つ認証フローでもカスタムOAuth アプリケーションを作成したほうがよい場合の説明については、カスタムOAuth アプリケーションの作成 を参照してください。

Salesforce で利用可能な接続文字列プロパティの全リストは、Connection を参照してください。

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

CData は、デスクトップでの認証を簡略化する埋め込みOAuth アプリケーションを提供します。

また、Salesforce コンソールで設定および登録するカスタムOAuth アプリケーションを介してデスクトップから認証することもできます。詳しくは、カスタムOAuth アプリケーションの作成 を参照してください。

接続する前に、次のプロパティを設定します。

  • OAuthClientId(カスタムアプリケーションのみ):カスタムOAuth アプリケーションの登録時に割り当てられたクライアントID。
  • OAuthClientSecret(カスタムアプリケーションのみ):カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。

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

ヘッドレスマシン

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

次のいずれかを実行します。

  • オプション1:OAuthVerifier 値を取得します(後述の「Verifier code を取得および交換」参照)。
  • オプション2:ブラウザに対応したマシンに本製品 をインストールし、通常のブラウザベースのフローで認証後にOAuth 認証値を転送します(後述の「OAuth 設定を転送」参照)。

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

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

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

  1. 以下のオプションから選択します。

    • 埋め込みOAuth 認証情報を使用する場合は、Salesforce OAuth endpoint をクリックし、ブラウザでエンドポイントを開きます。
    • カスタムOAuth アプリケーションを使用するには、以下のプロパティを設定し、認証URL を作成します。
      • InitiateOAuthOFF
      • OAuthClientId:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントId。
      • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。
      次に、適切なCallbackURL を指定してGetOAuthAuthorizationURL ストアドプロシージャを呼び出します。ストアドプロシージャによって返されたURL をブラウザで開きます。

  2. ログインして、本製品 にアクセス許可を与えます。すると、verifier code を含むコールバックURL にリダイレクトされます。
  3. verifier code の値を保存します。後ほどこれをOAuthVerifier 接続プロパティに設定します。
次に、OAuth verifier code をOAuth リフレッシュトークンおよびアクセストークンと交換する必要があります。次のプロパティを設定します。

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

  • InitiateOAuthREFRESH
  • OAuthVerifier:verifier code。
  • OAuthSettingsLocation:暗号化されたOAuth 認証値を指定された場所に永続化。
  • OAuthClientId(カスタムアプリケーションのみ):カスタムOAuth アプリケーション設定のクライアントId。
  • OAuthClientSecret(カスタムアプリケーションのみ):カスタムOAuth アプリケーション設定のクライアントシークレット。

OAuth 設定ファイルが生成されたら、次の接続プロパティをリセットします。

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

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

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

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

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

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

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

OAuth パスワードグラント

次の手順に従いパスワードグラントオプションを設定します。

  1. パスワードグラント種別で認証を行う場合は、AuthSchemeOAuthPassword に設定します。
  2. 上記のWeb またはデスクトップ認証セクションで指定されたすべてのプロパティを設定します。
  3. UserPassword をログイン資格情報に設定し、必要に応じてSecurityToken も設定します。

Note:セッションの設定 -> ログイン時のIP アドレスとセッションをロックするを有効にしている場合、本製品 の使用中にIP アドレスが変更されないことを確認してください。本製品 使用中にIP が変更された場合、Salesforce から"INVALID_SESSION_ID" エラーが返され、本製品 はデータを取得できなくなります。このエラーが表示された場合は、Salesforce 管理者にこの設定を無効にするよう依頼するか、本製品 を使用するインスタンスに固定IP を必ず設定してください。その後、接続をリセットして本製品 を使い続けます。

OAuthJWT 証明書

AuthSchemeOAuthJWT に設定します。

OAuthJWT

OAuthJWT コンシューマーキーを取得するには:

  1. Salesforce.com にログインします。
  2. [設定]で[クイック検索]ボックスにApps を入力し、リンクをクリックしてアプリを作成します。表示されたページの接続アプリケーションセクションで、新規をクリックします。
  3. ユーザーがアプリケーションにログイン認証をする際に表示されるアプリケーション名を入力します。連絡先E メールアドレスも入力します。
  4. OAuth 設定の有効化をクリックし、コールバックURL ボックスに値を入力します。この値は必要に応じて接続アプリケーションを作成する場合にのみ設定します。この種類の認証には、実際には必要ありません。 Callback URL は次の形式になります:
    http://localhost:8019/src/oauthCallback.rst
  5. デジタル署名を使用を有効にします。
  6. 証明書をアップロードします。
  7. アプリがユーザーに要求するアクセス許可の範囲を選択します。
  8. アプリケーション名をクリックしてアプリケーションの情報ページを開きます。OAuth コンシューマーキーが表示されます。

OAuth アプリケーション作成後、次の接続プロパティを設定します。

  • AuthScheme:OAuthJWT
  • InitiateOAuth:GETANDREFRESH
  • OAuthJWTCert:JWT 証明書のストア。
  • OAuthJWTCertType:OAuthJWTCert で指定された証明書ストアの種類。
  • OAuthJWTCertPassword:JWT 証明書ストアのパスワード。
  • OAuthJWTIssuer:OAuth クライアントID。
  • OAuthJWTSubject:OAuth 接続アプリケーションで設定した許可されたユーザープロファイルのユーザー名(E メールアドレス)。

Note: このフローではリフレッシュトークンは発行されません。

AzureAD

AuthSchemeAzureAD に設定します。 AzureAD に接続するには、次の接続プロパティを使用します。

  • SSOExchangeUrl:ID プロバイダーのSalesforce OAuth 2.0トークンエンドポイント。これは、Salesforce のアカウント設定で[管理者設定]->[セキュリティのコントロール]->[シングルサインオン設定]に移動し、目的の組織を選択することで確認できます。

この構成には、2つのAAD アプリケーションが必要であることに注意してください:シングルサインオンに使用される"Salesforce" アプリケーションと、"Salesforce" アプリケーションに対するuser_impersonation 権限を持つ別の"コネクタ" アプリケーションです。 OAuth 接続プロパティも指定する必要があります。

  • OAuthClientId:アプリ登録の概要セクションにリストされている、コネクタアプリケーションのアプリケーションId。
  • OAuthClientSecret:コネクタアプリケーションのクライアントシークレット値。新しいクライアントシークレットを作成すると、Azure AD にこれが表示されます。

以下のSSOProperties を使用して、AzureAD へ認証します。

  • Resource:アプリ登録の概要セクションにリストされている、Salesforce アプリケーションのアプリケーションId URI。ほとんどの場合、これはカスタムSalesforce ドメインのURL です。
  • AzureTenant:アプリケーションが登録されているAzure AD テナントのId。

以下は接続文字列の例です。

AuthScheme=AzureAD;InitiateOAuth=GETANDREFRESH;OAuthClientId=3ea1c786-d527-4399-8c3b-2e3696ae4b48;OauthClientSecret=xxx;SSOProperties='Resource=https://example.my.salesforce.com;AzureTenant=6ee709df-9de0-4cdf-10e6b7a51d95';

Okta

AuthSchemeOkta に設定します。Okta に接続するには、次の接続プロパティを使用します。

  • User:Okta ユーザー。
  • Password:Okta ユーザーのパスワード。
  • SSOLoginURL:SSO プロバイダーのログインURL。
  • SSOExchangeUrl:ID プロバイダーのSalesforce OAuth 2.0トークンエンドポイント。これは、Salesforce のアカウント設定で[管理者設定]->[セキュリティのコントロール]->[シングルサインオン設定]に移動し、目的の組織を選択することで確認できます。
SSOProperties で、必要に応じて以下の入力パラメータを設定します。
  • APIToken(オプション):顧客がOkta org から作成したAPI Token。Okta クライアントリクエストコンテキストをオーバーライドする、信頼されたアプリケーションまたはプロキシ経由でユーザーを認証する場合には、これを使用する必要があります。
  • MFAType(オプション):MFA フローを設定した場合のみ必須。現時点では、次のタイプのみをサポートしています:OktaVerify、Email、およびSMS。
  • MFAPassCode(オプション):MFA フローを設定した場合のみ必須。 空 / 無効に設定されている場合、ドライバーは最初にMFA チャレンジを発行し、設定されたMFA タイプに基づいてプラットフォームがデバイスまたはE メールでワンタイムパスワードを送信するようにトリガーします。 取得したワンタイムパスワードの値をMFAPassCode 接続プロパティに渡す別の接続を再発行する必要があります。

以下は接続文字列の例です。

AuthScheme=PingFederate;User=PingFederateUserName;Password=PingFederatePassword;URL='http://sharepointserver/mysite';

OneLogin

AuthSchemeOneLogin に設定します。OneLogin に接続するには、次の接続プロパティを使用します。

  • User:OneLogin ユーザー。
  • Password:OneLogin ユーザーのパスワード。
  • SSOExchangeUrl:ID プロバイダーのSalesforce OAuth 2.0トークンエンドポイント。これは、Salesforce のアカウント設定で[管理者設定]->[セキュリティのコントロール]->[シングルサインオン設定]に移動し、目的の組織を選択することで確認できます。
OneLogin へ認証するには、以下のSSOProperties が必要です。

  • OAuthClientId:OAuthClientId。まだ入手していない場合、Developers -> API Credentials -> Credential -> ClientId に移動して確認します。
  • OAuthClientSecret:OAuthClientSecret。まだ入手していない場合、Developers -> API Credentials -> Credential -> ClientSecret に移動して確認します。
  • Subdomain:SSO アプリにアクセスするOneLogin ユーザーのサブドメイン。例えば、OneLogin URL がsplinkly.onelogin.com の場合、サブドメインの値はsplinkly です。
  • AppId:SSO アプリのID。
  • Region(オプション):OneLogin アカウントで使用しているリージョン。OneLogin API は複数のリージョンで動作し、このプロパティは正しいドメインを見つけるために使用されます。有効な値はUS(デフォルト)およびEU です。

以下は接続文字列の例です。

AuthScheme=OneLogin;User=OneLoginUserName;Password=OneLoginPassword;SSOProperties='OAuthClientID=3fc8394584f153ce3b7924d9cd4f686443a52b;OAuthClientSecret=ca9257fd5cc3277abb5818cea28c06fe9b3b285d73d06;Subdomain=OneLoginSubDomain;AppId=1433920';

PingFederate

AuthSchemePingFederate に設定します。次の接続プロパティを設定する必要があります。

  • User:PingFederate ユーザー。
  • Password:PingFederate ユーザーのパスワード。
  • SSOLoginURL:SSO プロバイダーのログインURL。
  • SSOExchangeUrl: ID プロバイダーのSalesforce OAuth 2.0トークンエンドポイント。これは、Salesforce のアカウント設定で[管理者設定]->[セキュリティのコントロール]->[シングルサインオン設定]に移動し、目的の組織を選択することで確認できます。
SSOProperties のうちPingFederate への認証には以下があります。

  • AuthScheme(オプション):IdP エンドポイントに使われる認可スキーム。有効な値はNone またはBasic です。
次のSSOPropertiesを使って、SSOLoginURL 用の相互SSL 認証(WS-Trust STS エンドポイント)を設定することも可能です。
  • SSLClientCert
  • SSLClientCertType
  • SSLClientCertSubject
  • SSLClientCertPassword
以下は接続文字列の例です。
AuthScheme=PingFederate;User=pingFederateUser;Password=pingFederatePassword;SSOLoginURL='https://<authority>/idp/sts.wst';SSOExchangeUrl='https://domain.my.salesforce.com/services/oauth2/token?so=00D3000006JDF';

ADFS

AuthSchemeADFS に設定し、次のプロパティを設定します。

  • User:ADFS ユーザー。
  • Password:ADFS ユーザーのパスワード。
  • SSOLoginURL:SSO プロバイダーのログインURL。
  • SSOExchangeUrl:ID プロバイダーのSalesforce OAuth 2.0トークンエンドポイント。これは、Salesforce のアカウント設定で[管理者設定]->[セキュリティのコントロール]->[シングルサインオン設定]に移動し、目的の組織を選択することで確認できます。

ADFS へ認証するには、以下のSSOProperties が必要です。

  • RelyingParty:Salesforce のADFS サーバー上のRelying Party Identifier の値。
以下は接続文字列の例です。
AuthScheme=ADFS;User=username;Password=password;SSOLoginURL='https://sts.company.com';SSOProperties='RelyingParty=https://saml.salesforce.com';

ADFS 統合

ADFS 統合フローでは、現在ログインしているWindows ユーザーの資格情報で接続します。 ADFS 統合フローを使用するには、User およびPassword を指定せず、それ以外の設定は上記のADFS ガイドと同じ手順を実行してください。

OAuth 値のリフレッシュ

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

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

    OAuthSettingsLocation=/tmp/oauthsettings.txt
    

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

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

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

Debian/Ubuntu PackageRHEL/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-salesforce/lib/cdata.odbc.salesforce.ini' でコードページを指定できます。

[Driver]
AnsiCodePage = 932

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