Content deleted Content added
some cleanup |
Citation bot (talk | contribs) Added bibcode. Removed URL that duplicated identifier. Removed parameters. | Use this bot. Report bugs. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox | #UCB_webform_linked 199/1032 |
||
(9 intermediate revisions by 6 users not shown) | |||
Line 2:
'''Attribute-based access control''' ('''ABAC'''), also known as '''policy-based access control''' for [[Identity management|IAM]], defines an access control paradigm whereby a subject's authorization to perform a set of operations is determined by evaluating attributes associated with the subject, object, requested operations, and, in some cases, environment attributes.<ref>{{Cite web|last=Computer Security Division|first=Information Technology Laboratory|date=2016-05-24|title=Attribute Based Access Control {{!}} CSRC {{!}} CSRC|url=https://csrc.nist.gov/Projects/Attribute-Based-Access-Control|access-date=2021-11-25|website=CSRC {{!}} NIST|language=EN-US}}</ref>
ABAC is a method of implementing access control policies that is highly adaptable and can be customized using a wide range of attributes, making it suitable for use in distributed or rapidly changing environments. The only limitations on the policies that can be implemented with ABAC are the capabilities of the computational language and the availability of relevant attributes.<ref>{{Cite journal |last1=Hu |first1=Vincent C. |last2=Kuhn |first2=D. Richard |last3=Ferraiolo |first3=David F. |last4=Voas |first4=Jeffrey |date=February 2015 |title=Attribute-Based Access Control
Unlike [[role-based access control]] (RBAC), which defines roles that carry a specific set of privileges associated with them and to which subjects are assigned, ABAC can express complex rule sets that can evaluate many different attributes. Through defining consistent subject and object attributes into security policies, ABAC eliminates the need for explicit authorizations to individuals’ subjects needed in a non-ABAC access method, reducing the complexity of managing access lists and groups.
Line 10:
Although the concept itself existed for many years, ABAC is considered a "next generation" authorization model because it provides dynamic, context-aware and risk-intelligent access control to resources allowing access control policies that include specific attributes from many different information systems to be defined to resolve an authorization and achieve an efficient regulatory compliance, allowing enterprises flexibility in their implementations based on their existing infrastructures.
Attribute-based access control is sometimes referred to as '''policy-based access control''' ('''PBAC''') or '''claims-based access control''' ('''CBAC'''), which is a Microsoft-specific term. The key standards that implement ABAC are [[XACML]] and [[ALFA (XACML)]].<ref>{{Cite journal|last1=Silva|first1=Edelberto Franco|last2=Muchaluat-Saade|first2=Débora Christina|last3=Fernandes|first3=Natalia Castro|date=2018-01-01|title=ACROSS: A generic framework for attribute-based access control with distributed policies for virtual organizations|url=http://www.sciencedirect.com/science/article/pii/S0167739X17316060|journal=Future Generation Computer Systems|language=en|volume=78|pages=1–17|doi=10.1016/j.future.2017.07.049|issn=0167-739X|url-access=subscription}}</ref>
== Dimensions of attribute-based access control ==
ABAC can be seen as:
* Externalized authorization management<ref>{{Cite web|url=https://www.gartner.com/doc/2358815/technology-overview-externalized-authorization-management|title=Technology Overview for Externalized Authorization Management|website=www.gartner.com|access-date=2017-05-31}}</ref>
* Dynamic authorization management<ref>{{Cite web|url=https://plus.kuppingercole.com/article/mc71144/dynamic-authorization-management/|title=Leadership Compass: Dynamic Authorization Management - 71144|website=KuppingerCole|date=14 July 2020 |access-date=2020-07-14}}</ref>
* Policy-based access control
* Fine-grained authorization
Line 43:
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, the 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==
Line 53:
[[XACML]], the eXtensible Access Control Markup Language, defines an architecture (shared with ALFA and NGAC), a policy language, and a request/response scheme. It does not handle attribute management (user attribute assignment, object attribute assignment, environment attribute assignment) which is left to traditional [[Identity management|IAM]] tools, databases, and directories.
Companies, including every branch in the United States military, have started using ABAC. At a basic level, ABAC protects data with 'IF/THEN/AND' rules rather than assign data to users. The US Department of Commerce has made this a mandatory practice and the adoption is spreading throughout several governmental and military agencies.<ref>{{cite web |last1=Sanford |first1=Jim |title=Encryption on Steroids – Attribute Based Access Control (ABAC) |url=https://blogs.sw.siemens.com/thought-leadership/2019/03/28/attribute-based-access-control-abac-encryption-on-steroids/ |website=Siemens |date=28 March 2019 |access-date=13 October 2023}}</ref>
== Applications ==
Line 61:
=== API and microservices security ===
ABAC can be used to apply attribute-based, fine-grained authorization to the API methods or functions. For instance, a banking API may expose an {{Code|approveTransaction(transId)}} method. ABAC can be used to secure the call. With ABAC, a policy author can write the following:
* '''Policy''': managers can approve transactions up to their approval limit
* '''Attributes used''': role, action
The flow would be as follows:
# The user, Alice, calls the API method {{Code|approveTransaction(123)}}
# The API receives the call and authenticates the user.
# An interceptor in the API calls out to the authorization engine (typically called a Policy Decision Point or PDP) and asks: ''Can Alice approve transaction 123?''
Line 75:
=== Application security ===
One of the key benefits to ABAC is that the authorization policies and attributes can be defined in a technology neutral way. This means policies defined for APIs or databases can be reused in the application space. Common applications that can benefit from ABAC are:
# Content
# Enterprise resource planning (ERP) systems
# Home-grown
# Web
The same process and flow as the one described in the API section applies here too.
Line 98:
=== File server security ===
As of Windows Server 2012, Microsoft has implemented an ABAC approach to controlling access to files and folders. This is achieved through dynamic access control (DAC)<ref>{{Cite web|url=https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/dynamic-access-control|title = Dynamic Access Control Overview (Windows 10) - Windows security| date=13 February 2024 }}</ref> and Security Descriptor Definition Language (SDDL). SDDL can be seen as an ABAC language as it uses metadata of the user (claims) and of the file/ folder to control access.
== See also ==
Line 134:
== External links ==
* [http://csrc.nist.gov/projects/abac/ ATTRIBUTE BASED ACCESS CONTROL (ABAC) - OVERVIEW]
* [https://link.springer.com/chapter/10.1007%2F978-3-642-31540-4_4 Unified Attribute Based Access Control Model (ABAC) covering DAC, MAC and RBAC]
* [
[[Category:Access control]]
|