当前位置:首页 » 文件传输 » 自主访问控制模型有哪些特征
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

自主访问控制模型有哪些特征

发布时间: 2022-10-22 23:00:49

Ⅰ 自主访问控制(DAC)与强制访问控制(MAC)的原理是什么,区别在哪里各有什么优缺点

双系统或多系统有什么优缺点,求祥解。XjU9es

Ⅱ 自主访问控制和强制访问控制的区别

  • 强制访问控制

  • 通过无法回避的访问限制来阻止直接或间接地非法入侵。



  • 自主访问控制

  • 管理的方式不同就形成不同的访问控制方式。一种方式是由客体的属主对自己的客体进行管理,由属主自己决定是否将自己客体的访问权或部分访问权授予其他主体,这种控制方式是自主的,我们把它称为自主访问控制(Discretionary Access Control——DAC)。在自主访问控制下,一个用户可以自主选择哪些用户可以共享他的文件。Linux系统中有两种自主访问控制策略,一种是9位权限码(User-Group-Other),另一种是访问控制列表ACL(Access Control List)。

  • 强制访问控制

  • 强制访问控制(Mandatory Access Control——MAC),用于将系统中的信息分密级和类进行管理,以保证每个用户只能访问到那些被标明可以由他访问的信息的一种访问约束机制。通俗的来说,在强制访问控制下,用户(或其他主体)与文件(或其他客体)都被标记了固定的安全属性(如安全级、访问权限等),在每次访问发生时,系统检测安全属性以便确定一个用户是否有权访问该文件。其中多级安全(MultiLevel Secure, MLS)就是一种强制访问控制策略。

Ⅲ 自主访问控制的概述

自主访问控制是保护系统资源不被非法访问的一种有效手段。但是这种控制是自主的,即它是以保护用户的个人资源的安全为目标并以个人的意志为转移的。
自主访问控制是一种比较宽松的访问控制,一个主题的访问权限具有传递性。
计算机信息系统可信计算基定义和控制系统中命名用户对命名客体的访问。
实施机制(例如:访问控制表)允许命名用户以用户和(或)用户组的身份规定并控制客体的共享;阻止非授权用户读取敏感信息。并控制访问权限扩散。
自主访问控制机制根据用户指定方式或默认方式,阻止非授权用户访问客体。访问控制的粒度是单个用户。没有存取权的用户只允许由授权用户指定对客体的访问权。阻止非授权用户读取敏感信息。

Ⅳ 自主访问控制与强制访问控制的区别

一、类型不同

1、自主访问控制:由《可信计算机系统评估准则》所定义的访问控制中的一种类型。

2、强制访问控制:在计算机安全领域指一种由操作系统约束的访问控制。

二、目的不同

1、自主访问控制:根据主体(如用户、进程或 I/O 设备等)的身份和他所属的组限制对客体的访问。

2、强制访问控制:目标是限制主体或发起者访问或对对象或目标执行某种操作的能力。


三、特点不同

1、自主访问控制:由客体的属主对自己的客体进行管理,由属主自己决定是否将自己的客体访问权或部分访问权授予其他主体,这种控制方式是自主的。

2、强制访问控制:每当主体尝试访问对象时,都会由操作系统内核强制施行授权规则——检查安全属性并决定是否可进行访问。任何主体对任何对象的任何操作都将根据一组授权规则(也称策略)进行测试,决定操作是否允许。


Ⅳ 访问控制的基本原理和常见模型

访问控制的功能及原理:
访问控制的主要功能包括:保证合法用户访问受权保护的网络资源,防止非法的主体进入受保护的网络资源,或防止合法用户对受保护的网络资源进行非授权的访问。访问控制首先需要对用户身份的合法性进行验证,同时利用控制策略进行选用和管理工作。当用户身份和访问权限验证之后,还需要对越权操作进行监控。因此,访问控制的内容包括认证、控制策略实现和安全审计。
1、认证。包括主体对客体的识别及客体对主体的检验确认;
2、控制策略。通过合理地设定控制规则集合,确保用户对信息资源在授权范围内的合法使用。既要确保授权用户的合理使用,又要防止非法用户侵权进入系统,使重要信息资源泄露。同时对合法用户,也不能越权行使权限以外的功能及访问范围;
3、安全审计。系统可以自动根据用户的访问权限,对计算机网络环境下的有关活动或行为进行系统的、独立的检查验证,并做出相应评价与审计。
访问控制的模型:
主要的访问控制类型有3种模型:自主访问控制(DAC)、强制访问控制(MAC)和基于角色访问控制(RBAC)。
1、自主访问控制
自主访问控制(Discretionary Access Control,DAC)是一种接入控制服务,通过执行基于系统实体身份及其到系统资源的接入授权。包括在文件,文件夹和共享资源中设置许可。用户有权对自身所创建的文件、数据表等访问对象进行访问,并可将其访问权授予其他用户或收回其访问权限。允许访问对象的属主制定针对该对象访问的控制策略,通常,可通过访问控制列表来限定针对客体可执行的操作。
2、强制访问控制
强制访问控制(MAC)是系统强制主体服从访问控制策略。是由系统对用户所创建的对象,按照规定的规则控制用户权限及操作对象的访问。主要特征是对所有主体及其所控制的进程、文件、段、设备等客体实施强制访问控制。
3、基于角色的访问控制
角色(Role)是一定数量的权限的集合。指完成一项任务必须访问的资源及相应操作权限的集合。角色作为一个用户与权限的代理层,表示为权限和用户的关系,所有的授权应该给予角色而不是直接给用户或用户组。

Ⅵ 安卓系统的自主访问控制和强制访问控制是怎么操作的

自主访问控制
自主访问的含义是有访问许可的主体能够直接或间接地向其他主体转让访问权。自主访问控制是在确认主体身份以及(或)它们所属的组的基础上,控制主体的活动,实施用户权限管理、访问属性(读、写、执行)管理等,是一种最为普遍的访问控制手段。自主访问控制的主体可以按自己的意愿决定哪些用户可以访问他们的资源,亦即主体有自主的决定权,一个主体可以有选择地与其它主体共享他的资源。
基于访问控制矩阵的访问控制表(ACL)是DAC中通常采用一种的安全机制。ACL是带有访问权限的矩阵,这些访问权是授予主体访问某一客体的。安全管理员通过维护ACL控制用户访问企业数据。对每一个受保护的资源,ACL对应一个个人用户列表或由个人用户构成的组列表,表中规定了相应的访问模式。当用户数量多、管理数据量大时,由于访问控制的粒度是单个用
户,ACL会很庞大。当组织内的人员发生能变化(升迁、换岗、招聘、离职)、工作职能发生变化(新增业务)时,ACL的修改变得异常困难。采用ACL机制管理授权处于一个较低级的层次,管理复杂、代价高以至易于出错。
DAC的主要特征体现在主体可以自主地把自己所拥有客体的访问权限授予其它主体或者从其它主体收回所授予的权限,访问通常基于访问控制表(ACL)。访问控制的粒度是单个用户。没有存取权的用户只允许由授权用户指定对客体的访问权。DAC的缺点是信息在移动过程中其访问权限关系会被改变。如用户A可将其对目标O的访问权限传递给用户B,从而使不具备对O访问权限的B可访问O。
强制访问控制
为了实现完备的自主访问控制系统,由访问控制矩阵提供的信息必须以某种形式存放在系统中。访问矩阵中的每行表示一个主体,每一列则表示一个受保护的客体,而矩阵中的元素,则表示主体可以对客体的访问模式。目前,在系统中访问控制矩阵本身,都不是完整地存储起来,因为矩阵中的许多元素常常为空。空元素将会造成存储空间的浪费,而且查找某个元素会耗费很多时间。实际上常常是基于矩阵的行或列来表达访问控制信息。
强制访问控制是“强加”给访问主体的,即系统强制主体服从访问控制政策。强制访问控制(MAC)的主要特征是对所有主体及其所控制的客体(例如:进程、文件、段、设备)实施强制访问控制。
为这些主体及客体指定敏感标记,这些标记是等级分类和非等级类别的组合,它们是实施强制访问控制的依据。系统通过比较主体和客体的敏感标记来决定一个主体是否能够访问某个客体。用户的程序不能改变他自己及任何其它客体的敏感标记,从而系统可以防止特洛伊木马的攻击。
Top Secret),秘密级(Secret),机密级(Confidential)及无级别级(Unclassified)。其级别为T>S>C>U,系统根据主体和客体的敏感标记来决定访问模式。访问模式包括:
read down):用户级别大于文件级别的读操作;
Write up):用户级别小于文件级别的写操作;
Write down):用户级别等于文件级别的写操作;
read up):用户级别小于文件级别的读操作;
自主访问控制不能抵御“特洛伊木马”攻击,而强制访问控制能够有效的防御“特洛伊木马”攻击。MAC最主要的优势是它阻止特洛伊木马的能力 一个特洛伊木马是在一个执行某些合法功能的程序中隐藏的代码,它利用运行此程序的主体的权限违反安全策略 通过伪装成有用的程序在进程中泄露信息 一个特洛伊木马能够以两种方式泄露信息: 直接与非直接泄露 前者, 特洛伊木马以这样一种方式工作, 使信息的安全标示不正确并泄露给非授权用户; 后者特洛伊木马通过以下方式非直接地泄露信息: 在返回给一个主体的合法信息中编制 例如: 可能表面上某些提问需要回答, 而实际上用户回答的内容被传送给特洛伊木马。

Ⅶ 访问控制技术的主要类型有哪三种

访问控制技术主要有3种类型:自主访问控制、强制访问控制和基于角色访问控制。自主访问控制:用户通过授权或者回收给其他用户访问特定资源的权限,主要是针对其访问权进行控制。

强制访问控制:由系统己经部署的访问控制策略,按照系统的规定用户需要服从系统访问控制策略,比如系统管理员制定访问策略,其他用户只能按照规定进行进程、文件和设备等访问控制。

(7)自主访问控制模型有哪些特征扩展阅读

访问控制的主要功能包括:保证合法用户访问受权保护的网络资源,防止非法的主体进入受保护的网络资源,或防止合法用户对受保护的网络资源进行非授权的访问。

访问控制首先需要对用户身份的合法性进行验证,同时利用控制策略进行选用和管理工作。当用户身份和访问权限验证之后,还需要对越权操作进行监控。因此,访问控制的内容包括认证、控制策略实现和安全审计。

Ⅷ 访问控制技术的类型机制

访问控制可以分为两个层次:物理访问控制和逻辑访问控制。物理访问控制如符合标准规定的用户、设备、门、锁和安全环境等方面的要求,而逻辑访问控制则是在数据、应用、系统、网络和权限等层面进行实现的。对银行、证券等重要金融机构的网站,信息安全重点关注的是二者兼顾,物理访问控制则主要由其他类型的安全部门负责。 主要的访问控制类型有3种模式:自主访问控制(DAC)、强制访问控制(MAC)和基于角色访问控制(RBAC)。
1)自主访问控制
自主访问控制(Discretionary Access Control,DAC)是一种接入控制服务,通过执行基于系统实体身份及其到系统资源的接入授权。包括在文件,文件夹和共享资源中设置许可。用户有权对自身所创建的文件、数据表等访问对象进行访问,并可将其访问权授予其他用户或收回其访问权限。允许访问对象的属主制定针对该对象访问的控制策略,通常,可通过访问控制列表来限定针对客体可执行的操作。
①每个客体有一个所有者,可按照各自意愿将客体访问控制权限授予其他主体。
②各客体都拥有一个限定主体对其访问权限的访问控制列表(ACL)。
③每次访问时都以基于访问控制列表检查用户标志,实现对其访问权限控制。
④DAC的有效性依赖于资源的所有者对安全政策的正确理解和有效落实。
DAC提供了适合多种系统环境的灵活方便的数据访问方式,是应用最广泛的访问控制策略。然而,它所提供的安全性可被非法用户绕过,授权用户在获得访问某资源的权限后,可能传送给其他用户。主要是在自由访问策略中,用户获得文件访问后,若不限制对该文件信息的操作,即没有限制数据信息的分发。所以DAC提供的安全性相对较低,无法对系统资源提供严格保护。
2)强制访问控制
强制访问控制(MAC)是系统强制主体服从访问控制策略。是由系统对用户所创建的对象,按照规定的规则控制用户权限及操作对象的访问。主要特征是对所有主体及其所控制的进程、文件、段、设备等客体实施强制访问控制。在MAC中,每个用户及文件都被赋予一定的安全级别,只有系统管理员才可确定用户和组的访问权限,用户不能改变自身或任何客体的安全级别。系统通过比较用户和访问文件的安全级别,决定用户是否可以访问该文件。此外,MAC不允许通过进程生成共享文件,以通过共享文件将信息在进程中传递。MAC可通过使用敏感标签对所有用户和资源强制执行安全策略,一般采用3种方法:限制访问控制、过程控制和系统限制。MAC常用于多级安全军事系统,对专用或简单系统较有效,但对通用或大型系统并不太有效。
MAC的安全级别有多种定义方式,常用的分为4级:绝密级(Top Secret)、秘密级(Secret)、机密级(Confidential)和无级别级(Unclas sified),其中T>S>C>U。所有系统中的主体(用户,进程)和客体(文件,数据)都分配安全标签,以标识安全等级。
通常MAC与DAC结合使用,并实施一些附加的、更强的访问限制。一个主体只有通过自主与强制性访问限制检查后,才能访问其客体。用户可利用DAC来防范其他用户对自己客体的攻击,由于用户不能直接改变强制访问控制属性,所以强制访问控制提供了一个不可逾越的、更强的安全保护层,以防范偶然或故意地滥用DAC。
3)基于角色的访问控制
角色(Role)是一定数量的权限的集合。指完成一项任务必须访问的资源及相应操作权限的集合。角色作为一个用户与权限的代理层,表示为权限和用户的关系,所有的授权应该给予角色而不是直接给用户或用户组。
基于角色的访问控制(Role-Based Access Control,RBAC)是通过对角色的访问所进行的控制。使权限与角色相关联,用户通过成为适当角色的成员而得到其角色的权限。可极大地简化权限管理。为了完成某项工作创建角色,用户可依其责任和资格分派相应的角色,角色可依新需求和系统合并赋予新权限,而权限也可根据需要从某角色中收回。减小了授权管理的复杂性,降低管理开销,提高企业安全策略的灵活性。
RBAC模型的授权管理方法,主要有3种:
①根据任务需要定义具体不同的角色。
②为不同角色分配资源和操作权限。
③给一个用户组(Group,权限分配的单位与载体)指定一个角色。
RBAC支持三个着名的安全原则:最小权限原则、责任分离原则和数据抽象原则。前者可将其角色配置成完成任务所需要的最小权限集。第二个原则可通过调用相互独立互斥的角色共同完成特殊任务,如核对账目等。后者可通过权限的抽象控制一些操作,如财务操作可用借款、存款等抽象权限,而不用操作系统提供的典型的读、写和执行权限。这些原则需要通过RBAC各部件的具体配置才可实现。 访问控制机制是检测和防止系统未授权访问,并对保护资源所采取的各种措施。是在文件系统中广泛应用的安全防护方法,一般在操作系统的控制下,按照事先确定的规则决定是否允许主体访问客体,贯穿于系统全过程。
访问控制矩阵(Access Contro1 Matrix)是最初实现访问控制机制的概念模型,以二维矩阵规定主体和客体间的访问权限。其行表示主体的访问权限属性,列表示客体的访问权限属性,矩阵格表示所在行的主体对所在列的客体的访问授权,空格为未授权,Y为有操作授权。以确保系统操作按此矩阵授权进行访问。通过引用监控器协调客体对主体访问,实现认证与访问控制的分离。在实际应用中,对于较大系统,由于访问控制矩阵将变得非常大,其中许多空格,造成较大的存储空间浪费,因此,较少利用矩阵方式,主要采用以下2种方法。
1)访问控制列表
访问控制列表(Access Control List,ACL)是应用在路由器接口的指令列表,用于路由器利用源地址、目的地址、端口号等的特定指示条件对数据包的抉择。是以文件为中心建立访问权限表,表中记载了该文件的访问用户名和权隶属关系。利用ACL,容易判断出对特定客体的授权访问,可访问的主体和访问权限等。当将该客体的ACL置为空,可撤消特定客体的授权访问。
基于ACL的访问控制策略简单实用。在查询特定主体访问客体时,虽然需要遍历查询所有客体的ACL,耗费较多资源,但仍是一种成熟且有效的访问控制方法。许多通用的操作系统都使用ACL来提供该项服务。如Unix和VMS系统利用ACL的简略方式,以少量工作组的形式,而不许单个个体出现,可极大地缩减列表大小,增加系统效率。
2)能力关系表
能力关系表(Capabilities List)是以用户为中心建立访问权限表。与ACL相反,表中规定了该用户可访问的文件名及权限,利用此表可方便地查询一个主体的所有授权。相反,检索具有授权访问特定客体的所有主体,则需查遍所有主体的能力关系表。 通过介绍单点登入SSO的基本概念和优势,主要优点是,可集中存储用户身份信息,用户只需一次向服务器验证身份,即可使用多个系统的资源,无需再向各客户机验证身份,可提高网络用户的效率,减少网络操作的成本,增强网络安全性。根据登入的应用类型不同,可将SSO分为3种类型。
1)对桌面资源的统一访问管理
对桌面资源的访问管理,包括两个方面:
①登入Windows后统一访问Microsoft应用资源。Windows本身就是一个“SSO”系统。随着.NET技术的发展,“Microsoft SSO”将成为现实。通过Active Directory的用户组策略并结合SMS工具,可实现桌面策略的统一制定和统一管理。
②登入Windows后访问其他应用资源。根据Microsoft的软件策略,Windows并不主动提供与其他系统的直接连接。现在,已经有第三方产品提供上述功能,利用Active Directory存储其他应用的用户信息,间接实现对这些应用的SSO服务。
2)Web单点登入
由于Web技术体系架构便捷,对Web资源的统一访问管理易于实现。在目前的访问管理产品中,Web访问管理产品最为成熟。Web访问管理系统一般与企业信息门户结合使用,提供完整的Web SSO解决方案。
3)传统C/S 结构应用的统一访问管理
在传统C/S 结构应用上,实现管理前台的统一或统一入口是关键。采用Web客户端作为前台是企业最为常见的一种解决方案。
在后台集成方面,可以利用基于集成平台的安全服务组件或不基于集成平台的安全服务API,通过调用信息安全基础设施提供的访问管理服务,实现统一访问管理。
在不同的应用系统之间,同时传递身份认证和授权信息是传统C/S结构的统一访问管理系统面临的另一项任务。采用集成平台进行认证和授权信息的传递是当前发展的一种趋势。可对C/S结构应用的统一访问管理结合信息总线(EAI)平台建设一同进行。

Ⅸ 自主访问控制存在哪些主要的安全性问题

从“震网”、“火焰”病毒的大规模爆发,到索尼在线被黑、CSDN数据泄露等信息安全事件的层出不穷,每一次大规模病毒、黑客攻击行为的出现,都会对用户信息系统造成严重的危害,引起了安全行业的集体反思。作为信息系统的重要组成部分,操作系统承担着连接底层硬件和上层业务应用的重任,在诸多安全事件中首当其冲,面临着巨大的安全压力。而操作系统本身在安全防护上的脆弱性,特别是系统内自主访问控制机制存在的安全隐患,使用户在面对病毒、木马及黑客攻击时显得力不从心,最终导致安全事件密集爆发的信息安全“危局”。
掀开自主访问控制的面纱
为了增强信息系统安全、可靠运行的能力,操作系统内置了一些防护措施,例如身份鉴别、访问控制、入侵防范等。其中,访问控制是计算机安全防护体系中的重要环节,包含主体、客体、控制策略三个要素。其中,主体是指可以对其他实体施加动作的主动实体,例如用户、进程等;客体包括数据、文件、程序等,是接受其他实体访问的被动实体;控制策略则定义了主体与客体相互作用的途径。简而言之,访问控制是一种通过控制策略授予、约束主体访问客体行为的安全机制。
访问控制分为三种模型,即自主访问控制(DAC)、强制访问控制(MAC)和基于角色的访问控制(RBAC)。其中,自主访问控制在C2级操作系统中应用广泛,是根据自主访问控制策略建立的一种模型,允许合法用户以用户或用户组的身份访问策略规定的客体,同时阻止非授权用户访问客体,某些用户还可以自主地把自己所拥有的客体的访问权限授予其他用户。
自主访问控制的实现方式包括目录式访问控制模式、访问控制表(ACL)、访问控制矩阵、面向过程的访问控制等,其中,访问控制表是自主访问控制机制通常采用的一种方式。访问控制表是存放在计算机中的一张表,本质上是带有访问权限的矩阵,其访问权限包括读文件、写文件、执行文件等等。在自主访问控制机制下,每个客体都有一个特定的安全属性,同时访问控制表也授予或禁止主体对客体的访问权限。在实际工作中,安全管理员通过维护访问控制表,控制用户对文件、数据等IT系统资源的访问行为,来达到安全防控的目的。
从安全性上看,现有操作系统中基于访问控制表的自主访问控制存在着明显的缺陷:一方面,超级用户(root/Administrator)权力过度集中,可以随意修客体的访问控制表,只要拥有超级管理员权限就可以对服务器所有的资源进行任意操作;另一方面,客体的属主可以自主地将权限转授给别的主体,一旦把某个客体的ACL修改权转授出去以后,拥有者便很难对自己的客体实施控制了。因此,在现有的这种访问控制模型下,操作系统存在很多安全风险。
自主访问控制下的安全风险
按照访问许可机制的不同,自主访问控制又分为三个类型,即自由型、等级型和宿主型。其中,在自由型自主访问控制机制中,不同主体之间可以自由转让客体访问控制表的修改权限,意味着任何主体都有可能对某一客体进行操作,系统安全性很难得到保障;在等级型自主访问控制机制中,用户可以将拥有修改客体访问控制表权限的主体组织成等级型结构,例如按照等级将不同的主体排列成树型结构,高等级主体自动获得低等级客体的控制权限。这种方案的优点是可以选择值得信任的人担任各级领导,从而实现对客体的分级控制,缺点是同时有多个主体有能力修改某一客体的访问权限。
从市场应用情况看,等级型自主访问控制是使用范围最为广泛的安全机制,现有C2级大型商用服务器操作系统(如AIX、HP-UX、Solaris、Windows Server、LinuxServer等)中的访问控制机制均为等级型自主访问控制,涉及金融、能源、军工等国家命脉行业。在这些系统中,位于树型结构顶端的超级用户拥有无上的权限,可以对其他用户拥有的资源进行任意修改和访问。权限的高度集中,客观上放大了系统的安全风险。针对等级型自主访问控制,攻击者可以通过暴力破解、系统漏洞利用、木马攻击等多种方式窃取管理员权限,进而实现对目标系统的完全控制。事实证明确实如此,无论是曾经肆虐全国的“灰鸽子”木马,还是震惊全球的“震网”、“火焰”等病毒,都将获得管理权限作为一种重要手段,在此基础上成功入侵系统并实施破坏行为。
完善自主访问控制机制
为了提升信息系统的安全防护能力,我国颁布了《信息安全等级保护管理办法》,并制定了一系列国家标准,为用户开展信息安全等级保护工作提供指导意义。其中,《GB/T 20272-2006信息安全技术-操作系统安全技术要求》是专门针对操作系统安全防护的国家标准,该标准在“自主访问控制”部分提出了明确的要求:“客体的拥有者应是唯一有权修改客体访问权限的主体,拥有者对其拥有的客体应具有全部控制权,但是,不充许客体拥有者把该客体的控制权分配给其他主体。”
从技术要求的细节上看,满足等级保护标准的自主访问控制机制实质上是宿主型自主访问控制。在这种机制下,用户需要对客体设置一个拥有者,并使其成为唯一有权访问该客体访问控制表的主体,确保了受保护客体访问控制表控制权的唯一性,有效规避由于系统管理员信息泄露而给系统带来的巨大危害,同时也限制了病毒对系统的破坏行为,帮助用户提升防病毒、防黑客攻击的能力。
目前,国内已经出现满足等级保护操作系统技术要求的安全产品,例如椒图科技推出的JHSE椒图主机安全环境系统(以下简称JHSE),就基于宿主型自主访问控制机制保障操作系统的安全。此外,JHSE还采用了强制访问控制模型,为访问主体和受保护的客体分配不同的安全级别属性,在实施访问控制的过程中,系统将对主体和客体的安全级别属性进行比较,之后再决定主体是否可以访问受保护的客体,从而实现了细粒度的安全访问控制机制。可以相信,随着安全技术的持续进步和用户安全意识的不断增强,操作系统将会在面对病毒、木马及黑客攻击时扭转不利局面,为整体信息系统的安全运行提供可靠支撑。

