rbac模型的构成

合集下载

RBAC

RBAC

访问控制策略一般有以下几种方式:∙自主型访问控制(Discretionary Access Control-DAC):用户/对象来决定访问权限。

信息的所有者来设定谁有权限来访问信息以及操作类型(读、写、执行。

)。

是一种基于身份的访问控制。

例如UNIX权限管理。

∙强制性访问控制(Mandatory Access Control-MAC):系统来决定访问权限。

安全属性是强制型的规定,它由安全管理员或操作系统根据限定的规则确定的,是一种规则的访问控制。

∙基于角色的访问控制(格/角色/任务):角色决定访问权限。

用组织角色来同意或拒绝访问。

比MAC、DAC更灵活,适合作为大多数公司的安全策略,但对一些机密性高的政府系统部适用。

∙规则驱动的基于角色的访问控制:提供了一种基于约束的访问控制,用一种灵活的规则描述语言和一种ixn的信任规则执行机制来实现。

∙基于属性证书的访问控制:访问权限信息存放在用户属性证书的权限属性中,每个权限属性描述了一个或多个用户的访问权限。

但用户对某一资源提出访问请求时,系统根据用户的属性证书中的权限来判断是否允许或句句模型的主要元素∙可视化授权策略生成器∙授权语言控制台∙用户、组、角色管理模块∙API接口∙授权决策引擎∙授权语言解释器H.1. RBAC模型介绍RBAC(Role-Based Access Control - 基于角色的访问控制)模型是20世纪90年代研究出来的一种新模型,但从本质上讲,这种模型是对前面描述的访问矩阵模型的扩展。

这种模型的基本概念是把许可权(Permission)与角色(Role)联系在一起,用户通过充当合适角色的成员而获得该角色的许可权。

这种思想世纪上早在20世纪70年代的多用户计算时期就被提出来了,但直到20世纪90年代中后期,RBAC才在研究团体中得到一些重视。

本章将重点介绍美国George Mason大学的RBAC96模型。

H.2. 有关概念在实际的组织中,为了完成组织的业务工作,需要在组织内部设置不同的职位,职位既表示一种业务分工,又表示一种责任与权利。

权限系统设计模型分析(DAC,MAC,RBAC,ABAC)

权限系统设计模型分析(DAC,MAC,RBAC,ABAC)

权限系统设计模型分析(DAC,MAC,RBAC,ABAC)此篇⽂章主要尝试将世⾯上现有的⼀些权限系统设计做⼀下简单的总结分析,个⼈⽔平有限,如有错误请不吝指出。

术语这⾥对后⾯会⽤到的词汇做⼀个说明,⽼司机请直接翻到常见设计模式。

⽤户发起操作的主体。

对象(Subject)指操作所针对的客体对象,⽐如订单数据或图⽚⽂件。

权限控制表 (ACL: Access Control List)⽤来描述权限规则或⽤户和权限之间关系的数据表。

权限 (Permission)⽤来指代对某种对象的某⼀种操作,例如“添加⽂章的操作”。

权限标识权限的代号,例如⽤“ARTICLE_ADD”来指代“添加⽂章的操作”权限。

常见设计模式⾃主访问控制(DAC: Discretionary Access Control)系统会识别⽤户,然后根据被操作对象(Subject)的权限控制列表(ACL: Access Control List)或者权限控制矩阵(ACL: Access Control Matrix)的信息来决定⽤户的是否能对其进⾏哪些操作,例如读取或修改。

⽽拥有对象权限的⽤户,⼜可以将该对象的权限分配给其他⽤户,所以称之为“⾃主(Discretionary)”控制。

这种设计最常见的应⽤就是⽂件系统的权限设计,如微软的NTFS。

DAC最⼤缺陷就是对权限控制⽐较分散,不便于管理,⽐如⽆法简单地将⼀组⽂件设置统⼀的权限开放给指定的⼀群⽤户。

Windows的⽂件权限强制访问控制(MAC: Mandatory Access Control)MAC是为了弥补DAC权限控制过于分散的问题⽽诞⽣的。

在MAC的设计中,每⼀个对象都都有⼀些权限标识,每个⽤户同样也会有⼀些权限标识,⽽⽤户能否对该对象进⾏操作取决于双⽅的权限标识的关系,这个限制判断通常是由系统硬性限制的。

