サービス認証問題のトラブルシューティング
この記事では、サービス認証に関する問題を解決するためのヒントをいくつか示します。
サービス認証の問題をトラブルシューティングする場合、もっともよく発生する問題の解決に役立ついくつかの基本的な共通の手順があります。 また、これらの手順では、認証メカニズムの仕組みを実際に実演します。 この記事では手順を説明し、これまでに生じたいくつかの一般的な問題を一覧表示しています。
JWT を検査します。
HTTP 要求から JWT をキャプチャします。
- Fiddler を https://www.telerik.com/fiddler からダウンロードします。
- クライアントから HTTPS トラフィックを監視するには、HTTPS キャプチャを設定します。
- 未処理認証 (OAuth) JSON Web トークン (JWT) を検索します。 これは、「ベアラー」セグメントのない HTTP「認証」ヘッダーの値です。
逆シリアル化ツールを使用してトークンの内容を確認
https://jwt.io に移動し、入力パネルに JWT を貼り付けます。
名前と値の組でコンテンツを表示します。 次の例を参照してください。
次の情報が正しいことを確認します。
"aud" – この値は、Microsoft Microsoft Entra リソースという概念に対応します。 「aud」を含む典型的な問題を以下に示します。
- JWT の "aud" セグメントには、末尾にスラッシュを持つ URI が含まれています。
- JWT の "aud" セグメントには、大文字と小文字の間違ったスタイルを使用する URI が含まれています。 URI は、すべて小文字であることが必要です。
"appid" - 値は Microsoft Entra ネイティブ クライアント アプリ ID (またはサービス アプリ ID) に対応します。
"upn" - 値はネイティブ クライアント アプリケーションを通じて認証されているユーザーに対応します。
トークンの準拠の確認
クライアント アプリケーション トークンにセキュリティの準拠が欠けているため、401 の無許可エラーが発生する可能性があります。 この問題のトラブルシューティングについては、次の項目を確認してください。
JSON web token (JWT) の
tid
セグメントには、現在の環境以外の Microsoft Entra ID の値を含む場合があります。tid
セグメントは、現在の Microsoft Entra ID 値を含む必要があります。 トークンが現在の環境、Microsoft Entra から取得されていることを確認します。JWT の
oid
セグメント欠勤する場合があります。 このoid
はトークンで設定する必要があります。 クライアント アプリケーションが Microsoft Entra のサービス プリンシパルを持つことで Microsoft Entra でプロビジョニングされます。 詳細については、Microsoft Entra ID テナントなしのマルチテナントアプリ を参照してください。 取得するアクセス トークンは、組織のエンドポイントではなく、自分のテナント エンドポイントからである必要があります。Example tenant endpoint: https://login.microsoftonline.com/{yourtenant} Example organization endpoint: https://login.microsoftonline.com/organizations
JWT の
aud
セグメントに appId 値または環境 URL 以外の URL を含む場合があります。aud
値は環境 URL である必要があります。 詳細については、財務と運用アプリの環境 URL なしのトークン を参照してください。
イベント ログを確認
また、仮想マシン (VM) に対するアクセス権限がある場合、インスタンス マシンのイベント ログを確認することができます。
実行 ウィンドウから eventvwr コマンドを実行してイベント ビューアーを起動します。
次のチャンネルに移動します。
- アプリケーションとサービス ログ > Microsoft > Dynamics > AX-IntegrationServices > Channel:Operational (Microsoft-Dynamics-AX-IntegrationServices/運用)
- アプリケーションとサービス ログ > Microsoft > Dynamics > AX-SystemRuntime > Channel:Operational (Microsoft-Dynamics-AX-SystemRuntime/運用)
その他の方法
- OAuth が構成される方法の詳細については、サービス エンドポイント概要 を参照してください。
- また、自分自身のクライアント コードを使用して、並列でサービスの呼び出しを試みることができます。 公開されたサンプル コードは https://github.com/Microsoft/Dynamics-AX-Integration で入手できます。
- 2 番目のメソッドが動作する場合は、それぞれのメソッドで JWT を比較できます。
既知の問題
Microsoft EntraSTS65001: ユーザーまたは管理者がアプリケーションの使用に同意していない
- JWT の "aud" セグメントには、末尾にスラッシュを持つ URI が含まれている可能性があります。 スラッシュを削除する必要があります。
- JWT の "aud" セグメントには、大文字と小文字の間違ったスタイルを使用する URI が含まれている可能性があります。 URI は、すべて小文字であることが必要です。