角色授权

2018-11-29 08:15:32

授权基本逻辑

  1. 目前只提供两类资源的授权:原子功能,完全可以满足实际业务开发的需求
  2. 只有叶角色可以添加用户,用户自然拥有所属角色的全部授权
  3. 叶角色用户是多对多的关系
  4. 采用白名单策略,所有授权都必须显式设置

授权传递机制

Cabloy中的角色授权有两种传递机制:

1. 继承传递(纵向)

子角色自动继承所有父角色的授权。比如,角色organization自动拥有角色authenticatedroot的授权

2. 聚合传递(横向)

角色可以聚合另一个角色从而拥有该角色的授权。比如,如果角色authenticated聚合了角色superuser,那么角色authenticated及其子角色都会拥有角色superuser的授权

角色模版:通过聚合传递机制可以实现角色模版的功能,也就是预定义角色,并为角色分配一组权限,从而便于在实际使用中快速给其他角色授权

授权途径

原子功能授权有三种途径:

人工授权

如果某些权限只有在实际部署或运行时才能决定,可通过管理界面进行授权操作

初始授权

如果需要在系统运行时,预先初始化权限,可以在后端API路由version/init中通过代码分配权限。比如,在模块test-todo中,给角色superuser分配操作原子类型todo权限

初始授权测试环境开发环境生产环境均有效

测试授权

为了测试与开发的便利,还可以在开发阶段预先初始化权限,可以在后端API路由version/test中通过代码分配权限。比如,给某些测试角色分配权限

测试授权仅在测试环境开发环境有效



评论: