Role-based Access Control vs Attribute-based Access Control: How to Choose

https://www.ekransystem.com/en/blog/rbac-vs-abac

Access control is a fundamental element of the security infrastructure of any company. Every security officer wants to apply the principle of less privilege, zero-trust, segregation of duties, and other best practices without harming the company workflow.

There are several approaches to organizing an access management system. In this article, we analyze the two most popular access control models: role-based and attribute-based. We’ll talk out the pros and cons of each model, compare them, and see if it’s possible to combine them.

What is role-based access control (RBAC)?

Role-based access control (RBAC) is an access control method based on defining employee roles and corresponding privileges within the organization. The idea of this model is that every employee is assigned a role. Every role has a collection of permissions and restrictions. An employee can access objects and execute operations only if their role in the system has the relevant permissions.

For example, a company’s accountant should be allowed to work with financial information but shouldn’t have access to client contact information or credit card data.

A user might be assigned to one or several roles. When a new employee comes to your company, it’s easy to assign a role to them. And when someone leaves the company, you don’t need to change the role parameters or a central policy.

Let’s consider the main components of the role-based approach to access control:

  • User – an individual (with UID) with access to a system
  • Role – a named job function (indicates the level of authority)
  • Permission – equivalent to access rights
  • Session – a mapping between a user and a set of roles to which the user is assigned in the context of a working time
  • Object – a system resource that requires permission to access
  • Operation – any action in the protected network

The basic rules of RBAC are:

  • A user can execute an operation only if there is a role assigned to the subject.
  • Identification and authentication are not considered operations.
  • All user activities are carried out through operations.

RBAC can be implemented on four levels, according to the NIST RBAC model. Each subsequent level includes the properties of the previous. Let’s take a look at them:

1. Flat RBAC is an implementation of the basic functionality of the RBAC model. All users and permissions are assigned roles. Users obtain the permissions they need by acquiring these roles. There may be as many roles and permissions as the company needs. A single user can be assigned to multiple roles, and one role can be assigned to multiple users.

2. Hierarchical RBAC, as the name suggests, implements a hierarchy within the role structure. This hierarchy establishes the relationships between roles. Users with senior roles acquire permissions of all junior roles, which are assigned to their subordinates. The complexity of the hierarchy is defined by the needs of the company.

3. Constrained RBAC adds a separation of duties (SOD) to a security system. SOD is a well-known security practice when a single duty is spread among several employees. It’s quite important for medium-sized businesses and large enterprises. Separation of duties guarantees that no work can introduce fraudulent changes to your system that no one else can audit and/or fix.

4. Symmetric RBAC supports permission-role review as well as user-role review. It allows identification of the permissions assigned to existing roles (and vice versa). For example, by identifying permissions of a terminated employee, the administrator can revoke the employee’s permissions and then reassign the role to another user with the same or a different set of permissions.

Defining a role can be quite a challenge. You have to consider all the permissions a user needs to perform their duties and the position of this role in your hierarchy. If you assign too many permissions to a role, it will break the least privilege principle and may lead to privilege misuse.

Role-based access control is most commonly implemented in small and medium-sized enterprises. Such organizations typically have simple workflows, a limited number of roles, and a pretty simple hierarchy, making it possible to effectively determine and describe user roles.

Once all the necessary roles are set up, this model doesn’t require a lot of maintenance and support from the IT department. Implementing RBAC can help you meet IT security requirements without much pain. On the other hand, creating a complex role system for a large enterprise may be challenging. The organization with thousands of employees can end up with a few thousand roles. This is known as role explosion, and it’s unavoidable for a big company.

What is attribute-based access control (ABAC)?

Attribute-based access control is a model that evolved from RBAC. This model is based on establishing a set of attributes for any element of your system. A central policy defines which combinations of user and object attributes are required to perform any action.

Let’s consider the main components of the ABAC model according to NIST:

  • Attribute – a characteristic of any element in the network. An attribute can define:
    • User characteristics – employee position, department, IP address, clearance level, etc.
    • Object characteristics – type, creator, sensitivity, required clearance level, etc.
    • Type of action – read, write, edit, copy, paste, etc.
    • Environment characteristics – time, day of the week, location, etc.
  • Subject – any user or resource that can perform actions in the network; a subject is assigned attributes in order to define its clearance level
  • Object – any data stored in the network; objects are assigned attributes in order to describe and identify them
  • Operation – any action taken by any subject in the network
  • Policy – a set of rules allowing or restricting any action in your information retrieval system; rules are “IF/THEN” statements based on attributes of any element (user, resource, environment)

