次の方法で共有


XRM ツールで接続文字列を使用する

Dynamics 365 Customer Engagement (on-premises) では、XRM ツールを使用すると、接続文字列を使用してインスタンスに接続できます。 これは SQL Server で使用される接続文字列の概念と似ています。 接続文字列は、最大限のセキュリティを得るために構成セクションを暗号化する機能を含むネイティブ サポートを、構成ファイルに備えています。 これにより、展開時に Dynamics 365 Customer Engagement (on-premises) 接続を構成でき、インスタンスに接続するためのハード コードをアプリケーションに必要としません。

Dataverse ユーザーに適用可能な接続文字列のドキュメントは、Power Apps のドキュメントで利用できるようになりました: XRM ツールで接続文字列を使用して Dataverse に接続する

接続文字列の作成

以下の例のように、この接続文字列をプロジェクトの App.config または web.config ファイルで指定します。

<connectionStrings>  
    <add name="MyCRMServer" connectionString="AuthType=AD;Url=https://contoso:8080/Test;" />  
</connectionStrings>  

Von Bedeutung

app.configファイルやweb.configファイルに機密情報(アカウントパスワードなど)を追加する場合は、情報を保護するために適切なセキュリティ対策を講じてください。

接続文字列を作成したら、それを使用して CrmServiceClient オブジェクトを作成します。

//Use the pre-configured connection string named "MyCRMServer"
CrmServiceClient crmSvc = new CrmServiceClient(ConfigurationManager.ConnectionStrings["MyCRMServer"].ConnectionString);  

コード内の接続文字列にアクセスするには、System.Configuration名前空間を参照するために、コードで次の using ディレクティブを使用する必要があります。using System.Configuration;

CrmServiceClient オブジェクトを作成した後、そのオブジェクトを使用して Dynamics 365 Customer Engagement (on-premises) でアクションを実行できます。 詳細: XRM ツールを使用したアクションの実行

接続文字列パラメーター

接続文字列には、セミコロンで区切られた一連の名前=値の組が含まれまています。 次の表は、任意の受注で入力できる、サポートされるパラメーターを一覧表示しています。

パラメーター名 説明
ServiceUriService UriUrl、または Server Dynamics 365 Server の URL を指定します。 URL は、http または https プロトコルを使用することができ、ポートはオプションです。 http プロトコルの既定ポートは 80 で、https プロトコルの既定ポートは 443 です。 通常、サーバー URL は https://crm-server:port/organization-name for Dynamics 365 Customer Engagement (on-premises) の形式です。

組織名は必須です。 接続する組織のわかりやすい名前または一意の名前を指定できます。

例: https://contoso/test、 https://contoso:5555/test、 https://contoso/test、 https://10.10.10.2/test
Domain ユーザー資格情報を確認するドメインを指定します。
UserNameUser NameUserId、または User Id 資格情報に関連付けられたユーザーの ID 名を指定します。
Password 資格情報に関連付けられたユーザー名のパスワードを指定します。
HomeRealmUri または Home Realm Uri ホーム レルムの Uri を指定します。
AuthenticationType または AuthType Dynamics 365 Customer Engagement (on-premises) に接続するための認証の種類を指定します。 有効な値は、 ADIFD (AD FS が有効)、 OAuth、または Office365 です。

- ADIFD は Dynamics 365 Customer Engagement (on-premises) インスタンスでのみ許可されます。
- OAuthは、Dynamics 365 Customer Engagement (on-premises) および Dataverse インスタンスで許可されます。 オンプレミスの場合、 OAuth の種類には、ADFS 3.x+ と App\Client Id の ADFS への登録が必要です。
- Office365 は Dataverse インスタンスでのみ許可されます。
- 認証のための証明書またはクライアント シークレットの使用は、Dataverse でサポートされていますが、Dynamics 365 Customer Engagement (on-premises) ではサポートされていません。
RequireNewInstance 接続がまだアクティブの間に再呼び出しされた場合に、既存の接続を再利用するかどうかを指定します。 デフォルト値は false で、既存の接続を再利用することを示します。 true に設定した場合、これによりシステムは強制的に固有の接続を作成します。
ClientIdAppId、または ApplicationId Azure Active Directory または Active Directory フェデレーション サービス (AD FS) にアプリケーションを登録したときに割り当てられた ClientID を指定します。
RedirectUri または ReplyUrl Azure Active Directory または Active Directory フェデレーション サービス (AD FS) に登録したアプリケーションのリダイレクト URI を指定します。

このパラメータは認証の種類が OAuth として指定されている場合にのみ適用されます。
TokenCacheStorePath ユーザー トークンのキャッシュに保存する必要がある場所の完全なパスを指定します。 実行プロセスには指定されたパスへのアクセス権があるべきです。 このパスを設定し構成することが、このプロセスの役割です。

このパラメータは認証の種類が OAuth として指定されている場合にのみ適用されます。
LoginPrompt 資格情報が提供されていない場合に資格情報の入力を促すかどうかを指定します。 有効な値は次のとおりです。

