用户和权限
数据是所有 coScene 用户最重要的资产,在让用户能高效利用数据的同时,我们也充分重视用户对于数据资产的安全和保密性的要求。从第一天开始,我们就在设计和构建一个灵活的、可扩展的、可配置的权限模型,以满足我们的客户的保密、安全和控制的需要。
coScene 目前的权限体系充分参考了行业内最佳实践,充分考虑了 RBAC 和 ABAC 模型对于我们应用的影响。在目前阶段,刻行的实现以 RBAC 作为基础,但会在接下来的发布中,逐渐引入 ABAC 的特性。最终达到一个灵活而又易懂的权限设置模型。
组织和项目
作为应用的权限容器载体,coScene 主要对各项资源进行了两层的划分。第一层是组织,所有平台的实际用户都应属于一个现实团体,在平台内的映射就是组织。组织不拥有实际的数据资源,但是拥有组织内实际资源主体,如设备,人员,并在组织层面赋予组织成员的角色。
组织同时也是项目的所有方(Owner),每个组织可拥有任意多个项目。项目作为用户和设备产生数据的容器载体,是 coScene 内部的第二层权限资源隔离体系。设备产生的文件和记录,设备和用户所生成的事件,各类请求之间的流转关系,这一切都发生在项目内部。
权限和资源
coScene 根据上述的权限体系和原则,在系统内为所有的资源预定义了各类动作(Action)和策略(Policy),并依次定义了模板角色,依次为:
组织
- 组织管理员:可以管理组织内的所有资源和权限
- 成员:可以管理所有组织内成员有权限的数据
- 只读成员:可以读取所有组织内成员有权限的数据
项目
- 项目管理员:可以管理项目内所有资源和权限
- 成员:可以管理项目内所有的数据
- 只读成员:可以读取项目内所有的数据
当一个用户拥有项目的角色时,该用户项目内的角色会被优先使用。唯一的例外是组织管理员,组织管理员目前拥有最高的系统权限,能访问所有的项目,并且会忽略项目内的角色设置(如果有)。