Ⅹ 熟悉这四种权限管理模型,产品迭代才能心里有数

从本质来说,无论何种类型的权限管理模型都可以抽象出三个基本的要素——即:用户(user)、系统/应用(system/application)、策略(policy)。

策略决定了用户和不同功能应用之间如何交互。反过来,也就是说,无论设计何种权限管理的模型,都是基于这三个基本要素来展开。

本文聚焦于目前应用最广的RBAC模型,但在这里提出三个基本要素,主要是为了帮助大家更好的理解权限管理,不至于在众多权限模型中迷失。

不同的公司或软件提供商,设计了无数种控制用户访问功能或资源的方法。但无论哪种设计,都可归到四种经典权限模型里——自主访问控制(DAC,Discretionary Access Control)、强制访问控制 (MAC,Mandatory Access Control)、基于角色访问控制 (RBAC,Role-based Access Control) 和基于属性访问控制 (ABAC,Attribute-based Access Control).

(我觉得翻译不好,但也找不到更贴切的。本文下面内容均以英文首字母来代替:DAC,MAC,RBAC,ABAC)。

本文主要就RBAC展开分析该模型的使用场景,以及如何基于该模型设计出合适的权限管理体系。但从文章便于理解的完整性的角度来考虑,会对DAC,MAC和ABAC进行简要的介绍。

