# @bluecateng/mock-oidc-provider 中文文档

规范地址：https://npmcn.com/package/%40bluecateng/mock-oidc-provider/

版本：0\.4\.0
npm 元数据更新时间：2026-08-12T13:32:08.388Z
中文译文更新时间：2026-11-09T20:34:54.129Z
软件包许可：ISC

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

原始 npm 页面：https://www.npmjs.com/package/%40bluecateng/mock-oidc-provider
原文对照：https://npmcn.com/package/%40bluecateng/mock-oidc-provider/?lang=original
项目主页：https://github.com/bluecatengineering/mock-oidc-provider#readme
源码仓库：https://github.com/bluecatengineering/mock-oidc-provider

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

- 包体积（解压后）：31.8 kB，4 个文件
- TypeScript 类型：未声明
- Node.js 要求：\>=22
- 运行依赖：5 个
- 首次发布：2025-07-04T20:05:55.019Z
- 最新版本发布：2026-08-12T13:32:07.999Z
- 近 30 天下载量：1744（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：9（近 12 个月 7 个）

## 中文简介

用于测试的 Moc OpenID 连接服务器

## 安装

```sh
npm install @bluecateng/mock-oidc-provider
```

也可以使用：`pnpm add @bluecateng/mock-oidc-provider`、`yarn add @bluecateng/mock-oidc-provider`、`bun add @bluecateng/mock-oidc-provider`

## README

# 锁定 OpenID 连接提供者

