サービス エンドポイント 概要

この記事では、Microsoft Dynamics 365 Finance で使用できるサービス エンドポイントについて説明します。 また、Microsoft Dynamics AX 2012 で使用できるエンドポイントと比較します。

サービスのリスト

次のテーブルでは、すべてのサービス エンドポイントを一覧表示し、アプリケーション、および AX 2012 で使用可能なエンドポイントを比較しています。

サービス エンドポイント AX 2012 財務と運用
ドキュメント サービス (AXDs) 有効 いいえ – データ エンティティに置き換えられます
SOAP ベースのメタデータ サービス いいえ – REST メタデータに置き換えられます
SOAP ベースのクエリ サービス いいえ – OData に置き換えられます
OData クエリ サービス いいえ – OData に置き換えられます
SOAP ベース カスタム サービス
JSON ベース カスタム サービス 無効 有効
OData サービス 無効 有効
REST メタデータ サービス 無効 有効

この記事では、サービスの認証と、REST メタデータ サービスについて説明します。 次のリンクでは、以下のための詳細なドキュメントを提供します。

認証

OData サービス、JSON ベース カスタム サービス、および REST メタデータ サービスは、標準の OAuth 2.0 認証をサポートします。

現在のところ、承認コード付与フロークライアントの資格情報 (共有シークレットまたは証明書) を使用したサービス間の呼び出しの両方をサポートしています。

Microsoft Entra ID (Microsoft Entra ID) では、次の 2 種類のアプリケーションがサポートされています:

  • ネイティブ クライアント アプリケーション – このフローでは、認証と承認にユーザー名とパスワードを使用します。
  • Web アプリケーション (機密クライアント) – 機密クライアントとは、クライアントのパスワードを世界に対して秘密にするアプリケーションです。 承認サーバーは、このクライアント パスワードをクライアント アプリケーションに割り当てています。

詳細については、以下を参照してください。

次の図は、認証コードの付与フローに対して認証を設定する方法について説明します。

認証コードの付与フロー。

以下の図では、クライアントの資格情報 (共有秘密または証明書) を使用したサービス間の呼び出し承認の仕組みを説明します。

クライアントの資格情報を使用したサービス間呼び出し。

Microsoft Entra ID に Web アプリケーションを登録する

注記

これらの手順は、組織内のすべての人が完了する必要はありません。 Azure サービスの管理者ユーザーのみがアプリケーションを追加し、その開発者とクライアント ID を共有することができます。

前提条件: Azure サブスクリプションと Microsoft Entra ID への管理者権限が必要です。

クライアントがサービスと通信する前に、(Microsoft Entra ID) に登録する必要があります。 これらの手順を使用すると、(Microsoft Entra ID) でアプリケーションに登録できます。 この手順については、Azure アプリ登録のトレーニングガイドを参照してください。 このプロセスでの固有の構成には、コンテキストで次の追加情報を使用する必要があります。

Microsoft DynamicsERP (Microsoft.ERP) を選択します。 API を選択 内の検索フィールドで Microsoft Dynamics ERP を検索する場合、使用できないように見えることがあります。 その場合は、上に示したようにフルネームを検索してください。 委任アクセス権 で、少なくとも次のオプションを選択する必要があります。

  • Dynamics AX カスタム サービスへのアクセス
  • Dynamics AX データへのアクセス
  • 組織ユーザーとしての Dynamics AX オンラインへのアクセス

重要

このキーは再度表示されないため、コピーしてください。 OAuth 認証を完了して Microsoft Entra トークンを受け取るには、この秘密のキーを知っておく必要があります。

外部アプリケーションの登録

  1. 財務と運用アプリで、システム管理>セットアップ>Microsoft Entra アプリケーションに移動します。

  2. 新規 を選択します。

  3. 新しいレコード用のフィールドに入力します。

    • クライアント ID フィールドで、Microsoft Entra ID に登録したアプリケーション ID を入力します。
    • 名前フィールドに、アプリケーションの名前を入力します。
    • ユーザー ID フィールドで、適切なサービス アカウントのユーザー ID を選択します。 この例では、管理者ユーザーを選択しました。 ただし、実行する必要がある操作に対して適切なアクセス許可を持つ、専用のサービス アカウントをプロビジョニングすることをお勧めします。

    完了したら、保存 を選択します。

これで、前提条件の設定を完了しました。 外部のアプリケーションが Microsoft Entra Authentication トークンを取得した後、認証 HTTP ヘッダーのトークンを使用して、OData や SOAP などの後続のサービスの呼び出しを行うことができるようになりました。

クライアント サンプル コード

次は、Microsoft Entra ID からトークンを取得するための C# サンプル コードです。 このフローで、同意フォーム (テナント間アプリケーション用) およびサインイン フォームがユーザーに表示されます。

UriBuilder uri = new UriBuilder ("https://login.windows.net/contoso2ax.onmicrosoft.com");

AuthenticationContext authenticationContext = new AuthenticationContext(uri.ToString());

//request token for the resource - which is the URI for your organization. NOTE: Important do not add a trailing slash at the end of the URI
AuthenticationResult authenticationResult = authenticationContext.AcquireToken("https://axdynamics1001aos.cloud.dynamics.com", clientId, redirectURI);

//this gets the authorization token, which needs to be passed in the Header of the HTTP Requests
string authenticationHeader = authenticationResult.CreateAuthorizationHeader();

ポップアップを表示せずにユーザー名とパスワードを渡すには、AcquireToken の次のオーバーロードを使用します。

UserCredential userCred = new UserCredential (username, password);
authenticationContext.AcquireToken("https://axdynamics1001aos.cloud.dynamics.com", clientId, userCred);

REST メタデータ サービス

REST メタデータ サービスは、読み取り専用サービスです。 つまり、ユーザーは GET 要求のみ生成できます。 このエンドポイントの主な目的は、要素のメタデータ情報を提供することです。 OData 実装です。

このエンドポイントは、http://\[baseURI\]/Metadata でホストされています。

現在、このエンドポイントは、次の要素のメタデータを提供します。

  • ラベル – システムからラベルを返します。 ラベルには言語と ID のデュアル ペア キーがあり、ラベルの値を取得できます。

    例 :https://[baseURI\]/metadata/Labels(Id='@SVC\_ODataLabelFile:Label1',Language='en-us')

  • データ エンティティ - システム内のすべてのデータ エンティティの JSON 形式の一覧を返します。

    例 :https://[baseURI\]/Metadata/DataEntities