⽐如在影视作品中我们经常能看到特⼯在查询机密⽂件时,屏幕提⽰需要“⽆法访问,需要⼀级安全许可”,这个例⼦中,⽂件上就有“⼀级安全许可”的权限标识,⽽⽤户并不具有。

rbac概念

rbac概念

rbac概念
基于角色的访问控制(RBAC)是一种广泛应用的权限管理方法,其核心思想是将权限与角色关联,用户通过成为适当角色的成员而获得相应的权限。

这种方法极大地简化了权限的管理,使得管理员可以根据用户的职责和角色来授予不同级别的权限,以限制和管理对系统资源的访问。

RBAC模型可以分为RBAC0、RBAC1、RBAC2、RBAC3四种,其中RBAC0是基础模型,其它三种都是在RBAC0基础上的变种。

在20世纪90年代期间,大量的专家学者和专门研究单位对RBAC的概念进行了深入研究,先后提出了许多类型的RBAC 模型,其中以美国George Mason大学信息安全技术实验室(LIST)提出的RBAC96模型最具有系统性,得到普遍的应用。

使用RBAC的好处包括:简化权限管理、提高安全性、降低管理成本等。

然而,它也存在一些缺陷,如角色继承问题、性能问题等。

为了更好地理解和使用RBAC,需要深入探讨其原理、模型、实践以及与其他访问控制方法(如ABAC、ACL、PBAC等)的比较。

RBAC权限介绍制作一个简单的rbac组件

RBAC权限介绍制作一个简单的rbac组件

RBAC权限介绍制作⼀个简单的rbac组件RBAC是什么?是基于⾓⾊的访问控制(Role-Based Access Control)在中,权限与⾓⾊相关联,⽤户通过成为适当⾓⾊的成员⽽得到这些⾓⾊的权限。

这就极⼤地简化了权限的管理。

这样管理都是层级相互依赖的,权限赋予给⾓⾊,⽽把⾓⾊⼜赋予⽤户,这样的权限设计很清楚,管理起来很⽅便。

RBAC介绍。

认为授权实际上是Who、What、How三元组之间的关系,也就是Who对What进⾏How的操作,也就是“主体”对“客体”的操作。

Who:是权限的拥有者或主体(如:User,Role)。

What:是操作或对象(operation,object)。

How:具体的权限(Privilege,正向授权与负向授权)。

然后⼜分为RBAC0、RBAC1、RBAC2、RBAC3,如果你不知道他们有什么区别,你可以百度百科:估计你看不懂。

还是看看我的简单介绍。

我这⾥结合我的见解,简单的描述下(去掉那么多的废话)。

RBAC0、RBAC1、RBAC2、RBAC3简单介绍。

RBAC0:是RBAC的核⼼思想。

RBAC1:是把RBAC的⾓⾊分层模型。

RBAC2:增加了RBAC的约束模型。

RBAC3:其实是RBAC2 + RBAC1。

RBAC0,RBAC的核⼼。

RBAC1,基于⾓⾊的分层模型RBAC2、是RBAC的约束模型。

RBAC3、就是RBAC1+RBAC2估计看完图后,应该稍微清楚⼀点。

下⾯来看个Demo。

员⼯权限设计的模型图,以及对应关系。

关系图,以及实体设计。

表设计在我们平常的权限系统中,想完全遵循模型是很难的,因为难免系统业务上有⼀些差异化的业务考量,所以在设计之初,不要太理想,太追求严格的模型设计,因为这样会使得你的系统处处鸡肋,⽆法拓展。

所以在这⾥要说明⼀下,是⼀种模型,是⼀种思想,是⼀种核⼼思想,但是就思想⽽⾔,不是要你完全参照,⽽是你在这个基础之上,融⼊你⾃⼰的思想,赋予你的业务之上,达到适⽤你的业务。

RBAC 用户角色权限设计方案(非常好)

RBAC  用户角色权限设计方案(非常好)

