知识点:JWT、OAuth2、Spring Security、加密算法、权限管理
- Authentication(认证)
- 用来验证用户的身份是否属实,例如“你是谁”。
- 典型流程:登录、凭证验证(用户名/密码、令牌、证书等)。
- Authorization(授权)
- 在身份确认的基础上,判断用户可执行哪些操作、访问哪些资源。
- 典型方式:角色权限控制(RBAC)、基于策略的权限控制(ABAC/Policy-based)等。
在后端系统中,身份认证与访问授权是安全防护的基石。JWT(JSON Web Token)是一种无状态的身份验证方案,服务端不保存用户状态,所有信息存储在Token中,适合微服务架构。
OAuth2是主流的第三方授权框架,支持授权码、密码、客户端凭证等多种授权模式,是构建统一登录与开放平台的标准协议。Spring Security对OAuth2提供了良好支持,结合JWT可构建完整认证体系。
Spring Security是Java最强大的安全框架,提供认证、授权、CSRF防护、会话控制等全面功能。通过过滤器链与注解(如@PreAuthorize)实现细粒度权限控制,保障系统安全性。
常见加密算法包括MD5、SHA、RSA、AES等。对于密码,推荐使用带盐的BCrypt哈希;对通信内容使用HTTPS传输,确保数据加密与防篡改。
权限管理策略分为RBAC(基于角色)与ABAC(基于属性),前者更为主流。通过配置角色、权限菜单与数据访问规则,实现用户行为约束与资源隔离。