Search by

lowelllab / hyperf-dpop-workspace

lowelllab

Development and verification workspace for a Hyperf DPoP extension.

Package info

github.com/lowelllab/hyperf-dpop

Type:project

pkg:composer/lowelllab/hyperf-dpop-workspace

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main 2026-11-03 03:05 UTC

This package is auto-updated.

Last update: 2026-11-03 03:05:58 UTC


README

为 Hyperf 应用提供基于 RFC 9449 的 DPoP(Demonstrating Proof of Possession)服务端认证扩展。通过校验客户端持钥证明,将访问令牌与客户端公钥绑定,降低令牌泄露后被直接冒用的风险。

核心功能

  • 证明验证:支持 ES256 签名,校验 HTTP 方法、目标 URI、公钥、时间窗口及访问令牌摘要 ath。
  • 令牌密钥绑定:支持 JWT 和不透明令牌,通过可替换的解析接口接入现有认证体系,校验令牌与证明公钥的绑定关系。
  • Nonce 挑战:提供必需的 nonce 校验、挑战响应及密钥轮换,按安全域、用途、origin 和公钥指纹隔离。
  • 原子防重放:默认使用 MySQL 独立事务和唯一约束登记证明,也支持 Redis 原子防重放驱动;业务回滚不释放已登记的证明。
  • 签发与刷新:提供令牌签发、刷新时的证明验证辅助接口,刷新时校验原有密钥绑定。
  • Hyperf 中间件:通过路由中间件保护资源,使用请求属性传递认证结果,隔离不同请求的身份信息。
  • 认证资源控制:提供 Redis 共享准入预算、来源限流和进程内验签并发限制,并在异常或协程取消时释放资源。
  • 配置与诊断:提供配置、DDL 及 HAProxy 网关模板发布、启动检查和只读 dpop:doctor 自检命令。
  • 可扩展接口:支持替换令牌绑定解析、公开 URI 解析、重放存储、准入预算、错误响应及认证指标采集。

组件结构

组件 功能
lowelllab/dpop-core 独立于框架的协议核心,负责证明验证、nonce、时间策略和防重放协调
lowelllab/hyperf-dpop Hyperf 适配层,提供依赖注入、中间件、存储驱动、配置及诊断命令

业务项目通过 Hyperf 扩展接入,协议核心作为依赖自动引入。

运行环境

  • PHP 8.5、Hyperf 3.2。
  • OpenSSL 扩展;默认 MySQL 防重放驱动需要 PDO MySQL 扩展。
  • 默认存储组合为 MySQL 防重放账本与 Redis 共享准入预算。

安装

composer require "lowelllab/hyperf-dpop:^0.1"

默认从Packagist安装正式版并自动引入协议核心,无需path/VCS仓库或开发稳定性设置。目标生产拓扑验收及独立安全审计仍须按部署范围完成。接入前按网关说明部署入口检查、剥离请求尾部并隔离后端。

使用边界

扩展负责 HTTP DPoP 证明验证。账号认证、令牌签发、会话撤销和业务权限由宿主应用实现,通信仍需使用 HTTPS。DPoP 证明不保护请求 body 和 query 的完整性。

当前支持 ES256,不包含 WebSocket 认证、客户端 SDK 或 mTLS 证书管理。

客户端 HTTP/2 需通过检查重复认证头的网关转发为 HTTP/1.1;Swoole 原生 HTTP/2 无法检查原始头,受保护接口返回 503。接入方式见网关说明。

使用文档

许可证

MIT