Attribute-based access control

This is an old revision of this page, as edited by Snelson211 (talk | contribs) at 13:44, 7 July 2015. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Attribute-based access control (ABAC) defines an access control paradigm whereby access rights are granted to users through the use of policies which combine attributes together. The policies can use any type of attributes (user attributes, resource attributes, environment attribute etc.). Attribute values can be set-valued or atomic-valued. Set-valued attributes contain more than one atomic values. Examples are role, project. Atomic-valued attributes contains only one atomic value. Examples are clearance, sensitivity. Attributes can be compared to static values or to one another thus enabling relation-based access control.

Other models

Historically, access control models have included mandatory access control (MAC), discretionary access control (DAC), and more recently role-based access control (RBAC). These access control models are user-centric and do not take into account additional parameters such as resource information, relationship between the user (the requesting entity) and the resource, and dynamic information e.g. time of the day or user IP. ABAC tries to address this by defining access control based on attributes which describe the requesting entity (the user), the targeted object or resource, the desired action (view, edit, delete...), and environmental or contextual information. This is why access control is said to be attribute-based.

Implementations

One standard that implements attribute- and policy-based access control is XACML, the eXtensible Access Control Markup Language. However, XACML only focuses on authorization policy specification. It does not solve attribute management (user attribute assignment, object attribute assignment, environment attribute assignment).