次の方法で共有


展開 Web サービスの概要

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

展開サービスでは、マルチテナント サポートとも呼ばれる複数組織のサポートを利用するソリューションを作成できます。Microsoft Dynamics 365 では、単一の展開に複数の顧客組織をホストできます。 この機能は、組織内のデータを分離する必要がある、ホストされたソリューションまたはビジネスにとって有益です。 展開サービスを使用するには Dynamics 365 サーバーへのアクセスが必要なため、Microsoft Dynamics 365 の設置型展開の場合にのみ使用できます。

複数組織サポートでは、Microsoft Dynamics 365 web アプリケーションと web サービスは、個々の組織のセキュリティとプライバシーを維持したまま、複数のビジネス組織にわたるデータの格納と取得をサポートします。 単一の Microsoft Dynamics 365 構成データベースが、メタデータとすべての顧客組織の所在地情報を格納します。 ただし、各顧客の組織には Microsoft SQL Serverを実行しているサーバー上に独自データベースがあります。 展開サービスによって制御されるエンティティと構成設定に関する詳細については、展開エンティティ設定および展開構成設定を参照してください。

Microsoft Dynamics 365 では、展開サービスの下位互換エンドポイントはサポートされないため、Microsoft Dynamics CRM 4.0 展開サービス用に記述したコードを更新し、新しいアセンブリで再コンパイルする必要があります。

プロジェクトへの展開サービスの追加

Microsoft.Xrm.Sdk.Deployment.dll フォルダーにあるアセンブリ SDK\bin の参照を追加することにより、展開サービスを使用できます。 または、ソリューションに次のサービス参照を追加できます。

    http://myservername/xrmdeployment/2011/deployment.svc
    svcutil.exe http:// myservername/XRMDeployment/2011/Deployment.svc?wsdl

これにより、クライアント クラスを含む構成ファイルとコード ファイルが生成されます。 この 2 つのファイルをクライアント アプリケーションに追加し、生成されたクライアント クラスを使用してサービスを呼び出します。

展開サービスのインストール

Microsoft Dynamics 365 展開エンティティに対して呼び出しを実行するには、展開サービス サーバー ロールを Microsoft Dynamics 365 サーバーに正しくインストールする必要があります。 展開サービスのインストールで次の基準が満たされていることを確認します。

  • 作成やアップグレードなどの組織操作を使用するには、ドメイン ユーザーを使用して展開サービス サーバー ロールをインストールする必要があります。 ドメイン ユーザー アカウントには、組織のデータベースがホストされる SQL Server に対するローカル管理およびシステム管理権限が必要です。

  • 展開サービスは、他の Microsoft Dynamics 365 サービスおよびアプリケーション サーバーとは異なるサービス ID で実行する必要があります。 ネットワーク サービスを使用している場合、サーバー ロールは他の Microsoft Dynamics 365 サーバー ロールがインストールされていないサーバーに単独でインストールする必要があります。 他のサーバー ロールと共に展開サービス ロールをインストールすると、両方のサーバーがネットワーク サービス アカウントで実行されるため、セキュリティ リスクの原因になります。 ネットワーク サービス アカウントを使用する場合は、Windows PowerShell または展開 web サービスを使用して組織操作を実行できません。

展開サービスのインストールの詳細については、「Microsoft Dynamics CRM サーバー ロール」を参照してください。

Microsoft Dynamics 365 には、Microsoft Dynamics 365 アプリケーション サーバーおよび Microsoft Dynamics 365 サーバーという 2 つの主要なサーバー コンポーネントがあります。 それぞれに、セットアップの実行時にインストールされた個別のサーバー ロール グループが含まれます。 展開サービス ロールは、セットアップ ウィザードを使用して Microsoft Dynamics 365 プラットフォーム サーバーをインストールするときに自動的にインストールされます。

展開サービスの認証と偽装