- Always: 常に資格情報を指定するようユーザーを促す。
- Auto: プロンプトを表示するかどうかを、ログイン コントロール インターフェイスで選択することをユーザーに許可する。
- Never: 資格情報を指定するようユーザーを促さない。 使用している接続方法にユーザー インターフェースがない場合は、この値を使用してください。

このパラメータは認証の種類が OAuth として指定されている場合にのみ適用されます。
SkipDiscovery 特定のインスタンスの接続 URI を決定するためにインスタンス検出を呼び出すかどうかを指定します。 NuGet リリース Microsoft.CrmSdk.XrmTooling.CoreAssembly バージョン 9.0.2.7 の時点では、既定値 = true。 古いバージョンのデフォルトは false です。
注: true に設定した場合、ユーザーがターゲット インスタンスの正確で正確な URI を提供することが重要です。
Thumbprint または CertificateThumbprint S2S 接続時に使用する証明書のサムプリントを指定します。 設定した場合、AppID が必要であり、UserId とパスワード値は無視されます。
StoreName または CertificateStoreName サムプリントで識別された証明書を見つけることができる店舗名を指定します。 設定した場合、サムプリントが必要です。

開発およびプロトタイプ作成の目的で OAuth 認証タイプを使用する場合、OAuth フローで使用するための次の AppId または ClientId とリダイレクト URI を提供しています。 これらはすべてのコードサンプルで使用しています。

サンプル AppId または ClientId = 00001111-aaaa-2222-bbbb-3333cccc4444
サンプルの RedirectUri = app://58145B91-0C36-4500-8554-080854F2AC97

運用環境での使用については、Azure 管理ポータルのテナントに固有の AppId または ClientId を作成する必要があります。

接続文字列の例

次の例は、Dynamics 365 Customer Engagement (on-premises) および IFD 展開に接続するために接続文字列を使用する方法を示しています。 Dataverse インスタンスの接続文字列の例は、Power Apps ドキュメントの XRM ツールで接続文字列を使用して Dataverse に接続できるようになりました

統合されたオンプレミス認証

<add name="MyCRMServer"
connectionString="AuthType=AD;
Url=https://contoso:8080/Test;" />  

オンプレミス認証を使用した名前付きアカウント

<add name="MyCRMServer"
connectionString="AuthType=AD;
Url=https://contoso:8080/Test;
Domain=CONTOSO;
Username=jsmith;
Password=passcode" />  

認証のプロンプトに Dynamics 365 Customer Engagement (on-premises) で UX とともに取引先企業を使用する OAuth

oAuth 経由で UserID またはパスワードを使用して新しい接続を作成します。

OAuth は、対話型フローを使用する場合に Dynamics 365 Customer Engagement (on-premises) に接続するための推奨される認証タイプです。 この認証の種類は、Azure Active Directory の条件付きアクセスと多要素認証の機能を完全にサポートしています。

<add name="MyCRMServer"
 connectionString="
  AuthType=OAuth;
  Username=jsmith;
  Password=passcode;
  Url=https://contoso:8080/Test;
  AppId=00001111-aaaa-2222-bbbb-3333cccc4444;
  RedirectUri=app://58145B91-0C36-4500-8554-080854F2AC97;
  TokenCacheStorePath=c:\MyTokenCache;
  LoginPrompt=Auto"/>  

フォールバック UX で現在ログインしているユーザーを使用して認証を求める OAuth

oAuth 経由で現在ログインしているユーザーを使用して新しい接続を作成します。

OAuth は、対話型フローを使用する場合に Dynamics 365 Customer Engagement (on-premises) に接続するための推奨される認証タイプです。 この認証の種類は、Azure Active Directory の条件付きアクセスと多要素認証の機能を完全にサポートしています。 Integrated Security パラメーターの詳細については、こちらのトピックを参照してください。

<add name="MyCRMServer"
 connectionString="
  AuthType=OAuth;
  Username=jsmith;
  Integrated Security=true;
  Url=https://contoso:8080/Test;
  AppId=00001111-aaaa-2222-bbbb-3333cccc4444;
  RedirectUri=app://58145B91-0C36-4500-8554-080854F2AC97;
  TokenCacheStorePath=c:\MyTokenCache;
  LoginPrompt=Auto"/>  

サブ部門への委任に取引先企業を使用している IFD

<add name="MyCRMServer"
connectionString="AuthType=IFD;Url=https://contoso:8080/Test;
 HomeRealmUri=https://server-1.server.com/adfs/services/trust/mex/;
Domain=CONTOSO; 
Username=jsmith; 
Password=passcode" />  

接続状態を決定する

接続要求が成功したかどうかを決定するには、CrmServiceClientIsReady プロパティの値を確認してください。 true の場合、接続が成功し、実行する準備ができています。 それ以外の場合、接続エラーの原因については CrmServiceClient .LastCrmError および CrmServiceClient.LastCrmExceptionプロパティの値を確認してください。

こちらも参照ください

XRM ツールを使用して Windows のクライアント アプリケーションを作成する
CrmServiceClient コンストラクターを使用して Dynamics 365 Customer Engagement (on-premises) と Dataverse に接続する
XRM ツールを使用したアクションの実行
CrmServiceClient