@azure/identity-broker

中文文档
1.4.3发布于 2026/10/30MITTypeScriptESM + CJS近 30 天下载 7860

Azure 身份认证的本地插件, 以允许像 WAM 这样的经纪人认证

中文使用文档
文档目录15 节
  1. 开始
  2. 先决条件
  3. 安装软件包
  4. 关键概念
  5. 父窗口控件
  6. 微软账户( MSA) 通过
  7. 重定向 URIs
  8. Azure 身份插件
  9. 实例
  10. 使用默认账户登录
  11. 解决问题
  12. 日志
  13. 今后的步骤
  14. 提供反馈
  15. 捐款

代理认证的 Azure 身份插件

此软件包为 JavaScript 提供了 Azure 身份库的插件(@azure/identity(a) 能够使用诸如下列认证经纪人: 瓦姆语。 。 。 .

认证中介是一个在用户的机器上运行的应用程序,管理连接账户的认证握手和维护令牌. 目前,仅支持Windows认证经纪人Web账户管理器(WAM).

源代码 | 样本 | API 参考文件 | 微软 Entra 标识文档

开始

import { useIdentityPlugin } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);

先决条件

注:用于地方发展 @azure/identity-broker,您可能需要安装额外的工具. 节点-gyp 用于编译 加词 用于访问系统 API。 安装需求列于 节点- gyp 读取。 。 。 .

在 Linux 上, 库使用 libsecret 所以你可能需要安装它。 根据您的分布, 您需要运行以下命令 :

  • 德比安/乌班图: sudo apt-get install libsecret-1-dev
  • 红帽型: sudo yum install libsecret-devel
  • Arch Linux : (原始内容存档于2019-09-29) sudo pacman -S libsecret

[注] 经纪认证目前只在Windows和Linux上支持. macOS还没有支持.

安装软件包

此软件包被设计为JavaScript与Azure身份一起使用. 安装两者 @azure/identity 使用 npm数字 :

npm install --save @azure/identity
npm install --save @azure/identity-broker

支持的环境

JavaScript的Azure身份插件支持从v20开始的Node.js的稳定(甚至编号)版本. 虽然插件可能运行在其他节点.js版本中,但不能保证支持. @azure/identity-broker 没有 支持浏览器环境.

关键概念

如果这是你第一次使用 @azure/identity 或微软Entra ID,我们建议您阅读 使用 @azure/identity 使用 Microsoft Entra ID 软件 先说 该文件将使您更深入地了解平台以及如何正确配置您的 Azure 账户 .

父窗口控件

与经纪人通过验证时 InteractiveBrowserCredential,需要一个父窗口控件,以确保在请求窗口上正确显示认证对话框。 在设备上的图形用户界面中,一个窗口手柄是操作系统分配给每个窗口的独特标识符. 对于Windows操作系统来说,这个手柄是一个整数值,作为特定窗口的参考.

微软账户( MSA) 通过

微软账户(MSA)是用户为访问微软服务而创建的个人账户. MSA通过是一种遗留的配置,使用户能够获得通常不接受MSA登录的资源的代号. 该功能仅供第一人的申请使用. 使用配置用于使用 MSA 通道的应用程序认证的用户可以设置 legacyEnableMsaPassthrough 改为 true 内部 InteractiveBrowserCredentialNodeOptions.brokerOptions 允许这些个人账户被WAM列出.

重定向 URIs

Microsoft Entra应用程序依赖重定向URI来确定用户登录后发送认证响应的地点. 为了能够通过WAM进行中介认证,应当向应用程序注册符合以下模式的重定向URI:

ms-appx-web://Microsoft.AAD.BrokerPlugin/{client_id}

Azure 身份插件

截止 @azure/identity 2.0.0版本,JavaScript的身份客户端库包含一个插件API. 此套件 (@azure/identity-broker)导出一个插件对象,您必须将其作为参数传递到顶层 useIdentityPlugin 函数从 @azure/identity 软件包。 在您的程序中启用本地经纪人如下 :

