你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
用于Visual Studio Code身份验证的 Azure 标识插件
此包为适用于 JavaScript () @azure/identity
的 Azure 标识库提供了一个插件,该插件通过 Visual Studio Code 的“Azure 帐户”扩展进行身份验证。 此插件提供 中 @azure/identity
的VisualStudioCodeCredential
依赖项,并使它能够单独使用或作为 的一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 或有建议,请创建问题。
贡献
若要为此库做出贡献,请阅读贡献指南,详细了解如何生成和测试代码。