Unlike in RBAC, in ABAC you can even use attributes that aren’t yet registered in the system but will appear during the work process.

This approach is suitable for a company of any size but is mostly used for large organizations. ABAC requires more time and effort than RBAC at the deployment and configuration stage, as security administrators need to define all attributes of the system. At first, you need to assign attributes to each system component manually.

But once you’ve created policies for most common job positions and resources in your company, you can simply copy them for every new user and resource. This is similar to how a role works in the RBAC model, but in the ABAC model, attributes can be modified for the needs of a particular user without creating a new role. Attributes make ABAC a more fine-grained access control model than RBAC.

RBAC vs ABAC

Let’s compare these two popular approaches — role-based access control vs attribute-based access control — to determine the pros and cons of each.

RBAC pros and cons

RBAC is the most popular approach to restricting access. The main advantage of this model is that companies no longer need to authorize or revoke access on an individual basis, bringing users together based on their roles instead. Establishing a set of roles in a small or medium-sized company isn’t challenging. On the other hand, setting up such a system at a large enterprise is no easy task.

There are several limitations to the RBAC model. You can’t set up a rule using parameters that are unknown to the system before a user starts working. Permissions can be assigned only to user roles, not to objects and operations. Also, using RBAC, you can restrict access to certain actions in your system but not to certain data.

ABAC pros and cons

The key benefit of ABAC is that it grants access based not on the user role but on the attributes of each system component. This way, you can describe a business rule of any complexity. Even if you need to make certain data only accessible during work hours, it can be easily done with one simple policy. On top of that, ABAC rules can evaluate attributes of subjects and resources that are yet to be inventoried by the authorization system.

As for ABAC limitations, this type of system is hard to configure due to the way policies must be specified and maintained. It’s difficult to perform a before the fact audit and determine the permissions available to a specific user. It could be impossible to determine risk exposure for any given employee position.

Gartner predicts that 70% of all organizations will use ABAC by 2020

To sum up, let’s compare the key characteristics of RBAC vs ABAC:

Characteristic RBAC ABAC
Flexibility

(For small and medium-sized organizations)

Scalability
Simplicity Easy to establish roles and permissions for a small company, hard to maintain the system for a big company Hard to establish all the policies at the start, easy to maintain and support
Support for simple rules
Support for complex rules
Support for rules with dynamic parameters
Customizing user permissions

(Every customization requires creating a new role)

Granularity Low High

Combining RBAC and ABAC

Companies often start with implementing a flat RBAC. This model is easier to set up and maintain. As organizations grow and manage more sensitive data, they realize the need for a more complex access control system. RBAC and ABAC can be used together, with RBAC doing the rough work and ABAC complementing it with finer filtering.

This access model is also known as RBAC-A. There are three RBAC-A approaches that handle relationships between roles and attributes:

  • Attribute-centric. A role becomes the name of one of the user attributes. It resembles a job title. The “role” attribute in such a model is used to mark a set of attributes required for a certain position.
  • Role-centric. Attributes are added to constrain roles. In such a model, attributes can reduce permissions available to a user. This approach strengthens the security of your data.
  • Dynamic roles. Attributes such as time of day are used to determine the subject’s role. In some cases, a user’s role can be fully determined by dynamic attributes.

In addition, there’s a new method called next generation access control (NGAC) that’s currently being developed by NIST. Its based on ABAC but implements a more refined approach to policies. For example, NGAC supports several types of policies simultaneously, including ones that are applied both in the local environment and in the network.

Conclusion

Access management is an essential component of any reliable security system. Whether you choose role-based or attribute-based access control, you’ll need a robust instrument to authenticate and identify your users.

Erkan System offers identity management (two-factor authentication, secondary authentication, etc.) and access management (PASM, one-time credentials, etc.) functionality that works on a wide range of platforms and supports virtually any network architecture. Thanks to its flexible licensing scheme, Ekran System is suitable for both small businesses and large enterprises.

原文地址:https://www.cnblogs.com/dhcn/p/12299334.html

时间: 2024-10-10 15:53:15

Role-based Access Control vs Attribute-based Access Control: How to Choose的相关文章

Method and system for implementing mandatory file access control in native discretionary access control environments

A method is provided for implementing a mandatory access control model in operating systems which natively use a discretionary access control scheme. A method for implementing mandatory access control in a system comprising a plurality of computers,

Linux VFS Extended Attribute And Access Control Table

