# @azure/identity-broker 中文文档

规范地址：https://npmcn.com/package/%40azure/identity-broker/

版本：1\.4\.3
npm 元数据更新时间：2026-10-29T23:29:08.349Z
中文译文更新时间：2026-11-07T15:29:37.932Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40azure/identity-broker
原文对照：https://npmcn.com/package/%40azure/identity-broker/?lang=original
项目主页：https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/identity/identity-broker/README.md
源码仓库：https://github.com/Azure/azure-sdk-for-js

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：23 kB，14 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.0\.0
- 运行依赖：5 个
- 首次发布：2023-10-26T23:38:02.600Z
- 最新版本发布：2026-10-29T23:29:08.143Z
- 近 30 天下载量：7860（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：349（近 12 个月 83 个）

## 中文简介

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

## 安装

```sh
npm install @azure/identity-broker
```

也可以使用：`pnpm add @azure/identity-broker`、`yarn add @azure/identity-broker`、`bun add @azure/identity-broker`

## README

# 代理认证的 Azure 身份插件

此软件包为 JavaScript 提供了 Azure 身份库的插件([`@azure/identity`](https://npmjs.com/package/@azure/identity)(a) 能够使用诸如下列认证经纪人: [瓦姆语](https://learn.microsoft.com/entra/identity-platform/scenario-desktop-acquire-token-wam)。 。 。 .

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

[源代码](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/identity/identity-broker) | [样本](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity-broker/samples) | [API 参考文件](https://learn.microsoft.com/javascript/api/overview/azure/identity-broker-readme?view=azure-node-latest) | [微软 Entra 标识文档](https://learn.microsoft.com/entra/identity/)

## 开始

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

useIdentityPlugin(nativeBrokerPlugin);
```

### 先决条件

-   一个 [Azure 订阅](https://azure.microsoft.com/free/nodejs/)。 。 。 .

> 注:用于地方发展 `@azure/identity-broker`,您可能需要安装额外的工具. [节点-gyp](https://github.com/nodejs/node-gyp) 用于编译 [加词](https://nodejs.org/api/addons.html) 用于访问系统 API。 安装需求列于 [节点- gyp 读取](https://github.com/nodejs/node-gyp#installation)。 。 。 .

在 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`数字 :

```sh
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 软件](https://github.com/Azure/azure-sdk-for-js/blob/main/documentation/using-azure-identity.md) 先说 该文件将使您更深入地了解平台以及如何正确配置您的 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` 软件包。 在您的程序中启用本地经纪人如下 :

```ts
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 网络账户管理器为登录提供支持。 在您的程序中启用本地经纪人如下 :

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

useIdentityPlugin(nativeBrokerPlugin);

const credential = new DefaultAzureCredential();
```

## 实例

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

```ts
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 检索窗口手柄的完整实例,请参见 [此样本](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity-broker/samples/v1/typescript/src/index.ts)。 。 。 .

### 使用默认账户登录

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

```ts
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 身份 [解决问题指南](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/TROUBLESHOOTING.md) 详细介绍如何诊断各种故障情况.

### 日志

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

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

setLogLevel("info");
```

## 今后的步骤

### 提供反馈

如果你遇到错误或有建议,请 [打开一个问题](https://github.com/Azure/azure-sdk-for-js/issues)。 。 。 .

## 捐款

如果你想为图书馆捐钱,请看 [贡献指南](https://github.com/Azure/azure-sdk-for-js/blob/main/CONTRIBUTING.md) 学习如何构建和测试密码.

## 常见问题

### @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 和提交记录判断。