DAC: 被操作对象,根据访问控制规则,来判断操作主体可对操作对象做哪些操作,比如只读或者是可写的权限。而自主的含义,则是拥有某种权限的用户,可以把权限赋予其他用户。

MAC: 被操作对象及用户两方均有各自的权限标识,用户能否对对象进行操作,取决于权限标识的对照关系。这种模型多用于等级制度明显,信息访问安全性要求高的场景,比如军事。

ABAC和RBAC有很多相通的地方,而且相比较而言ABAC实际上更灵活,符合未来发展的方向。因此,我们分析完RBAC后,再回过头来看ABAC。

Role-based Access Control,基于角色的权限控制模型。

顾名思义,给用户定义角色,通过角色来控制权限。 目前来说基于角色权限控制模型是应用较广的一个。特别是2B方向SAAS领域,应用尤其常见。

如上图示,用户拥有角色,且可拥有多个角色,而每个角色对应不同权限。

这样的好处是:不必为每一个用户去配置权限,拥有极大的灵活性和便利性。而当用户及权限的量级又大到另一个级别时,又引入了角色组和权限组概念,此处不做延伸,有兴趣的读者可以去搜些资料来看。

我们已经知道什么是RBAC模型了,在分析怎么来根据此模型来设计权限体系之前,我们再把这个模型要素进行拆分一下。

