共用方式為


排除開發環境身份驗證故障

本文提供指引,說明如何解決在開發人員本機計算機上執行的 Java 應用程式進行 Azure SDK 驗證時透過各種 TokenCredential 實作遇到的問題。 如需詳細資訊,請參閱 Java 開發環境中的 Azure 驗證

針對 AzureCliCredential 進行疑難解答

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

錯誤訊息 說明 緩和措施
Azure CLI not installed Azure CLI 未安裝或找不到。 - 請確定您已正確安裝 Azure CLI
- 驗證安裝位置是否已新增至 PATH 環境變數。
Please run 'az login' to set up account 目前沒有帳戶登入 Azure CLI,或登入已過期。 - 使用 az login 命令登入 Azure CLI。 如需詳細資訊,請參閱使用 Azure CLI 登入
- 驗證 Azure CLI 是否可以取得令牌。 如需詳細資訊,請參閱 下一節

確認 Azure CLI 可以取得令牌

您可以手動確認您已正確驗證 Azure CLI,並可取得令牌。 首先,使用下列命令來確認帳戶目前已登入 Azure CLI:

az account show

驗證 Azure CLI 使用正確的帳戶之後,請使用下列命令來驗證它是否能夠取得此帳戶的令牌:

az account get-access-token \
    --output json \
    --resource https://management.core.windows.net

警告

此命令的輸出包含有效的存取令牌。 為了避免危害帳戶安全性,請勿共用此存取令牌。

針對 AzureDeveloperCliCredential 進行疑難解答

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

錯誤訊息 說明 緩和措施
Azure Developer CLI not installed 未安裝或找不到 Azure 開發人員 CLI。 - 請確定您已正確安裝 Azure 開發人員 CLI
- 驗證安裝位置是否已新增至 PATH 環境變數。
Please run 'azd auth login' to set up account 目前沒有帳戶登入 Azure 開發人員 CLI,或登入已過期。 - 使用 azd auth login 命令登入 Azure 開發人員 CLI。
- 驗證 Azure 開發人員 CLI 是否可以取得令牌。 如需詳細資訊,請參閱 下一節

確認 Azure 開發人員 CLI 可以取得令牌

您可以手動確認您已正確驗證 Azure 開發人員 CLI,並可取得令牌。 首先,使用下列命令來確認帳戶目前已登入 Azure 開發人員 CLI:

azd config list

驗證 Azure 開發人員 CLI 使用正確的帳戶之後,您可以使用下列命令來驗證它是否能夠取得此帳戶的令牌:

azd auth token --output json --scope https://management.core.windows.net/.default

警告

此命令的輸出包含有效的存取令牌。 為了避免危害帳戶安全性,請勿共用此存取令牌。

AzurePowerShellCredential 疑難排解

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

錯誤訊息 說明 緩和措施
PowerShell isn't installed. 找不到 PowerShell 的本機安裝。 請確定您已在機器上正確安裝 PowerShell
Az.Account module >= 2.2.0 isn't installed. Az.Account未安裝 Azure PowerShell 中驗證所需的模組。 安裝最新的 Az.Account 模組。 如需詳細資訊,請參閱安裝 Azure PowerShell
Please run 'Connect-AzAccount' to set up account. 目前沒有帳戶登入 Azure PowerShell。 - 使用 Connect-AzAccount 命令登入 Azure PowerShell。 如需詳細資訊,請參閱 使用 Azure PowerShell 登入
- 驗證 Azure PowerShell 是否可以取得令牌。 如需詳細資訊,請參閱 下一節

確認 Azure PowerShell 可以取得令牌

您可以手動確認您已正確驗證 Azure PowerShell,並可取得令牌。 首先,使用下列命令來確認帳戶目前已登入 Azure CLI:

Get-AzContext

這個指令會產生類似下列範例的輸出:

Name                                     Account             SubscriptionName    Environment         TenantId
----                                     -------             ----------------    -----------         --------
Subscription1 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com    Subscription1       AzureCloud          xxxxxxxx-x...

驗證 Azure PowerShell 使用正確的帳戶之後,您可以使用下列命令來驗證它是否能夠取得此帳戶的令牌。

Get-AzAccessToken -ResourceUrl "https://management.core.windows.net"

警告

此命令的輸出包含有效的存取令牌。 為了避免危害帳戶安全性,請勿共用此存取令牌。

VisualStudioCodeCredential 的疑難排解

備註

這是一個已知問題VisualStudioCodeCredential不適用於比 更新的 0.9.11版本。 此問題的長期修正正在進行中。 同時,請考慮 透過 Azure CLI 進行驗證

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

錯誤訊息 說明 緩和措施
Failed To Read VS Code Credentials</p></p>OR</p>Authenticate via Azure Tools plugin in VS Code VS Code 設定中找不到任何 Azure 帳戶資訊。 - 請確定您已正確安裝 Azure 帳戶外掛程式
- 使用 [檢視 > 命令選擇區 ] 來執行 Azure:登入 命令。 此命令會開啟瀏覽器視窗,並顯示可讓您登入 Azure 的頁面。
- 如果您已安裝 Azure 帳戶擴充功能並已登入您的帳戶,請嘗試註銷並再次登入。 此動作會重新填入快取,並可能緩解您遇到的錯誤。
MSAL Interaction Required Exception VisualStudioCodeCredential 能夠從快取中讀取快取憑證,但快取的存取令牌可能已過期。 透過 檢視 > 命令選擇區 登入 Azure 帳戶擴充功能,以在 VS Code IDE 中執行 Azure:登入 命令。
ADFS tenant not supported Visual Studio Azure 服務驗證目前不支援 ADFS 租使用者。 使用 Visual Studio 進行驗證時,使用支援的雲端認證。 如需支援雲端的詳細資訊,請參閱 國家雲端

後續步驟

如果您在使用適用於 Java 的 Azure SDK 用戶端連結庫時,本文中的疑難解答指引無法解決問題,建議您 在適用於 Java 的 Azure SDK GitHub 存放庫中 提出問題,。