Linux DSN の構成
このセクションでは、以下のいくつかのLinux ディストリビューションでODBC 接続をセットアップしDSN を設定する方法を説明します:Ubuntu のようなDebian ベースのシステム、Red Hat Enterprise Linux (RHEL)、CentOS、およびFedora のようなRed Hat Linux プラットフォーム。
Linux の最小バージョン
Red Hat ベースおよびDebian ベースシステムでサポートされる最小バージョンは以下のとおりです。
OS | Min. Version |
Ubuntu | 11.04 |
Debian | 7 |
RHEL | 6.9 |
CentOS | 6.9 |
Fedora | 13 |
SUSE | 12.1 |
ドライバー依存関係のインストール
必要な依存関係をインストールするには、次のコマンドをルートとしてまたはsudo で実行します。
- Debian/Ubuntu:
apt-get install libc6 libstdc++6 zlib1g libgcc1
- RHEL/CentOS/Fedora:
yum install glibc libstdc++ zlib libgcc
本製品 が必要とする対応ライブラリは以下のとおりです。
Debian/Ubuntu Package | RHEL/CentOS/Fedora Package | File |
libc6 | glibc | linux-vdso.1 |
libc6 | glibc | libm.so.6 |
libc6 | glibc | librt.so.1 |
libc6 | glibc | libdl.so.2 |
libc6 | glibc | libpthread.so.0 |
libc6 | glibc | libc.so.6 |
libc6 | glibc | ld-linux-x86-64.so.2 |
libstdc++6 | libstdc++ | libstdc++.so.6 |
zlib1g | zlib | libz.so.1 |
libgcc1 | libgcc | libgcc_s.so.1 |
ドライバーのインストール
標準のパッケージ管理システムを使用してドライバーをインストールできます。
Ubuntu のようなDebian ベースのシステムでは、次のコマンドをroot またはsudo で実行します。
dpkg -i /path/to/driver/setup/ExchangeODBCDriverforUnix.deb
RPM パッケージ形式をサポートするシステムでは、次のコマンドをroot またはsudo で実行します。
rpm -ivh /path/to/driver/ExchangeODBCDriverforUnix.rpm
ドライバーのライセンス
次のコマンドを実行して本製品 のライセンスを取得します。評価版をアクティベートするには、<key> の入力を省略してください。
cd /opt/cdata/cdata-odbc-driver-for-exchange/bin/
sudo ./install-license.sh <key>
ドライバーマネージャー経由の接続
ドライバーマネージャーはドライバーをロードし、アプリケーションからドライバーに関数呼び出しを渡します。本製品 をドライバーマネージャーに登録して、ドライバーマネージャーのコンフィギュレーションファイルにDSN を定義する必要があります。
本製品 のインストールでは、本製品 をunixODBC ドライバーマネージャーに登録し、システムDSN を作成します。UnixODBC ドライバーマネージャーは、Python やその他多くのアプリケーションから使用できます。アプリケーションに別のドライバーマネージャーが組み込まれている可能性があります。
DSN の作成
unixODBC をインストールしてDSN を設定するには、unixODBC の使用 を参照してください。OBIEE、Informatica、およびSAS に接続するDSN を作成するには、DataDirect ドライバーマネージャーの使用 を参照してください。
Microsoft Exchange への接続
Exchange への接続には2つのスキーマがあります。
- Exchange Web Services(EWS)は現在更新されていませんが、Exchange OnPremise とExchange Online の両方で利用できます。
Note:Microsoft は、Exchange Online ユーザーに対してMicrosoft Graph への切り替えを推奨しています。 - Microsoft Graph
それぞれのスキーマのデータモデルについては、[データモデル]を参照してください。
EWS とMicrosoft Graph を切り替えるには、Schema をEWS またはMSGraph に設定します。
EWS の使用を続けるExchange Online ユーザーは、Schema をEWS に設定し、Platform をExchange_Online に設定します。
Exchange OnPremise
Microsoft Exchange OnPremise のデフォルトでは、User、Password、およびAuthScheme を設定してBasic 認証をサポートします。しかし、 OnPremise はWindows(NTLM)、Kerberos(後述)による認証もサポートしています。
Exchange Online
Exchange Online は、以下で説明するようにOAuth による認証をサポートしています。(Azure AD およびAzure サービスプリンシパルは、認証にカスタムOAuth アプリケーションも使用します。)
EWS を介してExchange Online プラットフォームに接続する場合は、AuthScheme をAzureAD、AzureServicePrincipal、 AzureMSI のいずれかに設定します。
Microsoft Graph を介してExchange Online に接続する場合は、Schema をMSGraph に設定します。 Schema がMSGraph に設定されている場合、Platform は無視されます。
Microsoft Exchange への認証
Microsoft Exchange は、OAuth(Azure AD およびAzure サービスプリンシパル)、Managed Service Identity(MSI)、Kerberos を使用する認証をサポートします。OAuth
Azure AD およびAzure サービスプリンシパルは、どちらもOAuth ベースの認証を必要とします。
Azure AD
Azure AD は、Microsoft のマルチテナント、クラウドベースのディレクトリおよびID 管理サービスです。これはユーザーベースの認証で、AuthScheme をAzureAD に設定する必要があります。Microsoft Exchange は埋め込みOAuth クレデンシャルを提供しており、デスクトップアプリケーション またはヘッドレスマシンからの接続を簡単にします。Web アプリケーションから接続するには、カスタムOAuth アプリケーションの作成 で説明するようにカスタムOAuth アプリケーションを作成する必要があります。
すべての認証フローで、OAuth 経由で接続するにはAuthScheme をOAuth に設定する必要があります。
以下のサブセクションでは、該当するすべての認証フローからのMicrosoft Exchange への認証について詳しく説明します。 カスタムOAuth アプリケーションの作成についての情報と、すでに埋め込みOAuth 認証情報を持つ認証フローでもカスタムOAuth アプリケーションを作成したほうがよい場合の説明については、カスタムOAuth アプリケーションの作成 を参照してください。Microsoft Exchange で利用可能な接続文字列プロパティの全リストは、Connection を参照してください。
デスクトップアプリケーション
CData は、デスクトップでの認証を簡単にする埋め込みOAuth アプリケーションを提供します。例えば、ユーザーがインターネットに接続されていないローカルサーバーを使用しているような場合に利用できます。また、Microsoft Exchange コンソールで設定および登録するカスタムOAuth アプリケーションを介してデスクトップから認証することもできます。詳しくは、カスタムOAuth アプリケーションの作成 を参照してください。
接続の前に、以下の変数を設定します。
- InitiateOAuth: GETANDREFRESH。OAuthAccessToken を自動的に取得およびリフレッシュするために使用します。
CData は、デスクトップでの認証を簡単にする埋め込みOAuth アプリケーションを提供します。例えば、ユーザーがインターネットに接続されていないローカルサーバーを使用しているような場合に利用できます。
また、Microsoft Exchange コンソールで設定および登録するカスタムOAuth アプリケーションを介してデスクトップから認証することもできます。詳しくは、カスタムOAuth アプリケーションの作成 を参照してください。
- カスタムAzure AD アプリケーションのみ:
- OAuthClientId:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントId。
- OAuthClientSecret:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。
- CallbackURL:カスタムOAuth アプリケーションの登録時に定義されたリダイレクトURI。
接続すると、本製品 はデフォルトブラウザでMicrosoft Exchange のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。
アクセストークンの期限が切れたときは、本製品 は自動でアクセストークンをリフレッシュします。
ヘッドレスマシン
ヘッドレスマシンに置かれているリソースにログインする必要がある場合は、インターネットブラウザに対応した別の端末で認証する必要があります。 以下のいずれかの方法で行います。- 後述のVerifier code を取得および交換に従い、OAuthVerifier 値を取得します。
- 別のマシンに本製品 をインストールし、通常のブラウザベースのフローで認証した後でOAuth 認証値を転送します。
いずれかのオプションを実行後、ヘッドレスマシンからアクセストークンを自動的にリフレッシュするようにドライバーを設定します。
Verifier code を取得および交換
Verifier code を取得するには、インターネットブラウザがあるマシンからOAuth 認可URL で認証し、OAuthVerifier 接続プロパティを取得する必要があります。
- 以下のオプションから選択します。
- 埋め込みOAuth アプリケーションを使用する場合は、Microsoft Exchange OAuth endpoint をクリックし、ブラウザでエンドポイントを開きます。
- カスタムOAuth アプリケーションを使用する場合は、以下のプロパティを設定して認可URL を作成します。
- InitiateOAuth: OFF。
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId。
- OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレット。
- ログインして、本製品 にアクセス許可を与えます。verifier code を含むコールバックURL にリダイレクトされます。
- verifier code の値を保存します。後ほどこれをOAuthVerifier 接続プロパティに設定します。
OAuth 認証値を取得するには次のプロパティを設定します。
- InitiateOAuth: REFRESH。
- OAuthVerifier:verifier code。
- OAuthSettingsLocation:ドライバーがOAuth トークン値を保存するファイルの場所。これは接続間で維持されます。
- カスタムアプリケーションのみ:
- OAuthClientId:(カスタムアプリのみ)カスタムOAuth アプリケーション設定のクライアントId に設定。
- OAuthClientSecret:(カスタムアプリのみ)カスタムOAuth アプリケーション設定のクライアントシークレットに設定。
OAuth 設定ファイルが生成されたら、以下のように接続プロパティをリセットします。
- InitiateOAuth: REFRESH。
- OAuthSettingsLocation:暗号化されたOAuth 認証値が保存される場所。アクセストークンの自動リフレッシュを有効にするために、この場所が本製品 に読み書きのアクセス許可を与えることを確認してください。
- カスタムアプリケーションのみ:
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId。
- OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレット。
OAuth 設定を転送
ヘッドレスマシンでの接続に先立ち、インターネットブラウザに対応したデバイスでドライバーとの接続を作成し、インストールする必要があります。上述の「デスクトップアプリケーション」の説明に従って、接続プロパティを設定します。
「デスクトップアプリケーション」の手順が完了すると、生成された認証値は、OAuthSettingsLocation で指定された場所に暗号化されて書き込まれます。デフォルトのファイル名はOAuthSettings.txt です。
接続が正常にテストされたら、OAuth 設定ファイルをヘッドレスマシンにコピーします。
ヘッドレスマシンで、次の接続プロパティを設定し、データに接続します。
- InitiateOAuth: REFRESH。
- OAuthSettingsLocation:OAuth 設定ファイルの場所。アクセストークンの自動リフレッシュを有効にするために、この場所が本製品 に読み書きのアクセス許可を与えることを確認してください。
- カスタムアプリケーションのみ:
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId。
- OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレット。
Azure サービスプリンシパル
Azure サービスプリンシパルは、ロールに基づいたアプリケーションベースの認証です。これは、認証がユーザーごとではなく、アプリケーションごとに行われることを意味します。 アプリケーションで実行されるすべてのタスクは、デフォルトユーザーコンテキストなしで、割り当てられたロールに基づいて実行されます。 リソースへのアプリケーションのアクセスは、割り当てられたロールの権限によって制御されます。Azure サービスプリンシパル認証の設定方法については、カスタムOAuth アプリケーションの作成 を参照してください。
クライアントシークレットによる認証
OAuth は、認証のためのクライアント資格情報の使用をサポートします。クライアント資格情報のOAuth フローでは、認証するアプリケーション自身の資格情報が作成されます。認証フローは通常の認証フローと同じように動作しますが、関連するユーザーに対して資格情報の提供を求めるプロンプトは表示されません。 アプリケーションで受理されるすべてのタスクは、デフォルトユーザーコンテキストなしで実行されます。Note: 埋め込まれたOAuth 資格情報はユーザーごとに認証されるため、クライアントOAuth フローで使用することはできません。 クライアント資格情報を使用するには、必ずカスタムOAuth アプリケーションを作成する必要があります。
クライアント資格情報で認証するには、カスタムOAuth アプリケーションを使用する必要があります。詳しくは、カスタムOAuth アプリケーションの作成 を参照してください。
次のパラメータを設定して、接続してください。
- AuthScheme:AzureServicePrincipal。
- InitiateOAuth:GETANDREFRESH。InitiateOAuth を使うと、OAuth 交換の繰り返しや、手動でのOAuthAccessToken 設定を避けられます。
- AzureTenant:接続するテナント。
- OAuthGrantType:CLIENT。
- OAuthClientId:アプリケーション設定のクライアントId。
- OAuthClientSecret:アプリケーション設定のクライアントシークレット。
クライアント資格情報での認証は、他の接続同様に自動的に行われますが、ユーザーにログインを促すウィンドウは表示されません。ユーザーコンテキストがないため、ブラウザのポップアップは必要ないからです。接続は内部で行われ、処理されます。
Managed Service Identity (MSI)
Azure VM 上でMicrosoft Exchange を実行しており、MSI を利用して接続したい場合は、AuthScheme をAzureMSI に設定します。
User-Managed Identities
マネージドID のトークンを取得するには、OAuthClientId プロパティを使用してマネージドID の"client_id" を指定します。VM に複数のユーザーが割り当てられたマネージドID がある場合は、OAuthClientId も指定する必要があります。
Kerberos
Kerberos 経由でMicrosoft Exchange への認証を行うには、認証プロパティを定義し、Kerberos が認証チケットを取得する方法を選択する必要があります。Kerberos を使用してMicrosoft Exchange への認証を行うには、次のプロパティを設定します。
- hive.server2.authentication: Kerberos。
- AuthScheme:NEGOTIATE。
- KerberosKDC:Kerberos KDC マシンのホスト名またはIP アドレス。
- KerberosRealm:Microsoft Exchange Kerberos プリンシパルのレルム。この値は、主たる値の'@' 記号のすぐ後にあります。
- KerberosSPN:Microsoft Exchange のKerberos プリンシパルのサービスとホスト。この値は、主たる値の'@' 記号のすぐ前にあります。
Kerberos をMicrosoft Exchange 環境で使用する方法の詳細については、Kerberos の使用 を参照してください。
OAuth 値のリフレッシュ
本製品 は、ブラウザベースのOAuth 認証交換中に取得されたテンポラリーOAuth アクセストークンをリフレッシュできます。デフォルトでは、本製品 は暗号化されたトークンを、DSN に対応するodbc.ini ファイルに保存します。System DSN の場合、このodbc.ini ファイルへのアクセスを制限できます。
トークンの自動交換を有効にするには、本製品 にシステムodbc.ini への書き込みアクセス権を与えます。または、OAuthSettingsLocation 接続プロパティを、ドライバーが読み書きアクセス権を持つ別のファイルパスに設定することもできます。
OAuthSettingsLocation=/tmp/oauthsettings.txt
OAuth 認証の依存関係のインストール
OAuth 認証標準は、認証するユーザーにWeb ブラウザを使用したMicrosoft Exchange との通信を要求します。最初のOAuth インタラクションがドライバーがインストールされている同じマシン上で行われる場合(例えばデスクトップアプリケーションの場合)、本製品 はデフォルトブラウザを立ち上げるxdg-open プログラムにアクセスする必要があります。
この依存関係を満たすには、パッケージマネージャーに対応するパッケージをインストールします。
Debian/Ubuntu Package | RHEL/CentOS/Fedora Package | File |
xdg-utils | xdg-utils | xdg-open |
ドライバーエンコーディングの設定
ODBC ドライバーは、ODBC ドライバーマネージャーで使用するエンコーディングを指定する必要があります。デフォルトでは、Unix 用のCData ODBC ドライバーはunixODBC と互換性のあるUTF-16 を使用するように設定されていますが、他のドライバーマネージャーでは代替エンコーディングが必要な場合があります。
また、ANSI ODBC API を使用するアプリケーションからODBC ドライバーを使用している場合は、ANSI コードページを設定する必要があります。例えば、ANSI アプリケーションに日本語の文字をインポートするには、設定ファイル'/opt/cdata/cdata-odbc-driver-for-exchange/lib/cdata.odbc.exchange.ini' でコードページを指定できます。
[Driver]
AnsiCodePage = 932