This article'slead sectionmay be too short to adequatelysummarize the key points. Please consider expanding the lead toprovide an accessible overview of all important aspects of the article.(May 2012) |
In computer systems security,role-based access control (RBAC)[1][2] orrole-based security[3] is an approach to restricting system access to authorized users, and to implementingmandatory access control (MAC) ordiscretionary access control (DAC).
Role-based access control is a policy-neutral access control mechanism defined around roles and privileges. The components of RBAC such as role-permissions, user-role and role-role relationships make it simple to perform user assignments. A study by NIST has demonstrated that RBAC addresses many needs of commercial and government organizations.[4] RBAC can be used to facilitate administration of security in large organizations with hundreds of users and thousands of permissions. Although RBAC is different from MAC and DAC access control frameworks, it can enforce these policies without any complication.
Within an organization,roles are created for various job functions. The permissions to perform certain operations are assigned to specific roles. Since users are not assigned permissions directly, but only acquire them through their role (or roles), management of individual user rights becomes a matter of simply assigning appropriate roles to the user's account; this simplifies common operations, such as adding a user, or changing a user's department.
Three primary rules are defined for RBAC:
Additional constraints may be applied as well, and roles can be combined in ahierarchy where higher-level roles subsume permissions owned by sub-roles.
With the concepts of role hierarchy and constraints, one can control RBAC to create or simulatelattice-based access control (LBAC). Thus RBAC can be considered to be a superset of LBAC.
When defining an RBAC model, the following conventions are useful:
A constraint places a restrictive rule on the potential inheritance of permissions from opposing roles. Thus it can be used to achieve appropriateseparation of duties. For example, the same person should not be allowed to both create a login account and to authorize the account creation.
Thus, usingset theory notation:
A subject may havemultiple simultaneous sessions with/in different roles.

The NIST/ANSI/INCITS RBAC standard (2004) recognizes three levels of RBAC:[5]
RBAC is a flexible access control technology whose flexibility allows it to implementDAC[6] orMAC.[7] DAC with groups (e.g., as implemented in POSIX file systems) can emulate RBAC.[8] MAC can simulate RBAC if the role graph is restricted to a tree rather than apartially ordered set.[9]
Prior to the development of RBAC, theBell-LaPadula (BLP) model was synonymous with MAC andfile system permissions were synonymous with DAC. These were considered to be the only known models for access control: if a model was not BLP, it was considered to be a DAC model, and vice versa. Research in the late 1990s demonstrated that RBAC falls in neither category.[10][11] Unlikecontext-based access control (CBAC), RBAC does not look at the message context (such as a connection's source). RBAC has also been criticized for leading to role explosion,[12] a problem in large enterprise systems which require access control of finer granularity than what RBAC can provide as roles are inherently assigned to operations and data types. In resemblance to CBAC, an Entity-Relationship Based Access Control system is able to secure instances of data by considering their association to the executing subject.[13]
Access control lists (ACLs) are used in traditional discretionary access-control (DAC) systems to affect low-level data-objects. RBAC differs from ACL in assigning permissions to operations which change the direct-relations between several entities (see:ACLg below). For example, an ACL could be used for granting or denying write access to a particular system file, but it wouldn't dictate how that file could be changed. In an RBAC-based system, an operation might be to 'create a credit account' transaction in a financial application or to 'populate a blood sugar level test' record in a medical application. A Role is thus a sequence of operations within a larger activity. RBAC has been shown to be particularly well suited to separation of duties (SoD) requirements, which ensure that two or more people must be involved in authorizing critical operations. Necessary and sufficient conditions for safety of SoD in RBAC have been analyzed. An underlying principle of SoD is that no individual should be able to effect a breach of security through dual privilege. By extension, no person may hold a role that exercises audit, control or review authority over another, concurrently held role.[14][15]
Then again, a "minimal RBAC Model",RBACm, can be compared with an ACL mechanism,ACLg, where only groups are permitted as entries in the ACL. Barkley (1997)[16] showed thatRBACm andACLg are equivalent.
For data interchange, and for "high level comparisons", ACL data can be translated toXACML.
Attribute-based access control orABAC is a model which evolves from RBAC to consider additional attributes in addition to roles and groups. In ABAC, it is possible to use attributes of:
ABAC is policy-based in the sense that it uses policies rather than static permissions to define what is allowed or what is not allowed.
Relationship-based access control orReBAC is a model which evolves from RBAC. In ReBAC, a subject's permission to access a resource is defined by the presence of relationships between those subjects and resources.
The advantage of this model is that allows for fine-grained permissions; for example, in asocial network where users can share posts with other specific users.[17]
The use of RBAC to manage user privileges (computer permissions) within a single system or application is widely accepted as abest practice. A 2010 report prepared forNIST by theResearch Triangle Institute analyzed the economic value of RBAC for enterprises, and estimated benefits per employee from reduced employee downtime, more efficient provisioning, and more efficient access control policy administration.[18]
In an organization with a heterogeneousIT infrastructure and requirements that span dozens or hundreds of systems and applications, using RBAC to manage sufficient roles and assign adequate role memberships becomes extremely complex without hierarchical creation of roles and privilege assignments.[19] Newer systems extend the older NIST RBAC model[20] to address the limitations of RBAC for enterprise-wide deployments. The NIST model was adopted as a standard byINCITS as ANSI/INCITS 359-2004. A discussion of some of the design choices for the NIST model has also been published.[21]
Role based access control interference is a relatively new issue in security applications, where multiple user accounts with dynamic access levels may lead to encryption key instability, allowing an outside user to exploit the weakness for unauthorized access. Key sharing applications within dynamic virtualized environments have shown some success in addressing this problem.[22]
{{cite journal}}: CS1 maint: multiple names: authors list (link){{cite book}}: CS1 maint: multiple names: authors list (link){{cite journal}}: CS1 maint: multiple names: authors list (link)