Attribute-based access control: Difference between revisions

Content deleted Content added
Megaltoid (talk | contribs)
Added a definition of fine-grained access control
Tag: Reverted
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
 
(3 intermediate revisions by 3 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 |url=https://ieeexplore.ieee.org/document/7042715 |journal=Computer |volume=48 |issue=2 |pages=85–88 |doi=10.1109/MC.2015.33 |bibcode=2015Compr..48b..85H |s2cid=54967881 |issn=1558-0814|url-access=subscription }}</ref> ABAC policy rules are generated as Boolean functions of the subject's attributes, the object's attributes, and the environment attributes.<ref>{{Cite web |title=Guide to Secure Web Services: Recommendations of the National Institute of Standards and Technology |url=https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-95.pdf}}</ref>
 
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.
 
Attribute values can be set-valued or atomic-valued. Set-valued attributes contain more than one atomic value. Examples are ''role'' and ''project''. Atomic-valued attributes contain only one atomic value. Examples are ''clearance'' and ''sensitivity''. Attributes can be compared to static values or to one another, thus enabling relation-based access control.<ref>{{CiteCitation webneeded|lastdate=Mestci|first=Hazal|title=ABAC Patterns: What is Attribute Based Access Control|url=https://www.osohq.com/learn/what-is-attribute-based-access-control-abac?utm_source=ppc&utm_medium=google&utm_campaign=DynamicSearch&utm_content=179698179487&gad_source=1&gad_campaignid=22311018434&gbraid=0AAAAArFMvLU3qD1f16LmkNJJMT2D4xpNm&gclid=Cj0KCQjwm93DBhD_ARIsADR_DjFSKGz2mKg_6BT99YaI0o5V8QoX4F6Wk1uhnsYdcALQbrP_Xww--QwaAlLEEALw_wcB#:~:text=ABAC%20is%20a%20broad%20pattern%20that%20is%20a%20superset%20of%20many%20other%20authorization%20patterns%2C%20like%20role%2Dbased%20access%20control%20(RBAC)%20and%20relationship%2Dbased%20access%20control%20(ReBAC).%20Both%20RBAC%20roles%20and%20ReBAC%20relationships%20can%20be%20thought%20of%20as%20attributes%20of%20the%20actor%20and%20the%20subjectSeptember 2023}}</ref>
 
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.
Line 18:
* Policy-based access control
* Fine-grained authorization
 
Fine-grained authorization refers to authorization logic that incorporates elements of multiple authorization models, providing highly targeted permissions under narrowly defined conditions. Unlike coarse-grained models that provide broad access (such as "administrator" or "user" roles), fine-grained authorization allows different users to have different types of access to the same resource based on multiple factors including roles, relationships, attributes, and environmental context.<ref>{{Cite web|last=Mestci|first=Hazal|title=What is Fine-Grained Authorization?|url=https://www.osohq.com/learn/what-is-fine-grained-authorization?utm_source=ppc&utm_medium=google&utm_campaign=DynamicSearch&utm_content=179698179487&gad_source=1&gad_campaignid=22311018434&gbraid=0AAAAArFMvLU3qD1f16LmkNJJMT2D4xpNm&gclid=Cj0KCQjwm93DBhD_ARIsADR_DjGJfD3mUrgQI4DNGN8DmuJZx7r1ykAK13HXs1UfyKH0zJhi86HvCRoaAiBOEALw_wcB#:~:text=Fine%2Dgrained%20authorization%20refers,roles%2C%20relationships%2C%20attributes%2C%20etc }}</ref> For example, a fine-grained policy might allow a customer service representative to access customer data only during business hours, only for customers in their assigned region, and only when handling an active support ticket.
 
== Components ==
Line 63 ⟶ 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 IDidentifier, object type, amount, approval limit.
 
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 77 ⟶ 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 Managementmanagement Systemssystems (CMS)
# Enterprise resource planning (ERP) systems
# ERPs
# Home-grown Applicationsapplications
# Web Applicationsapplications
 
The same process and flow as the one described in the API section applies here too.
Line 138 ⟶ 136:
* [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]
* [httphttps://profsandhu.com/dissert/Dissertation_Xin_Jin.pdf Attribute Based Access Control Models (ABAC) and Implementation in Cloud Infrastructure as a Service]
 
[[Category:Access control]]