admin管理员组

文章数量:1436864

权限系统设计

权限系统概述

什么是越权

一般我们认为在系统内, 使用者通过一个非法的操作, 让自己的可操作范围变大的行为就是越权。

越权又分为:

  • 垂直越权: 低权限的用户访问高权限的用户的资源或功能。 如普通用户通过构造特定请求调用管理员接口(如/admin/deleteUser
  • 水平越权: 同一层级的用户越权访问其他用户的资源或数据。如用户A通过某种方式访问到了用户B的数据

鉴权系统就是为了解决上述的越权问题, 一般的鉴权系统分为两种模型: RBAC 和 ABAC

RBAC(Role-Based Access Control)

核心思想:

  • 用户(User)通过分配角色(Role) 获得权限(Permission),而不是直接分配权限。
  • 角色是权限的集合,用户通过角色间接获得权限。

组成概念:

要素

说明

User

用户,系统的使用者

Role

角色, 权限的逻辑分组

Permission

权限,具体对资源的操作

ABAC(Attribute-Based Access Control)

核心思想:

  • 权限由属性(Attributes)决定,包括 用户属性、资源属性、环境属性和操作属性。
  • 通过 策略(Policy)动态评估是否允许访问。

组成概念:

要素

说明

User Attributes

当前访问的用户的特征, 如部门=研发, 职位=后端

Resource Attributes

资源的特征,如云产品=CVM

Environment Attributes

访问请求发生时的上下文信息, 如ip=192.xx.

Action Attributes

用户请求的操作属性,如读、写

在 ABAC模型 的决策语句的执行过程中,决策引擎会根据定义好的决策语句,结合对象、资源、操作、环境等因素动态计算出决策结果。每当发生访问请求时,ABAC模型 决策系统都会分析属性值是否与已建立的策略匹配。如果有匹配的策略,访问请求就会被通过。

相比于 RBAC, ABAC 更加灵活, 各种云厂商的鉴权(IDaaS Identity as a Service)也是采取了ABAC 的模型

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-4-27,如有侵权请联系 cloudcommunity@tencent 删除模型权限数据系统系统设计

本文标签: 权限系统设计