关于 identity-access
面向身份与访问管理工作的参考技能,涵盖认证、授权、OAuth 2.0、OIDC、JWT、RBAC 及密码、会话、令牌和 MFA 的实践要点。
主要功能
- 01认证与授权概念
- 02OAuth 2.0 流程参考
- 03OIDC 与 JWT 结构
- 04RBAC 角色和权限示例
- 05密码与会话安全建议
- 06令牌和 MFA 实践要点
适用场景
- 01选择 Web、移动端或机器间认证流程
- 02规划应用的角色与资源权限
- 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