mcpField
A
auth-implementation-patterns

auth-implementation-patterns

github.com/wshobson安全41.9k20.0k 次安装2 周前更新
代码仓库

关于 auth-implementation-patterns

为应用和 API 实现身份认证与授权的指南,介绍会话、令牌及 OAuth2/OpenID Connect 方案,并说明安全实践和常见问题。

主要功能

  1. 01区分身份认证与授权
  2. 02比较会话和令牌策略
  3. 03涵盖 OAuth2 与 OpenID Connect
  4. 04采用安全的会话及令牌实践
  5. 05识别常见实现问题

适用场景

  1. 01为应用添加登录功能
  2. 02保护 REST 或 GraphQL API
  3. 03实现 RBAC、SSO 或多租户
  4. 04排查身份认证流程问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/wshobson/agents --skill auth-implementation-patterns

安装后在 Claude Code 中输入/auth-implementation-patterns确认已加载。

附带文件references/details.md

详细介绍

认证与授权实现模式

使用行业标准模式和现代最佳实践,构建安全、可扩展的认证与授权系统。

何时使用本技能

  • 实现用户认证系统
  • 保护 REST 或 GraphQL API
  • 添加 OAuth2/社交登录
  • 实现基于角色的访问控制(RBAC)
  • 设计会话管理
  • 迁移认证系统
  • 调试认证问题
  • 实现 SSO 或多租户

核心概念

1. 认证与授权的区别

认证(AuthN):你是谁?

  • 验证身份(用户名/密码、OAuth、生物识别)
  • 签发凭证(会话、令牌)
  • 管理登录/登出

授权(AuthZ):你能做什么?

  • 权限检查
  • 基于角色的访问控制(RBAC)
  • 资源所有权验证
  • 策略执行
2. 认证策略

基于会话:

  • 服务端存储会话状态
  • 会话 ID 存放在 cookie 中
  • 传统、简单、有状态

基于令牌(JWT):

  • 无状态、自包含
  • 可水平扩展
  • 可存储声明

OAuth2/OpenID Connect:

  • 委托认证
  • 社交登录(Google、GitHub)
  • 企业 SSO

详细模式与完整示例

详细的模式文档位于 references/details.md。当上方的导航层级不够用时,请阅读该文件。

最佳实践

  1. 切勿存储明文密码:始终使用 bcrypt/argon2 进行哈希
  2. 使用 HTTPS:加密传输中的数据
  3. 短期访问令牌:最长 15-30 分钟
  4. 安全的 Cookie:httpOnly、secure、sameSite 标志
  5. 验证所有输入:邮箱格式、密码强度
  6. 对认证端点限流:防止暴力破解攻击
  7. 实现 CSRF 防护:适用于基于会话的认证
  8. 定期轮换密钥:JWT 密钥、会话密钥
  9. 记录安全事件:登录尝试、认证失败
  10. 尽可能使用 MFA:额外的安全层

常见陷阱

  • 弱密码:强制执行强密码策略
  • 在 localStorage 中存放 JWT:容易受到 XSS 攻击,请使用 httpOnly cookie
  • 令牌无过期时间:令牌应当过期
  • 仅客户端进行认证检查:始终在服务端验证
  • 不安全的密码重置:使用带过期时间的安全令牌
  • 无限流:容易受到暴力破解
  • 信任客户端数据:始终在服务端验证

评论

支持 Markdown