適用於 Visual Studio Code 驗證的 Azure 身分識別外掛程式
此套件提供適用於 JavaScript 的 Azure 身分識別連結庫外掛程式(@azure/identity
),可透過 Visual Studio Code 的「Azure 帳戶」延伸模組進行驗證。 此外掛程式提供 @azure/identity
中 VisualStudioCodeCredential
的相依性,並讓它本身或作為 DefaultAzureCredential
的一部分使用。
開始
import { useIdentityPlugin } from "@azure/identity";
import { vsCodePlugin } from "@azure/identity-vscode";
useIdentityPlugin(vsCodePlugin);
先決條件
安裝套件
此套件的設計目的是要與適用於 JavaScript 的 Azure 身分識別搭配使用。 使用 npm
安裝 @azure/identity
與此套件:
$ npm install --save @azure/identity
$ npm install --save-dev @azure/identity-vscode
支援的環境
從 v12 開始,適用於 JavaScript 的 Azure 身分識別外掛程式支援穩定(偶數編號)Node.js 版本。 雖然外掛程式可以在其他 Node 版本中執行,但不保證支援。
@azure/identity-vscode
不支援瀏覽器環境。
重要概念
如果這是您第一次使用 @azure/identity
或 Microsoft 身分識別平臺 (Azure Active Directory),建議您先閱讀 搭配 Microsoft Identity Platform 使用 @azure/identity
。 本檔可讓您更深入了解平臺,以及如何正確設定您的 Azure 帳戶。
Azure 身分識別外掛程式
自 @azure/identity
2.0.0 版起,適用於 JavaScript 的身分識別客戶端連結庫包含外掛程式 API。 此套件 (@azure/identity-vscode
) 會匯出外掛程式物件,您必須從 @azure/identity
套件將自變數當做自變數傳遞至最上層 useIdentityPlugin
函式。 透過 Visual Studio Code 的「Azure 帳戶」擴充功能啟用驗證,如下所示:
import { useIdentityPlugin } from "@azure/identity";
import { vsCodePlugin } from "@azure/identity-vscode";
useIdentityPlugin(vsCodePlugin);
呼叫 useIdentityPlugin
之後,將會啟用來自 @azure/identity
套件的 VisualStudioCodeCredential
。 如果未使用此外掛程式,則 VisualStudioCodeCredential
會擲回 CredentialUnavailableError
,而且將無法作為 DefaultAzureCredential
的一部分使用。
Visual Studio Code 驗證
VisualStudioCodeCredential
會使用來自 「Azure 帳戶」擴充功能的驗證會話。 若要使用此認證,您必須使用擴充功能登入您的 Azure 帳戶。 若要這樣做,請開啟 Visual Studio Code,確定已安裝擴充功能,並使用 [Azure: 登入] 選項從 命令選擇區 登入,以開啟瀏覽器視窗並登入 Azure。 或者,您可以選取 [Azure:使用裝置程式代碼登入] 以使用裝置程式代碼流程。
登入之後,您可能需要選取訂用帳戶(例如,如果您有多個 Azure 訂用帳戶),而且您可以使用功能表來變更使用中的訂用帳戶,以選取 [Azure:選取訂用帳戶] 專案。
例子
註冊外掛程式之後,您可以使用與 @azure/identity
中的其他認證類別類似的方式 VisualStudioCodeCredential
:
import { useIdentityPlugin, VisualStudioCodeCredential } from "@azure/identity";
import { vsCodePlugin } from "@azure/identity-vscode";
useIdentityPlugin(vsCodePlugin);
async function main() {
const credential = new VisualStudioCodeCredential();
// The graph.microsoft.com scope is used as an example
const scope = "https://graph.microsoft.com/.default";
// Print out part of the access token
console.log((await credential.getToken(scope)).token.substr(0, 10), "...");
}
main().catch((error) => {
console.error("An error occurred:", error);
process.exit(1);
});
您也可以使用 DefaultAzureCredential
,如果 Visual Studio Code 可以使用,它會嘗試使用 Visual Studio Code 的「Azure 帳戶」擴充功能進行驗證:
import { useIdentityPlugin, DefaultAzureCredential } from "@azure/identity";
import { vsCodePlugin } from "@azure/identity-vscode";
useIdentityPlugin(vsCodePlugin);
async function main() {
// With the plugin enabled above, `DefaultAzureCredential` will use
// Visual Studio Code's "Azure Account" extension to authenticate if
// it is available.
const credential = new DefaultAzureCredential();
// This will print a JWT access_token and its expiration timestamp
// The graph.microsoft.com scope is used as an example
console.log("Token:", await credential.getToken("https://graph.microsoft.com/.default"));
}
main().catch((error) => {
console.error("An error occurred:", error);
process.exit(1);
});
故障排除
伐木
啟用記錄可能有助於找出有關失敗的實用資訊。 若要查看 HTTP 要求和回應的記錄,請將 AZURE_LOG_LEVEL
環境變數設定為 info
。 或者,您可以在運行時間啟用記錄,方法是在 @azure/logger
中呼叫 setLogLevel
:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
後續步驟
提供意見反應
貢獻
如果您想要參與此連結庫,請閱讀 參與指南,以深入瞭解如何建置和測試程序代碼。