- 1 信息安全简介
- 1.1 信息安全发展史
- 1.2 信息安全等级保护
- 2 安全 OS
- 2.1 UNIX 系统安全
- 2.1.1 设置健壮的密码
- 2.1.2 删除所有的特殊账户
- 2.1.3 关闭不需要的服务
- 2.1.4 远程登陆管理
- 2.1.5 限制 IP 访问
- 2.1.6 日志监控
- 2.2 Linux 系统安全
- Linux 安全设置手册
- Linux 服务器安全加固
- Linux 防火墙
- SELinux
- SSH 免密登陆
- 2.3 Windows 系统安全
- Windows 常见安全隐患
- 防火墙-Microsoft Defender
- 本章参考
- 3 访问控制技术
- 3.1 基于角色的访问控制 RBAC
- 基于 RBAC 的延展-用户组(租户)
- 示例 1:Python Django 后台管理
- 示例 2:Python flask_appbuilder 后台管理
- 3.2 认证
- 3.2.1 认证机制
- 3.2.2 OpenID
- 3.2.3 LDAP
- 3.2.4 Kerberos
- 3.2.5 数字签名
- 3.2.6 基于证书的认证
- 3.3 授权
- 3.3.1 OAuth
- 3.4 HTTPS
- 3.4.1 HTTPS 原理
- 3.4.2 证书
- 3.4.3 自签名证书
- 本节参考
- 案例
- 天网 MAZE 的信用卡机制
- S3 认证机制
- 云盘认证机制
- 双因子认证
- 扫码登陆
- 单点登陆 SSO
- 本章参考
- 4 安全编程
- 4.1 内存管理
- 4.2 安全编程实践
- 4.2.1 使用断言进行防止错误
- 4.3 语言相关的安全编码
- 4.3.1 net 中使用安全函数
- 4.3.2 PHP 代码执行漏洞
- 4.4 源码保护
- Java 源码保护
- python 源码保护
- 本章参考
- 5 安全算法
- 6 安全架构
- 云安全
- 云安全事件案例
- 云计算带来的安全挑战
- 应用:安全云/云查杀
- 业界案例
- 华为的安全白皮书
- 参考资料
- 附录
- 安全相关法律法规
- 个人信息安全
- 云安全标准与组织
- 国际
- 国内
3.1 基于角色的访问控制 RBAC
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。 RBAC属于策略中立的访问控制模型,既可以实现自主存取控制策略(DAC),又可以实现强制存取控制策略(MAC),可以有效缓解传统安全管理处理瓶颈问题,被认为是一种普通适用的访问控制模型,尤其适用于大型组织的统一资源有效的访问控制机制。
角色(Role)作为一个用户与权限的代理层,解耦了权限和用户的关系,所有的授权应该给予角色而不是直接给用户或组(Group)。权限是权限颗粒,由操作(Operation)和资源(Resource)组成,表示对资源的一个操作,即 Operation + Resource
;例如,对于新闻的删除操作。角色-权限(Role-Privilege)是多对多(Many-to-Many)的关系,这是权限的核心。
RBAC 参考模型部件
NIST(The National Institute of Standards and Technology,美国国家标准与技术研究院,2004)发布标准 RBAC 模型。标准 RBAC 模型由 4 个部件模型组成,这 4 个部件模型分别是:
- 基本模型 RBAC0(Core RBAC);
- 角色分级模型 RBAC1(Hierarchical RBAC,含 General,Limited);
- 角色限制模型 RBAC2(Constraining RBAC,含 Static/Dynamic Separation of Duty,即 SSD 和 DSD);
- 统一模型 RBAC3(Combines RBAC)。
RBAC0 : 基本模型。权限赋予角色,再把角色赋予用户。用户和角色,角色和权限都是多对多的关系。用户拥有的权限等于他所有的角色持有权限之和。在 RBAC0 之中,包含最基本的 5 个元素:用户集(users,USERS)、角色集(roles,ROLES)、目标/对象集(objects,OBS)、操作集 (operations,OPS)、许可权/特权集(permissions,PRMS)。
角色分层模型 RBAC1
RBAC1 建立在 RBAC0 基础之上,在角色中引入了继承的概念。角色继承用于解决复杂组织机构之间的权限关系。它是一种 很自然地
对 组织机构层次中权限和责任的映射。如:总经理→部门经理→业务员。角色继承的方向和用户的关系方向相反,即权限最小的在顶端:业务员→部门经理→总经理。 如:若所有 role_salesman(业务员)的权限都是 role_Mgr(经理)的权限,那么 role_Mgr 继承自 role_salesman。
角色限制模型 RBAC2(Constraint RBAC)
RBAC2 同样建立在 RBAC0 基础之上,仅是对用户、角色和权限三者之间增加了一些限制。这些限制可以分成两类,即静态职责分离 SSD(Static Separation of Duty) 和动态职责分离 DSD(Dynamic Separation of Duty)。职责关系分离(SoD)用于增强利益冲突策略,这种策略某些组织机构可能会需要,即避免用户超出其当前职位合理的权限等级。简单地说,就是避 免两个角色间的冲突。如:会计和出纳,在一般公司都不允许同一个人兼任。因此在分配角色的时候,应该禁止这两种角色赋给同一人。
- 静态职责分离 SSD:即在系统初始化时,当角色授给用户时来判断是否将冲突的角色给了同一用户。在 RBAC 标准中,冲突的角色被定义为一个二元关系,就是说,任何一个用户只能拥有其中的一个。
- 动态职责分离 DSD:指相冲突的角色可以同时给一个,但是在一次会话中不能同时扮演两个冲突的角色。如:在超市 POS 系统中,ywf 可以是收银员 或收银员主管(ROLE)。收银员必须经过主管才能打开收银机的抽屉修改某次结账错误。如果收银员角色的一个单独的行为中需要从收银员切换到主管,那么 DSD 要求,这个用户(USER)必须先放弃收银员角色;即,当该收银员正在收银时发现错误,必须要先关闭抽屉,然后再次以主管身份打开抽屉才行。
统一模型 RBAC3(Combines RBAC)
RBAC3 是 RBAC1 和 RBAC2 的合集,所以 RBAC3 既有角色分层,也包括可以增加各种限制。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论