本文針對在開發人員的本機上執行的 Azure SDK for Java 應用程式,提供透過各種 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 目前使用的是正確的帳戶後,請使用下列命令來驗證 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 Developer 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 是否能取得 tokens
你可以手動驗證你是否正確認證了 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 Account 外掛。 - 使用 [檢視 > 命令選擇區 ] 來執行 Azure:登入 命令。 這個指令會開啟瀏覽器視窗,並顯示一個頁面,你可以用來登入 Azure。 - 如果你已經安裝了 Azure 帳號擴充功能並已登入帳號,請嘗試登出再登入。 此動作會重新填入快取,並可能緩解您遇到的錯誤。 |
MSAL Interaction Required Exception |
VisualStudioCodeCredential 能夠從快取中讀取快取憑證,但快取的存取令牌可能已過期。 |
透過 檢視 > 命令選擇區 登入 Azure 帳戶擴充功能,以在 VS Code IDE 中執行 Azure:登入 命令。 |
ADFS tenant not supported |
Visual Studio Azure 服務驗證目前不支援 ADFS 租使用者。 | 使用 Visual Studio 進行驗證時,使用支援的雲端認證。 如需支援雲端的詳細資訊,請參閱 國家雲端。 |
後續步驟
如果本文的故障排除指引無法幫助你解決使用Azure SDK Java客戶端函式庫的問題,請在Java GitHub儲存庫的Azure SDK中提出問題。