共用方式為


適用於 Visual Studio Code 驗證的 Azure 身分識別外掛程式

此套件提供適用於 JavaScript 的 Azure 身分識別連結庫外掛程式(@azure/identity),可透過 Visual Studio Code 的「Azure 帳戶」延伸模組進行驗證。 此外掛程式提供 @azure/identityVisualStudioCodeCredential 的相依性,並讓它本身或作為 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");

後續步驟

提供意見反應

如果您遇到錯誤或有建議,請 開啟問題。

貢獻

如果您想要參與此連結庫,請閱讀 參與指南,以深入瞭解如何建置和測試程序代碼。

印象