![ESLint](https://github.com/bluecatengineering/mock-oidc-provider/workflows/ESLint/badge.svg) ![CodeQL](https://github.com/bluecatengineering/mock-oidc-provider/workflows/CodeQL/badge.svg) [![GitHub license](https://img.shields.io/badge/license-ISC-blue.svg)](https://github.com/bluecatengineering/mock-oidc-provider/blob/main/LICENSE) [![npm version](https://img.shields.io/npm/v/@bluecateng/mock-oidc-provider.svg?style=flat)](https://www.npmjs.com/package/@bluecateng/mock-oidc-provider)

可供测试的模拟 OpenID 连接提供者 .

此提供者基于 [OpenID 连接核心 1.0 规格](https://openid.net/specs/openid-connect-core-1_0.html), (中文(简体) ), 并受到 [OpenID 提供者模拟器](https://github.com/geigerzaehler/oidc-provider-mock) 财务报告和审定财务报表 [橡皮- 模具服务器](https://github.com/axa-group/oauth2-mock-server)。 。 。 . JWT和加密功能 [乔斯](https://github.com/panva/jose)。 。 。 .

> **重要安全说明:** 这个模拟提供者只用于开发和测试。 它缺乏全面的安全性能,持续存储,并完全遵守了OpenID Connect的所有要求. **不要在生产中使用,或将其公开在公共互联网上.**
> 
> -   不保护CSRF
> -   没有限制或虐待保护的费率
> -   所有会话和令牌只存储在记忆中
> -   会话 cookie 需要本地主机或 HTTPS
> -   并非所有OIDC的规格特性和预付索偿都得到落实

## 使用量

您可以通过 `npx` 或者说 `docker`。 。 。 .

### 与 `npx`

`npx @bluecateng/mock-oidc-provider`

### 与 `docker`

`docker run --name mock-oidc-provider --rm -p 8092:80 ghcr.io/bluecatengineering/mock-oidc-provider`

## 配置

### 参数

服务器可以通过命令行参数或环境变量配置.

| 命令行 | 环境 var | 说明 | 默认 |
| --- | --- | --- | --- |
| \-p, -- -- 端口 | 港口 | hTTP 服务器将聆听的端口 | 8092 (英语) |
| \-s, --tls-port (英语) | 端口( T) | hTTPS 服务器会听的端口( 当启用 TLS 时) | 8443号 |
| \-t, -ttl (英语) | TTL 电话 | 活的时间为符 (秒) | 三百块 |
| 用户 | 用户( F) | 用户 YAML 文件的路径 |  |
| \-我 客户 | 单位( F) | 客户端 YAML 文件的路径 |  |
| \-c, --cert (英语) | CERT 文件夹 | TLS 证书文件( 见 TLS 一节) |  |
| \-k, --键 | 关键文件( F) | TLS 私有密钥文件( 参见 TLS 一节) |  |
| \-i, -- -- 发行商 | 乌拉圭 | 要使用的静态发行器 URL 而不是请求主机 |  |
| \- j, - jwk (英语) | JWK 文件夹 | 用于签名符号的 JWK 文件的路径 |  |
| \-- 拯救 -- jwk |  | 将活动 JWK 保存到给定文件 |  |

若为 `--jwk` 未提供,则自动生成随机的RSA密钥. 使用 `--save-jwk <file>` 将活动 JWK( 生成或装入) 写入 JSON 文件, 供以后再使用.

### 发行人

发行商是 `issuer` 字段和 `iss` 在每一个标志. 它也决定了发现文件中所发表的端点URL,这样它们就总是互相同意.

若为 `--issuer` 未提供,发行人从每项请求中衍生出: `<protocol>://<host>/` (结束于 `/` 为 Auth0 兼容性。 转至 `--issuer` 用于逐字记录.

#### 在反向代理后面

这个 `X-Forwarded-Proto` 财务报告和审定财务报表 `X-Forwarded-Host` 信封是荣誉的,所以一个供应商在后面跑 TLS 终止代理广告 `https://` URL,而不是内部的:

```
issuer                 https://auth.example.com/
authorization_endpoint https://auth.example.com/authorize
```

这些信头是从 **任意** 客户端,这意味着一个呼叫者可以影响所公告的URL. 设定 `--issuer` 将发行者固定在固定值中,而不论收到的标题.

### 用户

默认情况下,提供两个用户(`foo` 财务报告和审定财务报表 `bar`) (中文(简体) ). 如果提供了用户文件, 它 **替换** 默认用户.

用户文件格式( YAML) :

-   顶级值必须是数组 .
-   每个阵列条目必须是包含以下内容的对象:
    -   `sub` (字符串):主题标识符.
    -   可选的其他要求包括进入和身份证.
    -   可选 `idClaims`: 包含 **仅限** 身份证明.
    -   可选 `accessClaims`: 包含 **仅限** 在进入标志.

#### 示例

```yaml
- sub: eeny
  email: eeny@example.com
  idClaims:
    name: Eeny
  accessClaims:
    mock: a
- sub: meeny
  email: meeny@example.com
  idClaims:
    name: Meeny
  accessClaims:
    mock: b
- sub: miny
  email: miny@example.com
  idClaims:
    name: Miny
  accessClaims:
    mock: c
```

### 客户

默认情况下,将提供一个客户端(`baz`) (中文(简体) ). 如果提供客户端文件 **替换** 默认客户端.

客户端文件格式( YAML) :

-   顶级值必须是数组 .
-   每个阵列条目必须是包含以下内容的对象:
    -   `sub` (字符串):客户端标识符.
    -   可选的附加要求将包含在访问符中.

#### 示例

```yaml
- sub: service-a
  role: machine
- sub: service-b
  team: platform
```

### 电话

为了启用HTTPS,请具体说明:

-   `--cert <file>`
-   `--key <file>`

这些文件直接传递给 [`https.createServer`](https://nodejs.org/docs/latest-v22.x/api/https.html#httpscreateserveroptions-requestlistener)。 。 。 .

TLS 启用时 :

-   一个 HTTP 服务器 **永远** 运行 `--port` (默认:8092).
-   HTTPS 服务器也在运行 `--tls-port` (默认:8443).

如果没有启用 TLS( 没有指定证书/ 密钥), 只有 HTTP 服务器运行 .

## 终点

发现文件`/.well-known/openid-configuration`) 暴露所有支持的端点.

主要终点:

-   `/.well-known/openid-configuration` - OIDC发现元数据
-   `/.well-known/jwks.json` - JWKS 用于符号验证
-   `/authorize` - 授权终点
-   `/oauth/token` - 托肯端点
-   `/oauth/revoke` - 托肯撤销
-   `/oidc/logout` - 结束会话
-   `/userinfo` — 用户信息端点
-   `/introspect` ——深入回顾
-   `/api/clear` —— 说 **测试工具**: 清除所有会话和授权代码

## 支持的工作流量

-   授权代码流
-   授权代码随 PKCE 流动
-   客户证书流程
-   资源所有者密码流程

> 这个 **隐性流动** 实值 _没有_ 已支持.

## 支持的索赔和范围

-   所有用户对象属性都同时出现在访问和ID符中,除了:
    -   `idClaims`: 仅限标识符
    -   `accessClaims`: 仅限访问符
-   `/userinfo` 返回所有用户要求;范围是 **未执行**。 。 。 .
-   标准OIDC范围`openid`, (中文(简体) ), `profile`, (中文(简体) ), `email`)被接受但不严格验证.

## 已知的限制

-   还没准备好.
-   未完全遵守OIDC.
-   所有状态被存储在记忆中.
-   没有CSRF的保护,没有限制费率.
-   最小验证客户端认证 .
-   只能用于当地开发或CI环境.

## 示例 OIDC 客户端配置

发现 URL :

```
http://localhost:8092/.well-known/openid-configuration
```

客户端配置 :

-   **客户名 :** 任意字符串( 客户认证未执行)
-   **重定向 URI :** 必须匹配传递到的值 `/authorize`
-   **范围:** `openid profile email` 或视需要
-   **反应类型 :** `code`

## 许可证

[公务员制度委员会](https://npmcn.com/package/%40bluecateng/mock-oidc-provider/LICENSE)

## 常见问题

### @bluecateng/mock-oidc-provider 是什么？

用于测试的 Moc OpenID 连接服务器

### 如何安装 @bluecateng/mock-oidc-provider？

在项目目录运行 npm install @bluecateng/mock-oidc-provider，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 mock-oidc-provider，可以用 npx mock-oidc-provider 直接运行。

### @bluecateng/mock-oidc-provider 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/bluecateng\_\_mock-oidc-provider 是否存在。

### @bluecateng/mock-oidc-provider 需要什么版本的 Node\.js？

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

### @bluecateng/mock-oidc-provider 可以商用吗？

@bluecateng/mock-oidc-provider 使用 ISC 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @bluecateng/mock-oidc-provider 的下载量有多少？

根据 npm 官方下载统计，@bluecateng/mock-oidc-provider 在 2026/10/09 – 2026/11/07 这 30 天内被下载 1,744 次，日均约 58 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @bluecateng/mock-oidc-provider 还在维护吗？

最新版本 0\.4\.0 发布于 2026/08/12（2 个月前）；至今共发布 9 个版本，其中过去 12 个月发布了 7 个；首次发布于 2025/07/05。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

