ODBC Driver for Microsoft Dynamics 365 Business Central

Build 24.0.8963

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

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

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

ドライバーのライセンス

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

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

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

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

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

DSN の作成

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

Microsoft Dynamics 365 Business Central への接続

クラウドエンドポイント

データに接続するには、OrganizationUrl を指定します。OrganizationUrl は、以下のいずれかです。

  • https://businesscentral.dynamics.com/abc123/ などのBusiness Central アカウントへのエンドポイント。
  • Web サービスのルート。
  • カスタムAPI のベースURL。

オンプレミスエンドポイント

以下はオンプレミスのエンドポイントの例です。

https://base URL:port/serverinstance/api/API publisher/API group/API version/
https://base URL:port//serverinstance/ODataV4  
https://myInstance/.local:7048/BC220/ODataV4
URL はデフォルトでブロックされているため、管理者がアクセスを許可する必要があります。

OrganizationUrl を指定する方法、および利用可能なエンドポイントについては、Business Central エンドポイント を参照してください。

組織内に複数の会社がある場合は、Company を指定して接続先の会社を特定できます。 Company を空白のままにすると、本製品 はすべての会社を個別のスキーマとして取得します。

ユーザーおよびアクセスキー

Note: クラウド版ではユーザーおよびアクセスキー認証はサポート対象外となりました。 Web Service Access Key(Basic 認証)は、オンプレミスインスタンスでは引き続きサポートされています。

Microsoft では、テストや開発にはユーザーおよびアクセスキーの使用を推奨していますが、本番環境での使用は推奨していません。

User およびAccessKey の値を取得するには、Microsoft Dynamics 365 Business Central の[ユーザー]ページに移動して[編集]をクリックします。User Name および Web Service Access Key の値は、User およびPassword 接続文字列プロパティとして入力する値です。User Name はE メールアドレス ではありません。短縮されたユーザー名です。

アクセスキー認証を使用するには、次のプロパティを設定します。

  • AuthSchemeアクセスキー
  • User:ログインユーザー名。
  • AccessKey:アクセスキー。

Microsoft Dynamics 365 Business Central への認証

Microsoft Dynamics 365 Business Central データソースを認証する前に、OrganizationUrl を接続先の組織のURL に設定する必要があります。 v1とv2のどちらを使用しているかによって、見え方が異なります。 OrganizationUrl の各種フォーマットについては、Business Central エンドポイント を参照してください。

以下のいずれかの方法で、Microsoft Dynamics 365 Business Central への認証を行うことができます。

アクセスキー

User およびAccessKey を設定し、Microsoft Dynamics 365 Business Central データソースへ認証します。

Azure AD

Azure AD は、Microsoft のマルチテナント、クラウドベースのディレクトリおよびID 管理サービスです。これはユーザーベースの認証で、AuthSchemeAzureAD に設定する必要があります。

Web アプリケーションを介したAzure AD への認証には、必ずカスタムOAuth アプリケーションの作成が必要です。詳細はAzure AD アプリケーションの作成 を参照してください。

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

CData は、デスクトップアプリケーションからAzure AD への接続を簡略化する埋め込みOAuth アプリケーションを提供します。

カスタムOAuth アプリケーションを使用して、デスクトップアプリケーションで認証することもできます。(詳しくは、Azure AD アプリケーションの作成 を参照してください。) Azure AD 経由で認証するには、以下のパラメータを設定します。

  • AuthSchemeAzureAD
  • カスタムアプリケーションのみ:

    • OAuthClientId:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントId。
    • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。
    • CallbackURL:カスタムOAuth アプリケーションの登録時に定義したリダイレクトURI。

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

本製品 はOAuth プロセスを完了し、Microsoft Dynamics 365 Business Central からアクセストークンを取得してそれを使ってデータをリクエストします。 OAuth 値はOAuthSettingsLocation で指定されたパスに保存されます。これらの値は接続間で永続化されます。

アクセストークンの期限が切れたときは、本製品 は自動でアクセストークンをリフレッシュします。

ヘッドレスマシン

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

以下のいずれかの方法で行います。

  • 後述のオプション1:Verifier code を取得および交換に従い、OAuthVerifier 値を取得します。
  • 後述のオプション2:OAuth 設定を転送で説明するように、本製品 を別のマシンにインストールします。通常のブラウザベースのフローで認証した後、OAuth 認証値を転送します。

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

  1. 認可エンドポイントを見つけます。

    カスタムアプリケーションのみ: 次のプロパティを設定して、Authorization URL を作成します。

    • OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId。
    • OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレット。

    カスタムアプリケーションおよび埋め込みアプリケーション:GetOAuthAuthorizationUrl ストアドプロシージャを呼び出します。

    1. ストアドプロシージャによって返されたURL をブラウザで開きます。
    2. ログインして、本製品 にアクセス許可を与えます。verifier code を含むコールバックURL にリダイレクトされます。
    3. verifier code の値を保存します。この値は後でOAuthVerifier 接続プロパティを設定する際に使用します。

  2. OAuth verifier code をOAuth リフレッシュトークンおよびアクセストークンと交換します。

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

    • AuthSchemeAzureAD
    • OAuthVerifier:verifier code。
    • OAuthSettingsLocation:接続間で維持されるOAuth トークンの値を保存するファイルの場所。
    • カスタムアプリケーションのみ:

      • OAuthClientId:カスタムOAuth アプリケーション設定のクライアントId。
      • OAuthClientSecret:カスタムOAuth アプリケーション設定のクライアントシークレット。

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

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

      • OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId。
      • OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレット。

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

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

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

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

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

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

    • OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId。
    • OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレット。

