Azure サービス プリンシパル認証のトラブルシューティング

この記事では、さまざまな TokenCredential 実装を通じて、サービス プリンシパルを介して Azure SDK for Java アプリケーションを認証するときに発生する問題に対処するためのガイダンスを提供します。 詳細については、「サービス プリンシパルの認証の使用」を参照してください。

ClientSecretCredential のトラブルシューティング

ClientSecretCredential を使用する場合は、必要に応じて、ClientAuthenticationException を試行/キャッチします。 次の表に、この例外が示すエラーと軽減策を示します。

エラー コード 問題点 対応策
AADSTS7000215 無効なクライアント シークレットが指定されています。 資格情報の作成時に、指定された clientSecret が有効であることを確認します。 不明な場合は、Azure Portal を使用して新しいクライアント シークレットを作成します。 詳細については、「リソースにアクセスできる Microsoft Entra アプリケーションとサービス プリンシパルを作成する」「新しいアプリケーション シークレットを作成する」セクションを参照してください。
AADSTS7000222 期限切れのクライアント シークレットが指定されました。 Azure Portal を使用して新しいクライアント シークレットを作成します。 詳細については、「リソースにアクセスできる Microsoft Entra アプリケーションとサービス プリンシパルを作成する」「新しいアプリケーション シークレットを作成する」セクションを参照してください。
AADSTS700016 指定したアプリケーションが、指定したテナントで見つかりませんでした。 指定された clientIdtenantId のアプリケーション登録が正しいことを確認します。 マルチテナント アプリの場合は、テナント管理者が目的のテナントにアプリケーションを追加していることを確認します。 詳細については、「リソースにアクセスできる Microsoft Entra アプリケーションとサービス プリンシパルを作成する」を参照してください。

ClientCertificateCredential のトラブルシューティング

ClientCertificateCredential を使用する場合は、必要に応じて、ClientAuthenticationException を試行/キャッチします。 次の表に、この例外が示すエラーと軽減策を示します。

エラー コード 説明 対応策
AADSTS700027 クライアント アサーションに、無効な署名が含まれています。 指定した認定資格証が Microsoft Entra アプリケーション登録にアップロードされていることを確認します。 詳細については、「リソースにアクセスできる Microsoft Entra アプリケーションとサービス プリンシパルを作成する」「認証局が発行した信頼された認定資格証をアップロードする」セクションを参照してください。
AADSTS700016 指定したアプリケーションが、指定したテナントで見つかりませんでした。 指定された clientIdtenantId のアプリケーション登録が正しいことを確認します。 マルチテナント アプリの場合は、テナント管理者が目的のテナントにアプリケーションを追加していることを確認します。 詳細については、「リソースにアクセスできる Microsoft Entra アプリケーションとサービス プリンシパルを作成する」を参照してください。

ClientAssertionCredential のトラブルシューティング

ClientAssertionCredential を使用する場合は、必要に応じて、ClientAuthenticationException を試行/キャッチします。 次の表に、この例外が示すエラーと軽減策を示します。

エラー コード 説明 対応策
AADSTS700021 クライアント アサーション アプリケーション識別子が、client_id パラメーターと一致しません。 作成された JWT アサーションで、ペイロードの subissuer の値に対して正しい値が指定されていることを確認します。 これらのフィールドの両方が、clientId と等しい必要があります。 詳細については、「Microsoft ID プラットフォーム アプリケーションの認証認定資格証資格情報」を参照してください。
AADSTS700023 クライアント アサーション オーディオ要求が Realm 発行者と一致しません。 作成された JWS アサーションのオーディオ aud フィールドに、ペイロードで指定されたオーディオの正しい値が入力されていることを確認します。 このフィールドに https://login.microsoftonline.com/{tenantId}/v2 を設定します。
AADSTS50027 JWT トークンが無効であるか、形式に誤りがあります。 JWT アサーション トークンが有効な形式であることを確認します。 詳細については、「Microsoft ID プラットフォーム アプリケーションの認証証明書資格情報」を参照してください。

次のステップ

この記事のトラブルシューティング ガイダンスが、Azure SDK for Java クライアント ライブラリを使用するときの問題の解決に役立たない場合は、 Azure SDK for Java GitHub リポジトリ問題を提出する ことをお勧めします。