mcpField
I
identity-access

identity-access

github.com/dralgorhythm安全12867 次安装14 周前更新
代码仓库

关于 identity-access

面向身份与访问管理工作的参考技能,涵盖认证、授权、OAuth 2.0、OIDC、JWT、RBAC 及密码、会话、令牌和 MFA 的实践要点。

主要功能

  1. 01认证与授权概念
  2. 02OAuth 2.0 流程参考
  3. 03OIDC 与 JWT 结构
  4. 04RBAC 角色和权限示例
  5. 05密码与会话安全建议
  6. 06令牌和 MFA 实践要点

适用场景

  1. 01选择 Web、移动端或机器间认证流程
  2. 02规划应用的角色与资源权限
  3. 03检查密码、会话和令牌的安全做法

安装

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

$npx skills add https://github.com/dralgorhythm/claude-agentic-framework --skill identity-access

安装后在 Claude Code 中输入/identity-access确认已加载。

详细介绍

身份与访问管理

身份验证与授权

  • 身份验证(AuthN):你是谁?
  • 授权(AuthZ):你能做什么?

OAuth 2.0 流程

授权码(Web 应用)
User -> App -> Auth Server -> User Login
User -> Auth Server -> App (code)
App -> Auth Server (code + secret) -> tokens
PKCE(移动端/SPA)

与授权码类似,但使用代码验证器/挑战代替密钥。

客户端凭证(机器对机器)
App -> Auth Server (client_id + secret) -> token

OpenID Connect(OIDC)

OAuth 2.0 + 身份层。

主要新增内容:

  • ID Token(包含用户信息的 JWT)
  • UserInfo 端点
  • 标准声明(sub、email、name)

JWT 结构

header.payload.signature

Header: {"alg": "RS256", "typ": "JWT"}
Payload: {"sub": "123", "exp": 1234567890}
Signature: RSASHA256(header + payload, privateKey)

基于角色的访问控制(RBAC)

interface Role {
  name: string;
  permissions: Permission[];
}

interface Permission {
  resource: string;
  action: 'read' | 'write' | 'delete';
}

function hasPermission(user: User, resource: string, action: string): boolean {
  return user.roles.some(role =>
    role.permissions.some(p =>
      p.resource === resource && p.action === action
    )
  );
}

最佳实践

密码
  • 至少 12 个字符
  • 使用 Argon2id 或 bcrypt 进行哈希处理
  • 绝不存储明文
  • 实施速率限制
会话
  • 使用安全的 HttpOnly Cookie
  • 实施 CSRF 防护
  • 设置适当的过期时间
  • 登出时使会话失效
Token
  • 使用短期访问 Token(15 分钟)
  • 使用较长期的刷新 Token(数天)
  • 轮换刷新 Token
  • 安全存储(不要存储在 localStorage 中)
MFA
  • 支持 TOTP(Google Authenticator)
  • 考虑使用 WebAuthn/通行密钥
  • 提供用于恢复的备用代码

评论

支持 Markdown