import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);

const credential = new InteractiveBrowserCredential({
  brokerOptions: {
    enabled: true,
    parentWindowHandle: new Uint8Array(0), // This should be a handle to the parent window
  },
});

打电话后 useIdentityPlugin,将本地经纪人插件注册到 @azure/identity 软件包,并在 InteractiveBrowserCredential 支持 WAM 代理认证。 这个证书 brokerOptions 在构建器选项中.

页:1页:1 @azure/identity 4.1.1.0-β.1版本, DefaultAzureCredential 通过 Windows 网络账户管理器为登录提供支持。 在您的程序中启用本地经纪人如下 :

import { useIdentityPlugin, DefaultAzureCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);

const credential = new DefaultAzureCredential();

实例

插件注册后,您可以通过路过启用 WAM 代理认证 brokerOptions 带有 enabled 设置为 true 给一个证书建筑师。 在下面的例子中,我们使用 InteractiveBrowserCredential。 。 。 .

import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);

const credential = new InteractiveBrowserCredential({
  brokerOptions: {
    enabled: true,
    parentWindowHandle: new Uint8Array(0), // This should be a handle to the parent window
  },
});

// We'll use the Microsoft Graph scope as an example
const scope = "https://graph.microsoft.com/.default";

// Print out part of the access token
console.log((await credential.getToken(scope)).token.substring(0, 10), "...");

关于使用 Electron app 检索窗口手柄的完整实例,请参见 此样本。 。 。 .

使用默认账户登录

当 useDefaultBrokerAccount 选项设定为 true,证书会试图默默使用默认的经纪人账户. 如果使用默认账户失败,证书将回归交互式认证.

import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);

const credential = new InteractiveBrowserCredential({
  brokerOptions: {
    enabled: true,
    useDefaultBrokerAccount: true,
    parentWindowHandle: new Uint8Array(0), // This should be a handle to the parent window
  },
});

// We'll use the Microsoft Graph scope 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), "...");

解决问题

参见 Azure 身份 解决问题指南 详细介绍如何诊断各种故障情况.

日志

允许伐木可能有助于发现有关失败的有用信息。 为了查看 HTTP 请求和回复的日志,设置 AZURE_LOG_LEVEL 环境变量改为 info。或者,可以在运行时拨打 setLogLevel 输入 @azure/logger数字 :

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

今后的步骤

提供反馈

如果你遇到错误或有建议,请 打开一个问题。 。 。 .

捐款

如果你想为图书馆捐钱,请看 贡献指南 学习如何构建和测试密码.

版本与发布记录

@azure/identity-broker 共发布 349 个版本,首次发布于 2023/10/27;过去 12 个月发布了 83 个版本。

版本发布日期距今
1.4.3latest2026/10/308 天前
1.4.22026/09/161 个月前
1.4.12026/08/192 个月前
1.4.02026/04/106 个月前
1.3.1-alpha.20260310.1dev2026/03/117 个月前
1.3.1-alpha.20260309.22026/03/107 个月前

关于 @azure/identity-broker 的常见问题

@azure/identity-broker 是什么?

Azure 身份认证的本地插件, 以允许像 WAM 这样的经纪人认证

如何安装 @azure/identity-broker?

在项目目录运行 npm install @azure/identity-broker,或使用 pnpm add / yarn add / bun add。

@azure/identity-broker 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@azure/identity-broker 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@azure/identity-broker 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@azure/identity-broker 可以商用吗?

@azure/identity-broker 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@azure/identity-broker 的下载量有多少?

根据 npm 官方下载统计,@azure/identity-broker 在 2026/10/08 – 2026/11/06 这 30 天内被下载 7,860 次,日均约 262 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@azure/identity-broker 还在维护吗?

最新版本 1.4.3 发布于 2026/10/30(8 天前);至今共发布 349 个版本,其中过去 12 个月发布了 83 个;首次发布于 2023/10/27。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。