Azure サービスプリンシパル

サービスプリンシパルは、Azure AD アプリケーション内のセキュリティオブジェクトであり、特定のAzure AD テナント内でそのアプリケーションができることを定義します。 サービスプリンシパルは、Azure サービスポータルで作成します。 作成プロセスの過程で、サービスプリンシパルがクライアントシークレットまたは証明書のどちらを経由してAzure AD リソースにアクセスするかも指定します。

サービスプリンシパルの権限は、特定のユーザーに紐づくのではなく、割り当てられたロールに基づきます。 リソースへのアプリケーションのアクセスは、割り当てられたロールの権限によって制御されます。

Azure サービスプリンシパルを使用して認証する場合、サービスプリンシパルによるAzure AD アプリケーションの作成 で説明するようにAzure AD テナントにアプリケーションを登録する必要があります。

次のサブセクションで説明するプロパティを設定すれば、接続の準備は完了です。これらは、クライアントシークレットで認証するか、証明書で認証するかによって異なります。

クライアントシークレットによる認証

  • AuthSchemeAzureServicePrincipal
  • AzureTenant:接続するAzure AD テナント。
  • OAuthGrantTypeCLIENT
  • OAuthClientId:アプリケーション設定のクライアントId。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレット。

証明書による認証

  • AuthSchemeAzureServicePrincipalCert
  • AzureTenant:接続するAzure AD テナント。
  • OAuthGrantTypeCLIENT
  • OAuthClientId:アプリケーション設定のクライアントId。
  • OAuthJWTCert:JWT 証明書のストア。
  • OAuthJWTCertType:JWT 証明書ストアの種類。

Managed Service Identity (MSI)

Azure VM 上でMicrosoft Dynamics 365 Business Central を実行しており、MSI を利用して接続したい場合は、AuthSchemeAzureMSI に設定します。

User-Managed Identities

マネージドID のトークンを取得するには、OAuthClientId プロパティを使用してマネージドID の"client_id" を指定します。

VM に複数のユーザーが割り当てられたマネージドID がある場合は、OAuthClientId も指定する必要があります。

NTLM

Windows 認証情報を使用して認証するには、AuthSchemeNTLM に設定します。

Negotiate

認証メカニズムをサーバーとネゴシエートするには、AuthScheme を直接本製品 に設定します。 Kerberos で認証する際に使用されます。

Kerberos 経由でMicrosoft Dynamics 365 Business Central への認証を行うには、認証プロパティを定義し、Kerberos が認証チケットを取得する方法を選択する必要があります。

Kerberos を使用してMicrosoft Dynamics 365 Business Central への認証を行うには、次のプロパティを設定します。

  • hive.server2.authentication:Kerberos
  • AuthScheme:NEGOTIATE
  • KerberosKDC:Kerberos KDC マシンのホスト名またはIP アドレス。
  • KerberosRealm:Microsoft Dynamics 365 Business Central Kerberos プリンシパルのレルム。この値は、主たる値の'@' 記号のすぐ後にあります。
  • KerberosSPN:Microsoft Dynamics 365 Business Central のKerberos プリンシパルのサービスとホスト。この値は、主たる値の'@' 記号のすぐ前にあります。

認証値に加えて、以下を設定します。

  • Server:接続するMicrosoft Dynamics 365 Business Central サーバーのアドレス。
  • Platform:Microsoft Dynamics 365 Business Central バージョン。
  • SchemaEWS.A

サービス間認証の有効化

Service-to-Service(S2S)認証は、統合が特定のユーザーアカウントに縛られることなく、単独で実行される必要がある場合に使用されます。S2S 認証は、多要素認証(MFA)に使用されるようなOAuth の削除されたフローではなく、クライアント資格情報を使用したOAuth 認証フローを使用します。

サービス間認証を設定するには、まず、Business Central に対するAPI コールを認証するために、Azure AD テナントにアプリケーションを登録する必要があります。

Azure AD テナントに必要なアプリを登録したら、以下を実行します。

  1. Business Central クライアントで、Microsoft Entra applications を検索します。
  2. ページを開きます。
  3. New を選択します。Business Central クライアントは、Microsoft Entra アプリケーションカードを開きます。
  4. 登録したアプリケーションのアプリケーション(クライアント)ID を入力します。
  5. Description フィールドを完成させます。このアプリケーションがパートナーによって設定されたものである場合、このパートナーによって設定されたすべてのアプリケーションを必要に応じて将来追跡できるように、十分な識別情報を提供するようにしてください。
  6. State をEnabled に設定します。
  7. 必要に応じてオブジェクトに権限を割り当てます。 (詳しくは、https://learn.microsoft.com/ja-jp/dynamics365/business-central/ui-define-granular-permissions を参照してください。)

    Note: D365 AUTOMATION とEXTEND. MGT. - ADMIN システム権限セットとユーザーグループは、オートメーションで使用されるほとんどの典型的なオブジェクトへのアクセスを可能にします。(EXTEND. MGT. - ADMIN は、以前のバージョンのD365 EXTENSION MGT アクセス許可セットの代替となります。)

  8. (オプション:)これまでAzure ポータルで同意の付与を行っていない場合は、Grant Consent を選択してウィザードに従います。このウィザードを開始する前に、カスタムAzure AD アプリケーションでリダイレクトURL が設定済みであることを確認してください。

OAuth 値のリフレッシュ

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

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

    OAuthSettingsLocation=/tmp/oauthsettings.txt
    

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

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

[Driver]
AnsiCodePage = 932

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