catalog 0. 简介 1. 扩展属性 2. 访问控制表 3. 小结 0. 简介 许多文件系统都提供了一些特性,扩展了VFS层提供的标准功能,虚拟文件系统不可能为所有特性都提供具体的数据结构.超出标准的UNIX文件模型的附加特性,通常需要将一个组扩展属性关联到每个文件系统对象Linux内核能够提供的是一个框架,容许增加特定于文件系统的扩展,扩展属性(extended attribute xattrs)是能够关联到文件的任意属性,由于每个文件通常都只关联了所有可能扩展属性的一个子集,扩展属性存

vpn找不到设备,win7建立新的VPN总时显示错误711,无法启动 Remote Access Connection Manager 及 Remote Access Auto Connection Manager 错误1068

试试相关服务!一.remote access connection manager是网络连接的服务,它依赖于Technology服务,现在你的这个服务已经启动,而Secure Socket Tunnel是基于ipsec的,以下几个service必须在运行:Base Filtering EngineIKE and Authip IPsec Keying ModuleIPsec Policy Agent楼主看看这些服务启动没有,然后再这样试试:开始菜单-运行-regedt32,打开注册表定位到“HK

csharp: Procedure with DAO(Data Access Object) and DAL(Data Access Layer)

sql script code: CREATE TABLE DuCardType ( CardTypeId INT IDENTITY(1,1) PRIMARY KEY, CardTypeName NVARCHAR(100) NOT NULL, --卡类名称 CardTypeColor NVARCHAR(50) NOT NULL --卡颜色(或样本) ) GO IF EXISTS (SELECT * FROM sysobjects WHERE [name] = 'proc_Insert_DuCar

【Visual Studio】The project appears to be under source control, but the associated source control plug-in is not installed on this computer

[问题描述]用 Visual Studio 2013打开一个项目时,出现下面错误: [问题原因]参考 http://codeverge.com/asp.net.web-forms/the-project-appears-to-be-under-source-cont/434113 出现上面错误的原因是,项目使用了 VSS 或 TFS 或 SVN 等版本控制工具,而本机没有安装对应的工具. 如果使用了 VSS 或 TFS,那么工程所在的文件夹下会有 .vssscc 文件: 如果使用了SVN,那么工

新建文件,svn, foldname is not under version control / is already under version control错误

我新建了一个server文件,各种提交不上去,这两个错误交错出现. 查了网上的解决方法,说是文件下有.svn文件.但是我是新建的呀. 后来猜测是之前有这么个文件,他们拷贝工程的时候单独把这个文件遗漏了. 一问同事才知道,有这个文件,但是没给我们权限,所以我们工程没有. 我...,浪费我半天时间. 用svn的工程,要拷贝还是拷贝全了. 原文地址:https://www.cnblogs.com/kuluodisi/p/12587839.html

.Net 三款工作流引擎比较:WWF、netBPM 和 ccflow

原文:.Net 三款工作流引擎比较:WWF.netBPM 和 ccflow 下面将对目前比较主流的三款工作流进行介绍和比较,然后通过三款流程引擎分别设计一个较典型的流程来给大家分别演示这三款创建流程的过程.这三款工作流程引擎分别是 Windows Workflow Foundation,NetBPM, CCFlow. NetBPM 与 CCFlow 是两款国内知名的开源软件,尤其是ccflow在国内的发展势头强劲. 这个典型的流程假设:公司有两级领导,一级为主管Chief,一级为老板Boss 场

三款工作流引擎比较:WWF、netBPM 和 ccflow

下面将对目前比较主流的三款工作流进行介绍和比较,然后通过三款流程引擎分别设计一个较典型的流程来给大家分别演示这三款创建流程的过程.这三款工作流程引擎分别是 Windows Workflow Foundation,NetBPM, CCFlow. NetBPM 与 CCFlow 是两款国内知名的开源软件,尤其是ccflow在国内的发展势头强劲. 这个典型的流程假设:公司有两级领导,一级为主管Chief,一级为老板Boss 场景描述: 在某公司中,部门员工休假需要主管Chief的批准.   如果休假天

python操作MongoDB部分翻译

python操作MongoDB http://api.mongodb.org/python/current/index.html This tutorial is intended as an introduction to working with MongoDB and PyMongo . Prerequisites[前提条件] Before we start, make sure that you have the PyMongo distribution installed . In t

[认证授权] 6.Permission Based Access Control

在前面5篇博客中介绍了OAuth2和OIDC(OpenId Connect),其作用是授权和认证.那么当我们得到OAuth2的Access Token或者OIDC的Id Token之后,我们的资源服务如何来验证这些token是否有权限来执行对资源的某一项操作呢?比如我有一个API,/books,它具有如下5个操作: POST /books 添加一本书 GET /books/{id} 获取一本书 PUT /books/{id} 更新一本书 DELETE /books/{id} 删除一本书 GET