访问|B端设计实战:基于角色&属性的权限设计( 四 )


访问|B端设计实战:基于角色&属性的权限设计
文章插图
ABAC的使用场景较灵活,常用于复杂多变的策略定制场景。如定制架构可见范围、定制会话权限等。
访问|B端设计实战:基于角色&属性的权限设计
文章插图

  • ABAC模型优势: 能够根据上下文动态执行,可以发挥权限控制最大的灵活性,满足更细颗粒度的场景需求。
  • ABAC模型劣势:学习成本比较高,随着规则(策略)的不断增多,管理和维护成本也会攀升。
综合以上3大权限模型的优劣来看:
  • ACL模型基于资源进行配置,适用于用户量少、更新频次低、无明确职能划分的小型组织,开发成本低但后期管理维护成本高,适合作为平台搭建初期时的临时过渡方案;
  • RBAC模型基于角色进行配置,适用于用户量一般、更新频次一般、有明确职能划分、较少定制权限的中型组织,开发成本高但后期维护成本低,适合作为平台管理少量内外部用户时的方案;
  • ABAC模型基于属性进行配置,适用于用户量多、更新频次高、职能划分复杂多变、有安全合规诉求、权限定制多样化的大型组织,能够在保障效率的同时降低安全风险,适合作为平台管理大批量复杂用户时的方案。
2.2 基于业务梳理关键信息第一步:选择权限模型
不同的业务特点指向不同的使用场景,因此我们需要基于业务特点选择合适的权限模型。 以众包平台为例,平台具备B/C双端的特点,因此在进行权限设计时需要考虑两端的使用场景和受众群体。
访问|B端设计实战:基于角色&属性的权限设计
文章插图
基于以上业务特点,我们可以发现B端后台管理权限分配更适合基于“角色”进行设计,而C端前台的生产权限更适合基于“属性”进行设计。
完成模型选择后,我们需要基于模型进一步梳理平台内所需的角色、属性和权限信息。
第二步:明确关键角色和属性
角色是连接用户和权限的桥梁,因此我们需要对平台内的B端管理角色进行穷举。 角色定义通常取决于岗位职能划分和任务流分工。
访问|B端设计实战:基于角色&属性的权限设计
文章插图
超级管理员是一种特殊的角色,主要作用是为了添加首批管理人员,通常为隐形状态,且该角色不可通过配置进行分配。 通过盘点,我们在该步骤可以得出一份「角色列表」。 属性是触发规则运行的基本条件,我们需要将平台内所有影响规则运行的属性进行整理归类。 关键属性通常取决于平台用户数据的字段定义、用户操作环境的客观因子和业务资源数据的标签维度。
通过盘点,我们在该步骤可以得出一份「属性列表」。
第三步:梳理权限
权限是用户能够访问的资源,本步骤需要将平台内所有权限点按照类型进行整理归类。权限点主要有以下几种类型需要盘点:
页面权限即用户在平台内可见的页面,由导航菜单来控制,包括一级导航菜单、二级导航菜单,甚至三级导航菜单,只要用户有对应导航菜单的权限即可访问页面。
访问|B端设计实战:基于角色&属性的权限设计
文章插图
操作权限即页面内的功能按钮,包括我们常规认知的增删改查操作。 如下图众包平台的权限示例:
访问|B端设计实战:基于角色&属性的权限设计
文章插图
在实际操作场景中,部分操作权限会因状态而发生变化,在盘点操作权限时,需要梳理状态关联性来检查是否有缺漏,如下图所示:
访问|B端设计实战:基于角色&属性的权限设计