@bluecateng/mock-oidc-provider

中文文档
0.4.0发布于 2026/08/12ISC构建来源已验证近 30 天下载 1744

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

中文使用文档
文档目录15 节
  1. 使用量
  2. 与 npx
  3. 与 docker
  4. 配置
  5. 参数
  6. 发行人
  7. 用户
  8. 客户
  9. 电话
  10. 终点
  11. 支持的工作流量
  12. 支持的索赔和范围
  13. 已知的限制
  14. 示例 OIDC 客户端配置
  15. 许可证

锁定 OpenID 连接提供者

ESLint CodeQL GitHub license npm version

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

此提供者基于 OpenID 连接核心 1.0 规格, (中文(简体) ), 并受到 OpenID 提供者模拟器 财务报告和审定财务报表 橡皮- 模具服务器。 。 。 . JWT和加密功能 乔斯。 。 。 .

重要安全说明: 这个模拟提供者只用于开发和测试。 它缺乏全面的安全性能,持续存储,并完全遵守了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: 包含 仅限 在进入标志.

示例

- sub: eeny
  email: [email protected]
  idClaims:
    name: Eeny
  accessClaims:
    mock: a
- sub: meeny
  email: [email protected]
  idClaims:
    name: Meeny
  accessClaims:
    mock: b
- sub: miny
  email: [email protected]
  idClaims:
    name: Miny
  accessClaims:
    mock: c

客户

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

客户端文件格式( YAML) :

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

示例

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

电话

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

  • --cert <file>
  • --key <file>

这些文件直接传递给 https.createServer。 。 。 .

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

许可证

公务员制度委员会

版本与发布记录

@bluecateng/mock-oidc-provider 共发布 9 个版本,首次发布于 2025/07/05;过去 12 个月发布了 7 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.4.0latest2026/08/122 个月前
0.3.42026/04/017 个月前
0.3.32026/03/317 个月前
0.3.22026/03/317 个月前
0.3.12026/03/317 个月前
0.3.02025/12/0611 个月前

关于 @bluecateng/mock-oidc-provider 的常见问题

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