組織の URL を見つける

注意

エンティティとテーブルの違いがわかりませんか? Microsoft Dataverse で「開発者: 用語を理解する」を参照してください。

特定の Microsoft Dataverse 環境用のクライアントを作成し、接続できる環境についてユーザーにオプションを提供しないようにすることもできます。 その特定の環境で有効なユーザーだけがクライアントを使用できます。

クライアントを使用するユーザーが、アクセスを許可された任意の Dataverse 環境に接続できるようにするには、ユーザーにメッセージを表示して、接続する環境の URL の入力を求めることができます。ただし、この方法はお勧めしません。 各ユーザーは複数の Dataverse 環境にアクセスできる可能性があります。 ユーザーはアクセスする環境の URL を覚えていないかもしれません。 この URL の入力を要求することは、ユーザーの負担になる可能性があります。

別の方法として、ユーザーの資格情報に基づいて使用可能な個々の環境の一覧をクライアントで表示することをお勧めします。 使用可能な環境が複数ある場合は、接続先の環境を選ぶようアプリケーションでユーザーにメッセージを表示する必要があります。

Dataverse を使用すると、データセンター管理および負荷分散の一環として、サーバーと組織の割り当てが変更されることがあります。 そのため、検出サービスには、ある特定の時点でインスタンスを処理しているサーバーを検出する方法が用意されています。

OData V4 RESTful API を使用して検出サービスにアクセスする場合、サービス リクエストに標準的な $filter$select パラメーターを追加して、返されるインスタンス データのリストをカスタマイズすることができます。

重要

  • 2020年3月2日より、地域 の検出サービスは 廃止 されます。 アプリケーションは、このトピックに記載されているグローバル 検出サービスを使用する必要があります。
  • Dynamics 365 US Government ユーザーの場合、 GCCGCC High ユーザーは、グローバル 検出サービスのエンドポイントが利用できます。このURLは通常のグローバル検出サービスのURLとは異なります。 詳細情報: Dynamics 365 Government の URL

検出サービスが提供する情報

組織情報は、Discovery Service の Instance テーブルに保存されます。 そのテーブルに含まれている情報を表示するには、まずインスタンスの 1 つのサービスに HTTP GET 要求を送信します。

GET https://globaldisco.crm.dynamics.com/api/discovery/v2.0/Instances(UniqueName='myorg')  

上記の例では、 グローバル検出サービスを使用して、「myorg」 という一意の名前のインスタンスの組織情報を取得しています。 この要求に関する詳細については、このトピックの後半で詳しく説明します。

返される情報のスコープ

グローバル Discovery Service の場合、Instances エンティティ セットは、フィルターが適用されない場合、すべての地域のユーザーがアクセスするインスタンス (環境) のセットを返します。 次の説明に従って、返されたデータのスコープがあります。

  • 主権あるクラウド インスタンスが返されないことを除き、ユーザーに対してプロビジョニングされ、有効化された商用クラウド内のすべてのインスタンスが含まれます
  • ユーザー アカウントが無効の場合、インスタンスは含まれません。
  • インスタンス セキュリティ グループに基づいて、ユーザーがフィルターによって除外された場合、インスタンスは含まれません。
  • ユーザーが代理管理者であるためアクセス権を持っている場合、インスタンスは含まれません。
  • 呼び出し元ユーザーがインスタンスへのアクセス権を持っていない場合は、応答は、空のリストを返します。

検出サービスへのアクセス方法

一般に、検出サービスの Web API アドレスのフォーマットは、 <service base address>/api/discovery/ です。 設定 > カスタマイズ > 開発者リソース に移動することで、Microsoft Dataverse Web アプリケーションで展開されている Web アドレスとバージョン番号を簡単に検索できます

Dataverse 探索サービス

グローバル検出サービスのサービス ベース アドレスは、 https://globaldisco.crm.dynamics.com/ です。 この結果、https://globaldisco.crm.dynamics.com/api/discovery/ のサービス アドレスになります。

探索サービスの使用

Instances という名前のエンティティ セットを使用して、インスタンス情報を取得します。 返されたデータをフィルター処理するようにセットされたインスタンス エンティティで$select$filter を使用できます。 または $metadata を使用して、サービスのメタデータ ドキュメントを取得できます。

認証

検出サービスのへのアクセスには、OAuth アクセス トークンを使用した認証が必要となります。

検出サービスが、OAuth 認証用に構成されている場合、アクセス トークンを使用せずにサービス に送信される要求は、「共通」するエンドポイントの権限とサービスのリソース ID と共にベアラー チャレンジをトリガーします。

CORS サポート

検出サービスは、クロス オリジン アクセスの CORS標準規格に対応しています。 CORS サポートの詳細については、OAuth を使用するクロス オリジン リソース共有を使用して単一ページのアプリケーションへ接続する を参照してください。

  • 特定のインスタンスの詳細を取得します。 GUID を省くと、認証されたユーザーがアクセスできるすべてのインスタンスが返されます。

    GET https://globaldisco.crm.dynamics.com/api/discovery/v2.0/Instances(<guid>)
    
  • 代替キーとして UniqueName 列を使用できます。

    GET https://globaldisco.crm.dynamics.com/api/discovery/v2.0/Instances(UniqueName='myorg')  
    
  • 運用の種類によってフィルター処理された、利用可能なインスタンスのリストを取得します。

    GET https://globaldisco.crm.dynamics.com/api/discovery/v2.0/Instances?$select=DisplayName,Description&$filter=Type+eq+0   
    

関連項目

検出サービスのサンプル (C#)

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。