Linux DSN の構成
このセクションでは、以下のいくつかのLinux ディストリビューションでODBC 接続をセットアップしDSN を設定する方法を説明します:Ubuntu のようなDebian ベースのシステム、Red Hat Enterprise Linux (RHEL)、およびFedora のようなRed Hat Linux プラットフォーム。
Linux の最小バージョン
Red Hat ベースおよびDebian ベースシステムでサポートされる最小バージョンは以下のとおりです。
| OS | Min. Version |
| Ubuntu | 18.04 |
| Debian | 10 |
| RHEL | 8 |
| Fedora | 28 |
| SUSE | 15 |
ドライバー依存関係のインストール
必要な依存関係をインストールするには、次のコマンドをルートとしてまたは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/Dynamics365ODBCDriverforUnix.deb
RPM パッケージ形式をサポートするシステムでは、次のコマンドをroot またはsudo で実行します。
rpm -ivh /path/to/driver/Dynamics365ODBCDriverforUnix.rpm
ドライバーのライセンス
次のコマンドを実行して本製品 のライセンスを取得します。評価版をアクティベートするには、<key> の入力を省略してください。
cd /opt/cdata/cdata-odbc-driver-for-dynamics365/bin/
sudo ./install-license.sh <key>
ドライバーマネージャー経由の接続
ドライバーマネージャーはドライバーをロードし、アプリケーションからドライバーに関数呼び出しを渡します。本製品 をドライバーマネージャーに登録して、ドライバーマネージャーのコンフィギュレーションファイルにDSN を定義する必要があります。
本製品 のインストールでは、本製品 をunixODBC ドライバーマネージャーに登録し、システムDSN を作成します。UnixODBC ドライバーマネージャーは、Python やその他多くのアプリケーションから使用できます。アプリケーションに別のドライバーマネージャーが組み込まれている可能性があります。
DSN の作成
unixODBC をインストールしてDSN を設定するには、unixODBC の使用 を参照してください。OBIEE、Informatica、およびSAS に接続するDSN を作成するには、DataDirect ドライバーマネージャーの使用 を参照してください。
Microsoft Dynamics 365 への接続
Microsoft Dynamics 365 ドライバーは、以下のMicrosoft Dynamics 365 エディションへの接続をサポートしています。
- CustomerService
- FieldService
- FinOpsOnline (Default)
- FinOpsOnPremise
- HumanResources
- Marketing
- ProjectOperations
- Sales
Notes:
- Supply Chain Management はFinance and Operations と同一です。これらのいずれかに接続するには、Edition をFinOpsOnline またはFinOpsOnPremise のいずれかに設定します。
- Microsoft Dynamics 365 Business Central については、個別のMicrosoft Dynamics 365 Business Central ドライバーを使用してください。
接続するには、次のパラメータを設定します。
- RSBDynamics365_p_OrganizationURL:お使いのMicrosoft Dynamics 365 組織のURL。例えば、https://orgcb42e1d0.crm.dynamics.com。
- Edition:上記のエディション一覧に示すとおり。
Microsoft Dynamics 365 への認証
Microsoft Dynamics 365 は、Azure AD、Azure サービスプリンシパル、Azure マネージドID(MSI)を経由する認証をサポートします。これらはすべてOAuth 規格に基づきます。
Azure AD
Azure AD 経由で認証するには、Azure AD アプリケーションの作成 で説明するように、カスタムAzureAD アプリケーションを作成する必要があります。クライアントシークレットまたはJWT 証明書のいずれかで認証できます。接続するには、次のプロパティを設定します。
- AuthScheme:AzureAD。
- InitiateOAuth:GETANDREFRESH。この設定により、InitiateOAuth を使用することでAzureAD 交換の繰り返しや手動でのOAuthAccessToken 設定を避けられます。
- AzureTenant:接続するAzure テナント。
- OAuthClientId:カスタムアプリケーションの作成時に割り当てられたクライアントId。
- OAuthClientSecret(クライアントシークレットのみ):カスタムアプリケーションの作成時に割り当てられたクライアントシークレット。
- OAuthJWTCert(証明書のみ):JWT 証明書のストア。
- OAuthJWTCertType(証明書のみ):OAuthJWTCert で指定された証明書ストアの種類。
管理者の同意
管理者の同意とは、Azure AD テナントの管理者が、使用ケースに応じてカスタムアプリケーションに付与する権限を指します。 (CData ODBC Driver for Microsoft Dynamics 365 内の埋め込みアプリケーションには管理者の同意を必要とする権限は含まれていないため、管理者の同意はカスタムアプリケーションにのみ適用されます。)組織がAzure テナントの新しいOAuth アプリケーションを認可するために管理者の同意を必要とする場合、組織の誰かが初めてOAuth アプリケーションをインストールして使用するときは、組織の管理者が明示的にそのアプリケーションへのアクセスを許可する必要があることを意味します。
(組織はこの要件を無効にすることができます。)
管理者の同意の付与
Azure ポータルで新しいOAuth アプリケーションを作成する場合(Azure AD アプリケーションの作成 参照)には、そのアプリケーションに必要なアクセス許可を指定する必要があります。 新しいカスタムアプリケーションに管理者の同意が必要であることが分かっている場合は、管理者の同意が必要と表示されている権限を指定することから始めることができます。 (例えば、すべてのグループのアクセス許可には管理者の同意が必要です。)
管理者の同意を付与するには2つの方法があります。
- 管理者の同意を付与する最も簡単な方法は、管理者がportal.azure.com にログインして、アプリの登録で作成したアプリケーションに移動するだけです。 API のアクセス許可で、同意の付与をクリックします。 アプリケーションが作成されたテナントで必要なアクセス権限を付与します。
- 組織に複数のテナントがある場合、またはアプリケーションが組織外の他のテナントにアクセス許可を与える必要がある場合、GetAdminConsentURL を使用してAdmin Authorization URL を生成できます。 GetOAuthAuthorizationUrl とは異なり、このエンドポイントから返される重要な情報はありません。テナントがアクセスを許可すると、権限が付与されたことを確認するBoolean を返します。
管理者が同意を付与すると、通常通り認証が行われます。
クライアントクレデンシャル認証フロー
クライアントクレデンシャルは、直接ユーザー認証が行われないOAuth のフローを指します。代わりに、クレデンシャルはアプリケーション自体のためだけに作成されます。アプリケーションで実行されるすべてのタスクは、デフォルトユーザーコンテキストなしで実行されます。そのため、認証フローが標準とは少し違ったものになります。クライアントOAuth フローに関連するすべてのアクセス許可には、管理者の同意が必要です。 これは、CData ODBC Driver for Microsoft Dynamics 365 が埋め込まれたアプリケーションをクライアントOAuth フローでは使用できないことを意味します。クライアントクレデンシャルを使用するには、Azure AD アプリケーションの作成 で説明するように独自のOAuth アプリケーションを作成する必要があります。
これを行うには:
- portal.azure.com にログインします。
- アプリの登録 -> API のアクセス許可に移動します。
- Microsoft Graph アクセス許可を選択します。アクセス許可には2つの異なるアクセス許可セットがあります。委任されたアクセス許可とアプリケーションの許可です。 クライアントの資格情報認証時に使用されるアクセス許可は、[アプリケーションの許可]の下にあります。 インテグレーションに必要なアクセス許可を選択します。
接続するには、次のプロパティを設定します。
- InitiateOAuth:GETANDREFRESH。InitiateOAuth を使うと、OAuth 交換の繰り返しや、手動でのOAuthAccessToken 設定を避けられます。
- AzureTenant:接続するテナント。
- OAuthClientId:カスタムアプリケーションの作成時に割り当てられたクライアントId。
- OAuthClientSecret(クライアントシークレットのみ):カスタムアプリケーションの作成時に割り当てられたクライアントシークレット。
- OAuthJWTCert(証明書のみ):JWT 証明書のストア。
- OAuthJWTCertType(証明書のみ):OAuthJWTCert で指定された証明書ストアの種類。
Azure サービスプリンシパル
Azure AD のアクションは、ユーザーアカウントまたはサービスプリンシパルのいずれかで実行できます。サービスプリンシパルは、割り当てられたロールと権限に基づいてタスクを実行する、上位権限を持つ非インタラクティブアカウントです。 Azure サービスプリンシパルとしての認証は、OAuth クライアントクレデンシャルフローを介して処理されるため、ユーザーは関与しません。 Azure サービスプリンシパルとして認証するには、カスタムAzureAD サービスプリンシパルアプリの作成 で説明するように、カスタムAzureAD サービスプリンシパルアプリケーションを作成する必要があります。接続の準備ができたら、次のプロパティを設定します。
- AuthScheme: クライアントシークレットを使用する場合はAzureServicePrincipal、JWT 証明書を使用する場合はAzureServicePrincipalCert。
- InitiateOAuth:GETANDREFRESH。InitiateOAuth を使えば、繰り返しOAuth の交換を行ったり、手動でOAuthAccessToken を設定する必要はなくなります。
- AzureTenant:接続するテナント。
- OAuthClientId(クライアントシークレットのみ):アプリケーション設定のクライアントId。
- OAuthClientSecret(クライアントシークレットのみ):カスタムアプリケーションの作成時に割り当てられたクライアントシークレット。
- OAuthJWTCert(証明書のみ):JWT 証明書のストア。
- OAuthJWTCertType(証明書のみ):OAuthJWTCert で指定された証明書ストアの種類。
Managed Service Identity (MSI)
Azure VM 上でMicrosoft Dynamics 365 を実行しており、マネージドID(MSI)認証情報を自動的に取得して接続したい場合は、AuthScheme を AzureMSI に設定します。
User-Managed Identities
マネージドID のトークンを取得するには、OAuthClientId プロパティを使用してマネージドID のclient_id を指定します。VM に複数のユーザーが割り当てられたマネージドID がある場合は、OAuthClientId も指定する必要があります。
OAuth 値のリフレッシュ
本製品 は、ブラウザベースのOAuth 認証交換中に取得されたテンポラリーOAuth アクセストークンをリフレッシュできます。デフォルトでは、本製品 は暗号化されたトークンを、DSN に対応するodbc.ini ファイルに保存します。System DSN の場合、このodbc.ini ファイルへのアクセスを制限できます。
トークンの自動交換を有効にするには、本製品 にシステムodbc.ini への書き込みアクセス権を与えます。または、OAuthSettingsLocation 接続プロパティを、ドライバーが読み書きアクセス権を持つ別のファイルパスに設定することもできます。
OAuthSettingsLocation=/tmp/oauthsettings.txt
OAuth 認証の依存関係のインストール
OAuth 認証標準は、認証するユーザーにWeb ブラウザを使用したMicrosoft Dynamics 365 との通信を要求します。最初のOAuth インタラクションがドライバーがインストールされている同じマシン上で行われる場合(例えばデスクトップアプリケーションの場合)、本製品 はデフォルトブラウザを立ち上げるxdg-open プログラムにアクセスする必要があります。
この依存関係を満たすには、パッケージマネージャーに対応するパッケージをインストールします。
| Debian/Ubuntu Package | RHEL/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-dynamics365/lib/cdata.odbc.dynamics365.ini' でコードページを指定できます。
[Driver]
AnsiCodePage = 932