展開サービスの認証は、Windows 統合認証とも呼ばれる Active Directory を通じて処理されます。 別の認証されたユーザーに代わって web サービスのメソッドを呼び出し、目的の機能やサービスを提供することのできる偽装も使用できます。 展開 web サービスを呼び出すには、ユーザーは Microsoft Dynamics 365 の展開管理者である必要があります。 詳細については、「展開管理者の追加」を参照してください。

次のサンプルでは、ProxyClientHelperクラスを使用して既定の資格情報で展開サービスを認証および使用する方法を示します。

DeploymentServiceClient service = Microsoft.Xrm.Sdk.Deployment.Proxy.ProxyClientHelper.CreateClient(new Uri("http://MyServerName/XRMDeployment/2011/Deployment.svc"));
RetrieveAllRequest request = new RetrieveAllRequest()
{   
   EntityType = DeploymentEntityType.DefaultOrganization};   
   RetrieveAllResponse response = (RetrieveAllResponse) service.Execute(request);
}

Microsoft Dynamics 365 ユーザーに代わってさまざまなクライアントとサービスから Microsoft Dynamics 365 web サービスを呼び出すことができます。 すべての呼び出しは認証呼び出しである必要があります。 偽装を使用して、認証された Microsoft Dynamics 365 ユーザーに代わって呼び出しを実行します。 偽装を使用する場合は、web サービス (ASP.NET) コードで認証および承認の問題を処理しないでください。 代わりに、インターネット インフォメーション サービス (IIS) を使用してユーザーを認証し、認証されたトークンを web サービスに渡します。 ユーザーを認証できない場合、IIS は認証されていないトークンを渡します。

次のサンプルでは、展開サービスで偽装する方法を示します。

DeploymentServiceClient service = Microsoft.Xrm.Sdk.Deployment.Proxy.ProxyClientHelper.CreateClient(new Uri("http://myservername/XRMDeployment/2011/Deployment.svc"));
service.ClientCredentials.Windows.ClientCredential = new NetworkCredential("administrator", "myp@ssword!", "myservernamedom");
RetrieveAllRequest request = new RetrieveAllRequest() 
{   
   EntityType = DeploymentEntityType.DefaultOrganization};   
   RetrieveAllResponse response = (RetrieveAllResponse) service.Execute(request);
}

展開サービスの機能

展開サービスは、メインの Microsoft Dynamics 365 web サービスに似た展開モデルに従います。 展開サービスとのやり取りに使用するエンティティ、メソッド、およびメッセージがあります。 主なMicrosoft Dynamics 365web サービスの詳細については、Microsoft Dynamics 365 サービスをコードで使用を参照してください。

展開サービスには、展開エンティティ設定と展開構成設定の 2 種類のエンティティがあります。 どちらも同じメソッド セットによってアクセスされます。 これらのエンティティの詳細については、『展開エンティティ設定および展開構成設定』を参照してください。

コア展開エンティティに加えて、展開サービスはメタデータによって駆動される詳細設定の読み取りおよび編集機能を提供します。 これらの詳細設定では、構成データベースに保存されている情報にアクセスできます。

展開サービスでは、Execute メソッドの同期メッセージと非同期メッセージの両方がサポートされます。 詳細については、「展開 Web サービス メッセージ」を参照してください。

次の表に、展開サービスで使用可能なメソッドの一覧を示します。

メソッド名

説明

IDeploymentService.Delete

展開エンティティからレコードを削除します。

IDeploymentService.Execute

展開サービスの要求を実行します。 詳細については、「展開 Web サービス メッセージ」を参照してください。

IDeploymentService.Retrieve

展開エンティティまたは展開構成設定からレコードを取得します。

IDeploymentService.RetrieveAll

展開エンティティまたは展開構成設定からすべてのレコードを取得します。

IDeploymentService.Update

展開エンティティまたは展開構成設定のレコードを更新します。

関連項目

IDeploymentService
Microsoft.Xrm.Sdk.Deployment.Proxy
ProxyClientHelper
展開 Web サービスを使用した展開の管理
展開エンティティ設定および展開構成設定
展開 Web サービス メッセージ

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権