首先是:用户、角色、权限。

而权限,具体到某个软件来说,实际上包含两个方面。一个是菜单权限,另一个是数据权限。

不同的行业会有不同的使用场景,用户角色权限模型也会有不同程度上的变化。但归到底层来说,还是离不开上面我画的这个图。

上面这个图是从官网看到的,销售自动化领域十分典型的用户权限管理设计。

接下来,我们来抽象一个场景或者说案例,来辅助我们理解整个权限管理设计的过程。假设A公司是个中大型的生产制造公司,公司有OA、HR、CRM、ERP一系列管理软件。公司员工以万计,不同人员职责不同,体现在管理软件上,就是会需要使用不同的功能来完成工作。

帐号是人和软件进行交互时的一个身份的转化。账号的背后,代表了这个操作的人。账号管理应该是所有需要和系统交互的人的统一管理,包含基础信息,比如:这个人的名字,性别、手机号、部门以及其他属性。

角色管理,就是要从实际场景出发,比如:使用系统的企业或者团体,有哪几类使用的角色——也就是说,有哪几类人,是需要有不同的业务菜单和业务数据的。

说到底,角色管理,就是把这个角色对应的人平时工作需要的菜单、功能给划到一个组里。给这一个个的操作组定义不同的名称——即角色名称。

