权限概述
概述
IDaaS的权限管理使用经典基于角色的访问控制模型(Role Based Access Control,简称RBAC)。通过主体、角色、资源三者之间的关系确定一个用户或是服务是否有权限访问系统的某些资源。
概念
主体
指被授予权限的对象,在当前平台中主要包括:
- 用户
- 用户组
权限点
一种用户在应用中「能做什么」的描述,RBAC中的权限主要定义为应用的功能型权限(或操作权限),比如页面的查看、创建、编辑、删除,某类型资源(文件)的查看、创建、编辑、删除。权限点支持分级管理,最多支持2级
角色
权限点的集合,用户、用户组、组织架构授权的最小单元,即只能授权到角色,不能直接授权权限点到主体。
资源
应用内无法预先定义的、而是在用户的使用过程中才会产生、更新和删除的实体,资源举例可以是服务器、磁盘、文件、视频、音频、记录等。资源往往是根据应用自身的情况进行定义,应用也可以没有资源。
RBAC
基于角色的访问控制模型,一种经典的权限控制模型,通过在用户和权限之间增加角色的概念从而简化授权的复杂度。
权限系统
将权限统一托管在身份管理服务的应用或软件系统,企业管理员(开发人员)可以通过在权限接入功能模块中配置相应权限点、角色,并按需将资源注册到托管平台中,并且在用户实际访问应用时再到托管平台进行权限鉴别,从而实现应用权限的托管。
工作原理
实体间关系
组织架构与用户: 1个用户同一时间只能属于一个组织部门;
角色与用户: 1个用户可以授予多个角色,1个角色可以授予给多个用户;
资源与身份(组织架构/用户组/用户): 1个资源可以关联多个用户,1个用户可以被关联多个资源;
角色与权限点: 1个角色可以组合多个权限点,1个权限点可以属于多个角色;
角色与应用: 1个应用可以定义多个角色,应用内角色只能属于1个应用;
资源(树)与应用: 目前的资源都是限定在应用内,不能属于其他应用。
权限评估逻辑
权限评估基于三元组: <用户,角色,资源>,预留「条件」字段,用于灵活的扩展性需求<用户,角色,资源,条件(可选)>。
1、对于未定义资源的应用,通过用户-角色二元组合关系,就可以确定用户可操作的行为(此时资源选择默认为“所有资源”);
2、对于定义了资源的应用,可根据用户-角色-资源三者之间的关系评估用户具体拥有的权限范围。
3、除直接通过直接三元组授权判定,还需要参考用户继承自组织架构,用户关联资源是否存在子资源或是孙子资源等逻辑,进行综合判断,详细的权限关系请参考权限关系。
说明:条件字段在当前版本尚未开放。
权限关系
资源层级的权限继承
用户被关联到某资源层级,则默认可通过自身被授予角色的权限操作关联的资源,以及所关联资源的所有子资源及孙子资源。