1. 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | dpop-adoption-google-skills |
| 作者/维护者 | Google(google/skills 官方仓库) |
| 来源链接 | https://github.com/google/skills/tree/main/skills/identity/dpop-adoption |
| 许可证 | Apache-2.0(数据来自 GitHub API) |
| GitHub Stars / Forks | 该技能所属的 google/skills 为多技能合集仓库,仓库整体 19,643 Stars / 1,581 Forks(数据来自 GitHub API);该数字属整个合集,不代表本技能自身热度,本技能自身暂无独立的第三方热度数据 |
| 最新版本 | 无独立版本号,随仓库主分支更新(最近一次仓库提交为 2026-09-06) |
| 安装方式 | 从仓库子目录复制 skills/identity/dpop-adoption/ 到本地 agent 的 skills 目录 |
2. 功能介绍与亮点
dpop-adoption 教 AI 编程助手为集成 Google OAuth 2.0 平台的应用实现 DPoP(Demonstrating Proof-of-Possession,RFC 9449)刷新令牌绑定,核心亮点:
- 完整的密钥与签名规范:明确要求生成不可导出(non-extractable)的 P-256 密钥对,私钥被硬件安全边界(Secure Enclave / Android KeyStore)保护,无法被 XSS 或依赖投毒攻击窃取。
- 协议细节全覆盖:包含 JWK 导出格式、IEEE P1363 与 ASN.1 DER 签名格式的辨析、
use_dpop_nonce挑战重试循环的精确处理逻辑,这些是开发者手动实现 DPoP 时最容易踩坑的环节。 - 明确的公开 API 契约:给出
createDPoPProof、verifyDPoPProof等函数的精确签名与参数派生规则,AI 助手可直接据此生成可运行代码。 - 覆盖单页应用限制场景:专门说明纯前端 SPA 无法直接对 Google API 使用 DPoP 的原因,并给出 Backend-for-Frontend(BFF)架构的规避方案。
- 全文附官方 Google Identity 开发者文档与 RFC 9449/7519/7636 原文链接,来源可追溯。
3. 适用场景
所属分类:安全与合规
适用于需要为 Web、Node.js 或浏览器运行时应用加固 Google OAuth 2.0 认证流程的开发者——尤其是处理用户日历、邮箱、云盘等敏感数据、需要防范刷新令牌被窃取后重放的场景。典型受益人群:实现 Google 第三方登录/API 集成的后端工程师、需要满足更高安全合规要求(如金融、医疗类应用)的团队。
4. 跨 Agent 兼容性
| Agent | 结论 | 依据 |
|---|---|---|
| Claude Code | 原生支持 | 纯 Markdown 指令 + 代码生成规范,无平台特定工具调用 |
| Codex | 原生支持 | 同上,标准 SKILL.md 格式,仅依赖通用 WebCrypto/Node.js 知识 |
| OpenClaw | 原生支持 | 同上 |
| Hermes Agent | 原生支持 | 同上;技能内容为纯指令性知识,不依赖特定 agent 运行时能力 |
技能正文提及的 Google Developer Knowledge MCP Server 为可选加成(供 agent 实时查文档),非必需依赖,不影响基础可用性。
5. 推荐理由
DPoP 是 OAuth 2.1 与 Model Context Protocol(MCP)均推荐的令牌加固机制,也是金融级开放银行安全规范 FAPI 2.0 认可的两种发送者约束方案之一,但其实现细节繁杂(密钥管理、签名格式、nonce 重试)极易出错。本技能把 Google 官方对接这些细节的全部要求整理成可直接执行的规范,能显著降低开发者手动实现该协议时的出错率,是安全加固类技能中少见的“协议级精度”文档。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 7 | 发布方 Google 为该 OAuth 平台的所有者,属第一方官方出品;未发现该子技能自身独立的第三方讨论或采用数据,暂无证据支持更高档位 |
| 可用性 | 8 | 文档给出精确到函数签名与参数派生逻辑的实现规范,覆盖密钥生成、签名格式辨异、nonce 重试、SPA 架构限制等边界情况,配官方文档与 RFC 原文链接;随仓库主分支持续维护 |
| 安全性 | 9 | 纯指令与代码生成类技能,不执行 shell 命令、不联网外发数据;内容本身即在教授安全最佳实践(私钥不可导出、避免密钥泄露),License 明确 |
安全检查清单:① 不执行 shell 命令 ② 不联网外发数据 ③ 不涉及 API key/凭据存储(只处理开发者自行生成的密钥对,且强制要求不可导出)④ 未发现可疑指令或 prompt injection 迹象 ⑤ 作者为 Google 官方,信誉良好 ⑥ License(Apache-2.0)明确 ⑦ 仓库近期(2026-09-06)仍在维护
综合评分:8.0
7. 跟同类 Skills 相比的优势
| 技能 | 定位 | 与 dpop-adoption 的差异 |
|---|---|---|
| clerk-cli / clerk-webhooks(Clerk 官方) | 第三方身份服务 Clerk 的 CLI 与 Webhook 集成 | 面向 Clerk 平台的账户/会话管理,不涉及 DPoP 令牌绑定协议本身 |
| azure-identity-py(Microsoft 官方) | Azure AD 身份认证的 Python SDK 使用指南 | 覆盖的是 Azure 生态的身份认证接入,不处理令牌发送者约束这一安全增强机制 |
| workos-workos-skills(WorkOS 官方) | 面向 WorkOS 企业身份平台的集成指南 | 聚焦 SSO/目录同步等企业身份功能,未涉及 DPoP 协议实现细节 |
dpop-adoption 是目前少数专注于“令牌发送者约束”这一细分安全协议、且给出协议级实现精度的技能,与上述侧重“平台账户/身份服务对接”的同类技能形成互补而非直接竞争。
8. 用户评价
该技能目前在第三方平台尚无具名用户评价。DPoP(RFC 9449)作为协议本身已被 OAuth 2.1、MCP 与 FAPI 2.0 等规范采纳并推荐,但本技能作为 google/skills 仓库内的具体实现指南尚未发现独立的第三方讨论或评测。
9. 其他补充
无。
10. 安装使用方式
将 skills/identity/dpop-adoption/ 目录复制到所使用 agent 的 skills 目录下即可启用;触发方式为在对话中提出“为 Google OAuth 集成实现 DPoP”“处理 use_dpop_nonce 挑战”等相关需求,agent 会自动加载本技能的实现规范生成对应代码。无需额外安装依赖或重启。
11. 注意事项
- 本技能只覆盖 Google OAuth 平台的 DPoP 实现细节(刷新令牌绑定),不适用于无需令牌发送者约束的常规 OAuth 2.0 流程,也不适用于 Google Cloud IAM / 服务账号认证场景(SKILL.md 正文明确排除)。
- 纯前端单页应用(SPA)无法直接对 Google API 使用 DPoP,需按技能中给出的 BFF(Backend-for-Frontend)架构改造。
- 遗留 Java/Android 或 Node.js CommonJS 环境需要额外处理 ASN.1 DER 与 IEEE P1363 签名格式转换,现代 WebCrypto 环境无需此步骤,使用前需确认自己的运行时环境。