权限管理

权限管理 #

  • 权限管理系统属于基础服务,负责用户身份的认证和授权;
  • 用户信息管理系统属于业务系统,管理用户在参与业务过程中的身份信息;

权限分配方案 #

  • ACL(Access Control List):访问控制列表,以Row为维度进行权限控制。在存储数据的同时保存据的读写权限。
    • 存储示例:write:1,2,3;read:* ,表示所有用户有读权限,但只有ID=1,2,3的用户同时拥有读写权限。
  • RBAC(Role-Based Access Control:):角色访问控制,基于角色分配权限,一个用户的权限等于其拥有的所有角色的权限集合。权限可以是模块、功能、菜单、接口、按钮等不同粒度。

安全性 #

密码脱敏 #

  • 对称加密:对称加密(AES、DES、3DES等)可以解密,安全性不高。
  • 单向加密/摘要算法:Md5、Sha1等算法无法防止彩虹表。
  • PBKDF2+Sha256:推荐。PBKDF2为密钥生成算法,加密过程为执行n次哈希算法(例如:Sha256)并加上随机盐生成密码。
  • Bcrypt:推荐。每次都随机生成hash和盐后保存在密码中。验证密码时,使用原密码和保存在密码中的盐计算后再和hash进行比较。虽然无法防止彩虹表,但由于加密速度可以维持在一个固定范围内,无法加速,所以彩虹表的生成成本较高。