共用方式為


針對服務主體身分驗證進行疑難解答

本文提供透過服務主體,透過各種 TokenCredential 實作驗證適用於 Java 應用程式的 Azure SDK 時所遇到的問題的指引。 如需詳細資訊,請參閱 使用服務主體進行 Azure 驗證。

針對 ClientSecretCredential 進行疑難解答

當您使用 ClientSecretCredential 時,可以選擇性地嘗試捕捉 ClientAuthenticationException。 下表顯示此例外狀況所指出的錯誤,以及風險降低的方法:

錯誤碼 問題 緩解
AADSTS7000215 已提供無效的客戶端密碼。 請確保建構憑證時提供的 clientSecret 是有效的。 如果不確定,請使用 Azure 入口網站 建立新的客戶端密碼。 如需詳細資訊,請參閱建立 Microsoft Entra 應用程式及可存取資源的服務主體的一節:建立新的應用程式秘密。
AADSTS7000222 已提供過期的客戶端密碼。 使用 Azure 入口網站 建立新的客戶端密碼。 如需詳細資訊,請參閱建立 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 判斷提示具有針對 sub 承載 和 issuer 值指定的正確值。 這兩個字段都應該等於 clientId。 如需瞭解用戶端聲明格式,請參閱 Microsoft 身分識別平台 應用程式驗證憑證
AADSTS700023 用戶端聲明的受眾不匹配領域的簽發者。 請確保在建立的 JWT 聲明中,aud 欄位具有有效負載中所指定的受眾的正確值。 將此欄位設定為 https://login.microsoftonline.com/{tenantId}/v2
AADSTS50027 JWT 令牌無效或格式不正確。 請確定 JWT 判斷提示令牌的格式有效。 如需詳細資訊,請參閱 Microsoft 身分識別平台的應用程式驗證憑證認證

下一步

如果本文中的疑難排解指引無法協助您解決在使用適用於 Java 的 Azure SDK 用戶端程式庫時遇到的問題,我們建議您在適用於 Java 的 Azure SDK GitHub 存放庫回報問題