SuperAPI AI 工具集

auth-ops

安全与审计

查看项目

更新于 10-13 16:34

技能介绍

用途

auth-ops 是一套用于安全应用开发的认证与授权模式参考资料,面向需要在多种语言和框架中实现登录、令牌、会话、权限控制等功能的开发者。它以决策树和速查表的形式组织内容,帮助根据具体场景选择合适的认证与授权策略。

主要内容

认证方式决策树

资料按“你在构建什么”给出选择路径:

  • 传统服务端渲染 Web 应用:基于会话的认证(服务端存储会话数据于 Redis/DB,httpOnly Cookie 保存会话 ID,适用于单体、SSR 应用、管理面板)。
  • 多客户端消费的 API:JWT(无状态自包含令牌,短效访问令牌 + 长效刷新令牌,适用于微服务、移动应用、经 BFF 的 SPA)。
  • 服务间通信:API Key 或 OAuth2 客户端凭证(适用于内部服务、第三方集成)。
  • 第三方登录:OAuth2 / OpenID Connect(授权码 + PKCE,适用于消费级应用、社交登录)。
  • 无密码认证:Passkeys(WebAuthn)或魔法链接。
  • 已有 IdP 的内部工具/员工应用:身份感知代理(Cloudflare Access),在边缘执行认证,源站在代理之后校验签名 JWT。

JWT 速查

涵盖结构(Header.Payload.Signature)、常见声明(iss、sub、exp、iat、aud、jti、nbf)及用途,并对比签名算法 RS256、ES256(非对称)与 HS256(对称)的适用场景。资料给出的经验规则是:令牌签发方与验证方为不同服务时使用非对称算法。

访问令牌与刷新令牌模式

访问令牌短效(5–15 分钟)用于 API 调用;刷新令牌长效(7–30 天)用于获取新访问令牌。资料建议每次使用轮换刷新令牌并作废旧令牌,通过令牌家族追踪检测重用。

OAuth2 流程决策树

按客户端类型选择:Web 应用后端用授权码 + PKCE;无后端 SPA 经 BFF 使用授权码 + PKCE;移动应用用授权码 + PKCE(公共客户端必须 PKCE);服务端到服务端用客户端凭证;CLI 或智能电视用设备码;代表用户的微服务用令牌交换(RFC 8693,act 声明表示委托链)。

授权模型决策树

  • 简单直接权限:user_permissions 表,适合小型应用与原型。
  • RBAC:角色(admin、editor、viewer)绑定权限,适合多数应用、管理面板、团队工具。
  • ABAC:基于主体、资源、环境属性评估策略,适合企业、合规密集、依赖上下文的访问。
  • ReBAC:基于关系(Google Zanzibar 模型,元组形式,支持继承),工具包括 OpenFGA、SpiceDB、Ory Keto,适合文件共享、嵌套资源、社交功能。

会话管理速查

列出 Cookie 安全设置(SameSite 的 Strict/Lax/None、Secure、HttpOnly、__Host- 与 __Secure- 前缀、Max-Age、Path)及推荐配置示例,并给出会话过期策略(空闲超时、绝对超时、滑动窗口、记住我)。

密码处理速查

哈希算法评价:argon2id 为最佳(内存硬、抗 GPU 攻击、OWASP 推荐),bcrypt 良好(成本因子 12+,72 字节输入限制),scrypt 良好,PBKDF2 可接受(FIPS 合规),SHA-256/512 不佳,MD5 绝不可用。给出 NIST 800-63B 密码规则与登录速率限制建议,并提醒使用一致响应时间防止基于时间的用户名枚举。

MFA 速查

按安全性排序方法(WebAuthn/Passkeys 最高、TOTP、推送、邮件 OTP、短信 OTP 最低),并给出 TOTP 实施清单与 Passkey/WebAuthn 清单。

身份感知代理速查

以 Cloudflare Access、Google IAP、oauth2-proxy 为例,强调两条不变量:验证断言(校验签名 + 签发者 + 每应用受众,对照 JWKS,不信任普通 email 便捷头)和封闭源站所有旁路(确保代理是访问源站的唯一路径)。

常见陷阱

列出包括 JWT 存于 localStorage、OAuth2 缺少 PKCE、RBAC 角色爆炸、令牌字符串比较的时序攻击、无令牌吊销策略、CORS 与 credentials 组合、SameSite=None 缺少 Secure、刷新令牌重用未检测、使用已弃用的 Implicit 授权、密码出现在 URL 或日志、缺少 CSRF 防护、访问令牌过长、API Key 明文存储、未校验 JWT aud、会话固定、硬编码密钥、信任身份感知代理的普通 email 头、仅依赖中间件做会话检查等问题及修复建议。

参考文件

资料列出 references/jwt-sessions.md(约 650 行)、references/oauth2-oidc.md(约 700 行)、references/authorization.md(约 600 行)、references/implementation.md(约 550 行)、references/cloudflare-access.md(约 330 行)、references/better-auth.md(约 240 行)的各自内容。另附相关主题:security-ops、api-design-ops、postgres-ops、cloudflare-ops。

适用场景

适用于需要在 Web 应用、API、微服务、移动应用、内部工具等场景中设计或审查认证与授权实现的开发者。

限制

本资料为模式参考与决策指南,未提供具体语言或框架的完整可运行代码;实际实现需结合具体技术栈。部分内容(如 Better Auth 库细节)仅以参考文件形式提及,正文未展开。