扩展RBAC用户角色权限设计方案RBAC(Role—Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。

这样,就构造成“用户-角色-权限"的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。

(如下图)角色是什么?可以理解为一定数量的权限的集合,权限的载体。

例如:一个论坛系统,“超级管理员"、“版主”都是角色。

版主可管理版内的帖子、可管理版内的用户等,这些是权限.要给某个用户授予这些权限,不需要直接将权限授予用户,可将“版主"这个角色赋予该用户。

当用户的数量非常大时,要给系统每个用户逐一授权(授角色),是件非常烦琐的事情。

这时,就需要给用户分组,每个用户组内有多个用户。

除了可给用户授权外,还可以给用户组授权。

这样一来,用户拥有的所有权限,就是用户个人拥有的权限与该用户所在用户组拥有的权限之和。

(下图为用户组、用户与角色三者的关联关系)在应用系统中,权限表现成什么?对功能模块的操作,对上传文件的删改,菜单的访问,甚至页面上某个按钮、某个图片的可见性控制,都可属于权限的范畴。

有些权限设计,会把功能操作作为一类,而把文件、菜单、页面元素等作为另一类,这样构成“用户—角色-权限—资源”的授权模型.而在做数据表建模时,可把功能操作和资源统一管理,也就是都直接与权限表进行关联,这样可能更具便捷性和易扩展性。

(见下图)请留意权限表中有一列“权限类型",我们根据它的取值来区分是哪一类权限,如“MENU”表示菜单的访问权限、“OPERATION”表示功能模块的操作权限、“FILE”表示文件的修改权限、“ELEMENT”表示页面元素的可见性控制等。

这样设计的好处有二.其一,不需要区分哪些是权限操作,哪些是资源,(实际上,有时候也不好区分,如菜单,把它理解为资源呢还是功能模块权限呢?)。

RBAC权限管理系统数据模型

RBAC权限管理系统数据模型

RBAC权限管理系统数据模型懒得多写了,懂的看建表脚本就懂了。

-- ------------------------------ Table structure for ucb_user-- ----------------------------DROP TABLE IF EXISTS ucb_user;CREATE TABLE ucb_user (id char(32) NOT NULL COMMENT '主键(UUID)',user_type tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '⽤户类型:0、未定义;1、内部⽤户;2、合作⽅⽤户;3、外部⽤户', source tinyint(3) DEFAULT '0' COMMENT '来源',code varchar(8) DEFAULT NULL COMMENT '⽤户编码',name varchar(64) NOT NULL COMMENT '名称',account varchar(64) NOT NULL COMMENT '登录账号',mobile varchar(32) DEFAULT NULL COMMENT '⼿机号',email varchar(64) DEFAULT NULL COMMENT '电⼦邮箱',union_id varchar(128) DEFAULT NULL COMMENT '微信UnionID',password varchar(256) NOT NULL DEFAULT 'e10adc3949ba59abbe56e057f20f883e' COMMENT '密码(RSA加密)',paypw char(32) DEFAULT NULL COMMENT '⽀付密码(MD5)',head_img varchar(256) DEFAULT NULL COMMENT '⽤户头像',remark varchar(256) DEFAULT NULL COMMENT '备注',setting json DEFAULT NULL COMMENT '配置信息',invite_code varchar(32) DEFAULT NULL COMMENT '邀请码',inviter varchar(64) DEFAULT NULL COMMENT '邀请⼈',inviter_id char(32) DEFAULT NULL COMMENT '邀请⼈ID',is_builtin bit(1) NOT NULL DEFAULT b'0' COMMENT '是否内置:0、⾮内置;1、内置',is_invalid bit(1) NOT NULL DEFAULT b'0' COMMENT '是否失效:0、有效;1、失效',creator varchar(64) NOT NULL COMMENT '创建⼈',creator_id char(32) NOT NULL COMMENT '创建⼈ID',created_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',PRIMARY KEY (id) USING BTREE,KEY idx_ucb_user_code (code) USING BTREE,KEY idx_ucb_user_invite_code (invite_code) USING BTREE,UNIQUE KEY idx_ucb_user_account (account) USING BTREE,UNIQUE KEY idx_ucb_user_mobile (mobile) USING BTREE,UNIQUE KEY idx_ucb_user_email (email) USING BTREE,UNIQUE KEY idx_ucb_user_union_id (union_id) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='⽤户表';-- ------------------------------ Table structure for ucg_group-- ----------------------------DROP TABLE IF EXISTS ucg_group;CREATE TABLE ucg_group (id char(32) NOT NULL COMMENT '主键(UUID)',name varchar(64) NOT NULL COMMENT '名称',remark varchar(256) DEFAULT NULL COMMENT '备注',is_builtin bit(1) NOT NULL DEFAULT b'0' COMMENT '是否内置:0、⾮内置;1、内置',creator varchar(64) NOT NULL COMMENT '创建⼈',creator_id char(32) NOT NULL COMMENT '创建⼈ID',created_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',PRIMARY KEY (id) USING BTREE,KEY idx_ucg_group_tenant_id (tenant_id) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='⽤户组表';-- ------------------------------ Table structure for ucg_group_member-- ----------------------------DROP TABLE IF EXISTS ucg_group_member;CREATE TABLE ucg_group_member (id char(32) NOT NULL COMMENT '主键(UUID)',group_id char(32) NOT NULL COMMENT '⽤户组ID',user_id char(32) NOT NULL COMMENT '⽤户ID',PRIMARY KEY (id) USING BTREE,KEY idx_ucg_group_member_group_id (group_id) USING BTREE,KEY idx_ucg_group_member_user_id (user_id) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='⽤户组成员表';-- ------------------------------ Table structure for uco_org-- ----------------------------DROP TABLE IF EXISTS uco_org;CREATE TABLE uco_org (id char(32) NOT NULL COMMENT '主键(UUID)',parent_id char(32) DEFAULT NULL COMMENT '⽗级ID',node_type tinyint(3) unsigned DEFAULT NULL COMMENT '节点类型:0、机构;1、部门;2、职位',index tinyint(3) unsigned NOT NULL COMMENT '序号',code varchar(8) DEFAULT NULL COMMENT '编码',name varchar(64) NOT NULL COMMENT '名称',alias varchar(64) DEFAULT NULL COMMENT '简称',full_name varchar(128) DEFAULT NULL COMMENT '全称',is_invalid bit(1) NOT NULL DEFAULT b'0' COMMENT '是否失效:0、有效;1、失效',creator varchar(64) NOT NULL COMMENT '创建⼈',creator_id char(32) NOT NULL COMMENT '创建⼈ID',created_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',PRIMARY KEY (id) USING BTREE,UNIQUE KEY idx_uco_org_code (code) USING BTREE,KEY idx_uco_org_tenant_id (tenant_id) USING BTREE,KEY idx_uco_org_parent_id (parent_id) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='组织机构表';-- ------------------------------ Table structure for uco_org_member-- ----------------------------DROP TABLE IF EXISTS uco_org_member;CREATE TABLE uco_org_member (id char(32) NOT NULL COMMENT '主键(UUID)',org_id char(32) NOT NULL COMMENT '职位ID(组织机构表ID)',user_id char(32) NOT NULL COMMENT '⽤户ID(⽤户表ID)',PRIMARY KEY (id) USING BTREE,KEY idx_uco_org_member_org_id (org_id) USING BTREE,KEY idx_uco_org_member_user_id (user_id) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='职位成员表';-- ------------------------------ Table structure for ucs_application-- ----------------------------DROP TABLE IF EXISTS ucs_application;CREATE TABLE ucs_application (id char(32) NOT NULL COMMENT '主键(UUID)',index int(11) unsigned NOT NULL COMMENT '序号',name varchar(64) NOT NULL COMMENT '应⽤名称',alias varchar(64) NOT NULL COMMENT '应⽤简称',icon varchar(128) DEFAULT NULL COMMENT '应⽤图标',host varchar(128) DEFAULT NULL COMMENT '应⽤域名',token_life int(10) unsigned NOT NULL DEFAULT '24' COMMENT '令牌⽣命周期(毫秒)',is_signin_one bit(1) NOT NULL DEFAULT b'0' COMMENT '是否单点登录:0、允许多点;1、单点登录',is_auto_refresh bit(1) NOT NULL DEFAULT b'0' COMMENT '是否⾃动刷新:0、⼿动刷新;1、⾃动刷新()', creator varchar(64) NOT NULL COMMENT '创建⼈',creator_id char(32) NOT NULL COMMENT '创建⽤户ID',created_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',PRIMARY KEY (id) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='应⽤表';-- ------------------------------ Table structure for ucs_navigator-- ----------------------------DROP TABLE IF EXISTS ucs_navigator;CREATE TABLE ucs_navigator (id char(32) NOT NULL COMMENT '主键(UUID)',parent_id char(32) DEFAULT NULL COMMENT '⽗级导航ID',app_id char(32) NOT NULL COMMENT '应⽤ID',type tinyint(3) unsigned NOT NULL COMMENT '导航级别',index int(11) unsigned NOT NULL COMMENT '序号',name varchar(64) NOT NULL COMMENT '名称',icon varchar(128) DEFAULT NULL COMMENT '图标Url',url varchar(128) DEFAULT NULL COMMENT '模块/页⾯Url',remark varchar(256) DEFAULT NULL COMMENT '备注',creator varchar(64) NOT NULL COMMENT '创建⼈',creator_id char(32) NOT NULL COMMENT '创建⽤户ID',created_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',PRIMARY KEY (id) USING BTREE,KEY idx_ucs_navigator_app_id (app_id) USING BTREE,KEY idx_ucs_navigator_parent_id (parent_id) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='导航表';-- ------------------------------ Table structure for ucs_function-- ----------------------------DROP TABLE IF EXISTS ucs_function;CREATE TABLE ucs_function (id char(32) NOT NULL COMMENT '主键(UUID)',nav_id char(32) NOT NULL COMMENT '导航(末级模块)ID',type tinyint(3) unsigned NOT NULL COMMENT '功能类型 0:全局功能;1:数据项功能;2:其他功能',code varchar(16) DEFAULT NULL COMMENT '代码',index int(11) unsigned NOT NULL COMMENT '序号',name varchar(64) NOT NULL COMMENT '名称',alias varchar(64) DEFAULT NULL COMMENT '别名',icon varchar(128) DEFAULT NULL COMMENT '图标Url',url varchar(128) DEFAULT NULL COMMENT '功能URL',interfaces varchar(512) DEFAULT NULL COMMENT '接⼝URL,功能对应多个URL以逗号分隔(不含域名及端⼝号)', remark varchar(256) DEFAULT NULL COMMENT '备注',begin_group bit(1) NOT NULL DEFAULT b'0' COMMENT '是否开始分组',hide_text bit(1) NOT NULL DEFAULT b'0' COMMENT '是否隐藏⽂字',is_invisible bit(1) NOT NULL DEFAULT b'0' COMMENT '是否不可见:0、可见;1、不可见',creator_id char(32) NOT NULL COMMENT '创建⽤户ID',created_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',PRIMARY KEY (id) USING BTREE,KEY idx_ucs_function_nav_id (nav_id) USING BTREE,KEY idx_ucs_function_alias (alias) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='功能表';-- ------------------------------ Table structure for ucr_config-- ----------------------------DROP TABLE IF EXISTS ucr_config;CREATE TABLE ucr_config (id char(32) NOT NULL COMMENT '主键(UUID)',data_type int(3) unsigned NOT NULL COMMENT '类型:0、⽆归属;1、仅本⼈;2、仅本部门;3、部门所有;4、机构所有', name varchar(32) NOT NULL COMMENT '名称',PRIMARY KEY (id) USING BTREE,KEY idx_ucr_role_data_permit_data_type (data_type) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='数据配置表';-- ------------------------------ Table structure for ucr_role-- ----------------------------DROP TABLE IF EXISTS ucr_role;CREATE TABLE ucr_role (id char(32) NOT NULL COMMENT '主键(UUID)',app_id char(32) DEFAULT NULL COMMENT '应⽤ID,如不为空则该⾓⾊为应⽤专有',name varchar(64) NOT NULL COMMENT '名称',remark varchar(256) DEFAULT NULL COMMENT '备注',is_builtin bit(1) NOT NULL DEFAULT b'0' COMMENT '是否内置:0、⾮内置;1、内置',creator varchar(64) NOT NULL COMMENT '创建⼈',creator_id char(32) NOT NULL COMMENT '创建⼈ID',created_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',PRIMARY KEY (id) USING BTREE,KEY idx_ucr_role_tenant_id (tenant_id) USING BTREE,KEY idx_ucr_role_app_id (app_id) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='⾓⾊表';-- ------------------------------ Table structure for ucr_role_func_permit-- ----------------------------DROP TABLE IF EXISTS ucr_role_func_permit;CREATE TABLE ucr_role_func_permit (id char(32) NOT NULL COMMENT '主键(UUID)',role_id char(32) NOT NULL COMMENT '⾓⾊ID',function_id char(32) NOT NULL COMMENT '功能ID',permit bit(1) NOT NULL DEFAULT b'0' COMMENT '授权类型:0、拒绝;1、允许',creator varchar(64) NOT NULL COMMENT '创建⼈',creator_id char(32) NOT NULL COMMENT '创建⼈ID',created_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',PRIMARY KEY (id) USING BTREE,KEY idx_ucr_role_func_permit_role_id (role_id) USING BTREE,KEY idx_ucr_role_func_permit_function_id (function_id) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='⾓⾊功能权限表';-- ------------------------------ Table structure for ucr_role_data_permit-- ----------------------------DROP TABLE IF EXISTS ucr_role_data_permit;CREATE TABLE ucr_role_data_permit (id char(32) NOT NULL COMMENT '主键(UUID)',role_id char(32) NOT NULL COMMENT '⾓⾊ID',module_id char(32) NOT NULL COMMENT '业务模块ID',mode int(3) unsigned NOT NULL COMMENT '授权模式:0、相对模式;1、⽤户模式;2、部门模式',owner_id char(32) NOT NULL COMMENT '数据所有者ID,相对模式下为模式ID',permit bit(1) NOT NULL DEFAULT b'0' COMMENT '授权类型:0、只读;1、读写',creator varchar(64) NOT NULL COMMENT '创建⼈',creator_id char(32) NOT NULL COMMENT '创建⼈ID',created_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',PRIMARY KEY (id) USING BTREE,KEY idx_ucr_role_data_permit_role_id (role_id) USING BTREE,KEY idx_ucr_role_data_permit_module_id (module_id) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='⾓⾊数据权限表';。

中国墙

中国墙

摘要:中国墙安全模型是商业信息安全领域中的一个重要的安全策略模型,但是它缺少有效的实施模型和机制。

研究了侵略型中国墙安全模型的利益冲突关系、数据组织等,分析了基于角色的访问控制(RBAC)模型的控制机制,利用RBAC的“策略中性”原理,配置RBAC实施侵略型中国墙安全模型,并举例配置了拥有5个有利益冲突公司的RBAC模型。

通过对RBAC的配置,使得侵略型中国墙安全模型可以更加方便有效地实施。

1988年,Brewer和Nash根据现实的商业策略提出了中国墙安全模型(Chinese Wall Security Model)[1]。

该模型所基于的假设是:各个公司间的利益冲突关系(Conflict of Interest Relation,CIR)为等价关系,对全体对象的划分为等价类划分。

1989年,T.Y.LIN[2]指出,Brewer和Nash提出的模型是很有创建的,但它所基于的假设是不正确的,不是总能成立的。

T.Y.LIN基于粒计算原理提出了一个修正模型,称为侵略型中国墙安全策略模型。

本文研究的就是T.Y.LIN所提出的模型。

当今最著名的美国计算机安全标准是可信计算机系统评估标准(TCSEC)。

其中一个内容就是要阻止未被授权而浏览机密信息。

TCSEC 规定了两个访问控制类型:自主访问控制(DAC)和强制访问控制(MAC)。

RBAC是在MAC的基础上提出来的。

虽然基于角色的思想早在20世纪60年代就已经提出,但直到90年代,RBAC模型才逐渐得到重视和研究,Sandhu[3]等人在这个时期提出了学术界都认可的RBAC96模型。

RBAC有两大显著特征:一是减小授权管理的复杂性,降低管理开销;二是灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。

基于RBAC 的这两个特性,对配置RBAC实施中国墙安全模型,有很强的使用价值。

利用了RBAC 的“策略中性”原理,对侵略型中国墙安全模型进行RBAC配置。

rbac实现原理

rbac实现原理

rbac实现原理RBAC (Role-Based Access Control) 是一种权限控制模型,旨在通过角色的授予和访问控制来管理对系统资源的访问。

下面介绍 RBAC 的实现原理。

1. 角色定义:RBAC 的核心是角色,需要首先定义角色以及它们的权限。

角色是一组相关联的权限的集合,通常与特定的职责或任务相关。

在定义角色时需要考虑到组织结构和职位级别等因素。

2. 权限授予:一旦角色定义好之后,需要将权限授予给相应的角色。

权限是指对系统资源的访问能力,如读、写、执行等。

权限可以根据资源的类型进行分类,比如文件权限、数据库权限等。

在进行权限授予时,需要考虑到角色的职责和需要访问的资源。

3. 用户分配:RBAC 中的用户与角色关联,而不是直接与权限关联。

通过将用户与角色进行关联,可以实现对用户权限的管理和控制。

一个用户可以拥有多个角色,以满足不同的职责和需要。

用户分配可以基于用户的职位、部门、组织等因素进行。

4. 访问控制:RBAC 的基本原理是通过角色的授予和访问控制来管理对系统资源的访问。

当一个用户请求访问某个资源时,系统会检查该用户所属的角色是否具有访问该资源的权限。

如果具有权限,则允许访问;否则,拒绝访问。

5. 角色继承:RBAC 还支持角色继承的概念,即角色可以继承其他角色的权限。

这样可以减少权限管理的复杂性,提高角色的重用性。

角色继承可以形成层次结构,顶层角色可以拥有最高级别的权限,而下层角色可以继承上层角色的权限。

6. 审计和日志记录:为了保证系统的安全和合规性,RBAC 还需要进行审计和日志记录。

通过记录用户的角色、权限、资源访问等信息,可以进行行为分析和安全事件的跟踪。

审计和日志记录可以帮助快速识别权限问题和异常行为。

7. 管理工具:RBAC 还需要相应的管理工具来支持角色、权限和用户的管理。

管理工具可以提供用户界面和命令行接口,用于创建、编辑和删除角色、权限和用户。

管理工具还可以支持角色继承、审计和日志记录等功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

rbac模型的构成
一、RBAC模型的基本概念
RBAC(Role-Based Access Control)模型是一种广泛应用于信息系统安全领域的访问控制模型。

它基于用户角色的概念,通过将用户分配到不同的角色,从而控制用户对系统资源的访问权限。

RBAC模型的核心思想是将权限授予角色,而不是直接授予用户,从而简化了权限管理的复杂性。

二、RBAC模型的主要组成部分
1. 用户(User):RBAC模型中的用户是指系统的使用者,可以是个人用户或组织单位。

用户通过被分配到不同的角色来获取相应的访问权限。

2. 角色(Role):角色是一组具有相似功能和权限需求的用户集合。

在RBAC模型中,角色被赋予权限,而用户则被分配到不同的角色。

通过角色的划分,可以简化权限管理,提高系统的安全性和可维护性。

3. 权限(Permission):权限是指用户在系统中进行某些操作或访问某些资源的能力。

RBAC模型通过将权限赋予角色,从而实现对系统资源的访问控制。

4. 用户-角色关系(User-Role Relationship):用户-角色关系描述了用户与角色之间的关联关系。

一个用户可以被分配到多个角色,一个角色也可以被多个用户所使用。

5. 角色-权限关系(Role-Permission Relationship):角色-权限关系描述了角色与权限之间的关联关系。

一个角色可以被赋予多个权限,一个权限也可以被赋予多个角色。

三、RBAC模型的应用
RBAC模型广泛应用于各种信息系统的访问控制场景,如企业内部的权限管理、操作系统的访问控制、网络服务的权限控制等。

RBAC模型可以帮助组织实现精细化的权限管理,降低系统被滥用的风险。

在企业内部,RBAC模型可以用于管理员工的权限。

通过将员工分配到不同的角色,可以根据员工的职责和需要,赋予相应的权限。

这样可以确保员工只能访问其需要的资源,提高系统的安全性和工作效率。

在操作系统中,RBAC模型可以用于实现对用户的访问控制。

通过将用户分配到不同的角色,可以限制用户对系统资源的访问权限,防止未经授权的操作。

同时,RBAC模型还可以提供审计功能,记录用户的操作行为,以便进行安全审计和追溯。

在网络服务中,RBAC模型可以用于对用户进行访问控制。

通过将用户分配到不同的角色,可以限制用户对网络服务的访问权限,防止未经授权的操作。

RBAC模型还可以与其他安全机制结合,如认证、加密等,提供全面的安全保障。

总结:
RBAC模型是一种基于角色的访问控制模型,通过将用户分配到不同的角色来控制其对系统资源的访问权限。

RBAC模型的主要组成部分包括用户、角色、权限、用户-角色关系和角色-权限关系。

RBAC模型广泛应用于企业内部的权限管理、操作系统的访问控制、网络服务的权限控制等场景,可以提高系统的安全性和可维护性。

相关文档
最新文档