CData Python Connector for Microsoft Dynamics CRM

Build 24.0.9062

接続の確立

コネクタ内で利用可能なオブジェクトは、"cdata.dynamicscrm" モジュールからアクセスできます。モジュールのオブジェクトを直接使用するには:

  1. モジュールを以下のようにインポートします。
    import cdata.dynamicscrm as mod
  2. 接続を確立するには、以下のような適切な接続文字列を使用してコネクタオブジェクトからconnect() メソッドを呼び出します。
    mod.connect("User=myuseraccount;Password=mypassword;URL=https://myOrg.crm.dynamics.com/;CRM Version=CRM Online;")

Microsoft Dynamics CRM への接続

接続するには、組織のルートURL を設定します。

Microsoft Dynamics CRM オンプレミスへの認証

Microsoft Dynamics CRM オンプレミスへの認証を行うには、CRMVersion = CRM2011+ を設定します。

NTLM

CRM オンプレミスのデプロイでNTLM 認証を介したSPNEGO を使用するには、以下のパラメータを設定します。

  • AuthSchemeNTLM
  • User:ユーザーのログインId。
  • Password:ユーザーのログインパスワード。

NTLM 接続文字列の例:

AuthScheme=NTLM;Url='https://myOrg.crm.dynamics.com/';User=username;Password=password;CRM Version='CRM2011+'

Kerberos

CRM オンプレミスのデプロイでKerberos 認証を介したSPNEGO を使用するには、以下のパラメータを設定します。

  • AuthSchemeKerberos
  • User:ユーザーのログインId。
  • Password:ユーザーのログインパスワード。

Kerberos 接続文字列の例:

AuthScheme=Kerberos;Url='https://myOrg.crm.dynamics.com/';User=username;Password=password;CRM Version='CRM2011+'

Internet-Facing Deployment(IFD)

IFD 経由で認証するには、InternetFacingDeploymenttrue に設定します。

IFD 接続文字列の例:

AuthScheme=NTLM;Url='https://myOrg.com/';User=username;Password=password;InternetFacingDeployment=True;CRM Version='CRM2011+'

Microsoft Dynamics CRM オンラインへの認証

Azure AD(ユーザーベースの認証)またはAzure サービスプリンシパル(サービス プリンシパルベースの認証)のいずれかを使用して、Microsoft Dynamics CRM オンラインへの認証を行うことができます。

Microsoft Dynamics CRM オンラインへの認証を行うには、CRMVersion = CRMOnline を設定します。

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 CRM のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。

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

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

Web アプリケーション

Web アプリケーションを使用してAzure AD 経由で認証する場合は、Microsoft Dynamics CRM にカスタムOAuth アプリケーションを登録する必要があります(Azure AD アプリケーションの作成 を参照)。 それから本製品 を使用してOAuth トークンの値を取得および管理します。

Azure AD OAuth アクセストークンの取得

はじめに、以下の接続プロパティを設定してOAuthAccessToken を取得します。

  • AuthSchemeAzureAD
  • OAuthClientId:アプリケーション設定のクライアントId。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレット。

次に、ストアドプロシージャを呼び出してOAuth 交換を完了します。

  1. GetOAuthAuthorizationUrl ストアドプロシージャを呼び出します。AuthMode インプットをWEB に、CallbackURL インプットをアプリケーション設定で指定したリダイレクトURI に設定します。必要に応じて、Permissions パラメータを設定してカスタム権限をリクエストします。
    ストアドプロシージャがOAuth エンドポイントのURL を返します。
  2. URL を開き、ログインして、アプリケーションを認可します。コールバックURL にリダイレクトされます。
  3. GetOAuthAccessToken ストアドプロシージャを呼び出します。AuthMode インプットをWEB に設定します。Verifier インプットを、コールバックURL のクエリ文字列の"code" パラメータに設定します。必要に応じて、Permissions パラメータを設定してカスタム権限をリクエストします。

アクセストークンとリフレッシュトークンを取得すると、データに接続し、Azure AD アクセストークンを自動または手動でリフレッシュすることができるようになります。

Azure AD OAuth アクセストークンの自動リフレッシュ

本製品 がAzure AD OAuth アクセストークンを自動的にリフレッシュするようにするには、データへの初回接続時に以下のパラメータを設定します。

  • AuthSchemeAzureAD
  • InitiateOAuthREFRESH
  • OAuthClientId:アプリケーション設定のクライアントId。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレット。
  • OAuthAccessTokenGetOAuthAccessToken によって返されたアクセストークン。
  • OAuthRefreshTokenGetOAuthAccessToken によって返されたリフレッシュトークン。
  • OAuthSettingsLocation:ドライバーがOAuth トークン値を保存する場所。これは接続間で維持されます。

それ以降のデータ接続では、OAuthAccessTokenOAuthRefreshToken の値はOAuthSettingsLocation から取得され、接続時に設定する必要はありません。

Azure AD OAuth アクセストークンの手動リフレッシュ

データ接続時に手動でAzure AD OAuth アクセストークンをリフレッシュするために必要な値は、OAuth リフレッシュトークンのみです。

GetOAuthAccessToken が返すExpiresIn パラメータ値が経過した後に、RefreshOAuthAccessToken ストアドプロシージャを使用して手動でOAuthAccessToken をリフレッシュし、次の接続プロパティを設定します。

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

ここでRefreshOAuthAccessToken を呼び出し、OAuthRefreshTokenGetOAuthAccessToken によって返されたOAuth リフレッシュトークンを指定します。新しいトークンが取得できたら、OAuthAccessTokenRefreshOAuthAccessToken が返す値に設定し、新しい接続をオープンします。

最後に、OAuth リフレッシュトークンを保存し、OAuth アクセストークンの有効期限が切れた後に手動でリフレッシュできるようにします。

ヘッドレスマシン

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • AuthSchemeAzureAD
  • InitiateOAuthREFRESH
  • 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 証明書ストアの種類。

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