你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

用于Visual Studio Code身份验证的 Azure 标识插件

此包为适用于 JavaScript () @azure/identity 的 Azure 标识库提供了一个插件,该插件通过 Visual Studio Code 的“Azure 帐户”扩展进行身份验证。 此插件提供 中 @azure/identityVisualStudioCodeCredential依赖项,并使它能够单独使用或作为 的一DefaultAzureCredential部分使用。

源代码 | 样品

入门

import { useIdentityPlugin } from "@azure/identity";
import { vsCodePlugin } from "@azure/identity-vscode";

useIdentityPlugin(vsCodePlugin);

先决条件

安装包

此包旨在与适用于 JavaScript 的 Azure 标识一起使用。 @azure/identity使用 npm安装 和 此包:

$ npm install --save @azure/identity
$ npm install --save-dev @azure/identity-vscode

支持的环境

适用于 JavaScript 的 Azure 标识插件支持从 v12 开始的稳定 (甚至编号) Node.js版本。 虽然插件可以在其他 Node 版本中运行,但不能保证支持。 @azure/identity-vscode 不支持 浏览器环境。

关键概念

如果这是你第一次使用 @azure/identity 或 Microsoft 标识平台 (Azure Active Directory),建议你先阅读通过 Microsoft 标识平台使用 @azure/identity。 本文档将让你更深入地了解平台以及如何正确配置 Azure 帐户。

Azure 标识插件

@azure/identity从版本 2.0.0 起,适用于 JavaScript 的标识客户端库包含插件 API。 此包 (@azure/identity-vscode) 导出插件对象,必须将其作为参数传递给包中的@azure/identity顶级useIdentityPlugin函数。 通过“Azure 帐户”扩展为Visual Studio Code启用身份验证,如下所示:

import { useIdentityPlugin } from "@azure/identity";
import { vsCodePlugin } from "@azure/identity-vscode";

useIdentityPlugin(vsCodePlugin);

调用 useIdentityPlugin后, VisualStudioCodeCredential 将启用包中的 @azure/identity 。 如果未使用此插件,则 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 的“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");

后续步骤

提供反馈

如果遇到 bug 或有建议,请创建问题

贡献

若要为此库做出贡献,请阅读贡献指南,详细了解如何生成和测试代码。

曝光数