針對開發環境驗證進行疑難解答
本文提供指引,說明透過各種 TokenCredential
實作,在開發人員計算機上本機執行之適用於 Java 應用程式的 Azure SDK 驗證時遇到的問題。 如需詳細資訊,請參閱 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 帳戶擴充功能版本。 此問題的長期修正正在進行中。 同時,請考慮 透過 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 存放庫中提出問題。