当然,这个角色管理除了规定了该角色的人平时可对哪些功能进行查看操作,还需规定这个角色,能看到哪些范围内的数据。也就是前面提到的,权限实际上包含的是菜单权限和数据权限两部分。

系统内功能控制的颗粒度越细,对使用者来说配置角色便越灵活,但对系统的设计者来说,系统的复杂度自然也会上升,成本也会增加。

因此,到底控制到哪一层级,就要视具体业务场景来定,比如:有些行业的系统,可能控制到一级菜单就可以(某些SAAS工具),但有些系统,不仅需要控制所有的子级菜单,每一个按钮操作,甚至还会需要控制到不同的字段(比如Salesforce的权限控制系统)。

不过,我们抽象出了基本的模型,根据实际业务再去发散,就不是最困难的事了。

至此,我们可以了解到:RBAC模型实际上能解决大部分的权限设计问题了。

那么,ABAC到底是什么呢?它存在的意义在哪里?关于未来的权限设计趋势,它能带给我们什么启发呢?

带着这些问题,我们先来看看到底什么是ABAC模型。

ABAC,Attribute-based Access Control. 基于属性的访问控制。而属性,总的来说有三类:用户属性、系统或应用被访问属性(数据和操作)、环境属性。

也就是说,系统根据一组或多组属性是否满足预设规则来动态的控制,谁可以访问哪些功能数据和操作。RBAC模型,其实可以看成是静态的、单组属性的ABAC模型。

用例子来理解这个模型就是:只有当用户角色为Admin,在工作时间内,且处在C栋大楼B实验室,才可以访问D文件。

实际上,ABAC是个可以以最细颗粒度来管理权限的模型。它可以让设计者,利用任何一个用户属性、环境属性,或者多个属性之间的交集、并集等来组合出动态的权限判断逻辑。

它是这么强大,既可以有效的帮助信息辨别能力差的用户过滤垃圾信息。也可以让商家用到营销广告填满你生活的每个角落却不自知。

但我一直坚信, 科技 绝对是让生活更美好。

权限管理,可能是每个2B产品经理需要面对的问题。但无论C端还是B端的产品,了解权限管理的设计法则,让自己更好的理解产品的架构,让产品的每次迭代都心里有数。

题图来自Unspalsh, 基于CC0协议。