Knowledge

Attribute-based access control

Source 📝

45:, 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. 249:, 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 408:
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) and Security Descriptor Definition Language (SDDL). SDDL can be seen as an ABAC language as it uses metadata of the user (claims) and
387:
Data security typically goes one step further than database security and applies control directly to the data element. This is often referred to as data-centric security. On traditional relational databases, ABAC policies can control access to data at the table, column, field, cell and sub-cell using
67:
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
265:
The concept of ABAC can be applied at any level of the technology stack and an enterprise infrastructure. For example, ABAC can be used at the firewall, server, application, database, and data layer. The use of attributes bring additional context to evaluate the legitimacy of any request for access
256:
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
211:
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.
37:
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
173:
Policies are statements that bring together attributes to express what can happen and is not allowed. Policies in ABAC can be granting or denying policies. Policies can also be local or global and can be written in a way that they override other policies. Examples include:
278:
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 approveTransaction(transId) method. ABAC can be used to secure the call. With ABAC, a policy author can write the following:
327:
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:
208:(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. 834: 138:
The PDP or Policy Decision Point is the brain of the architecture. This is the piece which evaluates incoming requests against policies it has been configured with. The PDP returns a Permit/ Deny decision. The PDP may also use PIPs to retrieve missing
388:
logical controls with filtering conditions and masking based on attributes. Attributes can be data, user, session or tools based to deliver the greatest level of flexibility in dynamically granting/denying access to a specific data element. On
34:, 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. 269:
An important consideration when evaluating ABAC solutions is to understand its potential overhead on performance and its impact on the user experience. It is expected that the more granular the controls, the higher the overhead.
38:
capabilities of the computational language and the availability of relevant attributes. ABAC policy rules are generated as Boolean functions of the subject's attributes, the object's attributes, and the environment attributes.
838: 134:
The PEP or Policy Enforcement Point: it is responsible for protecting the apps & data you want to apply ABAC to. The PEP inspects the request and generates an authorization request from which it sends to the
161:
Object attributes: attributes that describe the object (or resource) being accessed e.g. the object type (medical record, bank account), the department, the classification or sensitivity, the location
68:
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.
400:
Attribute-based access control can also be applied to Big Data systems like Hadoop. Policies similar to those used previously can be applied when retrieving data from data lakes.
353:
Security for databases has long been specific to the database vendors: Oracle VPD, IBM FGAC, and Microsoft RLS are all means to achieve fine-grained ABAC-like security.
795: 392:, and distributed file systems such as Hadoop, ABAC applied at the data layer control access to folder, sub-folder, file, sub-file and other granular. 235: 852: 820: 889: 239: 752: 701: 229: 164:
Contextual (environment) attributes: attributes that deal with time, location or dynamic aspects of the access control scenario
517: 318:
If the decision is Permit, the underlying API business logic is called. Otherwise the API returns an error or access denied.
306:
An interceptor in the API calls out to the authorization engine (typically called a Policy Decision Point or PDP) and asks:
155:
Subject attributes: attributes that describe the user attempting the access e.g. age, clearance, department, role, job title
48:
Attribute values can be set-valued or atomic-valued. Set-valued attributes contain more than one atomic value. Examples are
869: 532: 471: 459: 664:"ACROSS: A generic framework for attribute-based access control with distributed policies for virtual organizations" 914: 725: 894: 645: 64:. Attributes can be compared to static values or to one another, thus enabling relation-based access control. 188:
With ABAC you can have as many policies as you like that cater to many different scenarios and technologies.
142:
The PIP or Policy Information Point bridges the PDP to external sources of attributes e.g. LDAP or databases.
224: 447: 435: 424: 201: 770: 547: 512: 502: 441: 158:
Action attributes: attributes that describe the action being attempted e.g. read, delete, view, approve
663: 646:"Guide to Secure Web Services: Recommendations of the National Institute of Standards and Technology" 487: 482: 465: 205: 885:
Attribute Based Access Control Models (ABAC) and Implementation in Cloud Infrastructure as a Service
662:
Silva, Edelberto Franco; Muchaluat-Saade, Débora Christina; Fernandes, Natalia Castro (2018-01-01).
453: 197: 879: 909: 574: 537: 492: 430: 151:
Attributes can be about anything and anyone. They tend to fall into 4 different categories:
8: 884: 507: 419: 250: 31: 627: 497: 890:
ABAC not RBAC: Welcome to the (IoT) World of Contextual Security, 2015, Lori MacVittie
598:
Hu, Vincent C.; Kuhn, D. Richard; Ferraiolo, David F.; Voas, Jeffrey (February 2015).
683: 619: 181:
A user can edit a document if they are the owner and if the document is in draft mode
631: 345:
The same process and flow as the one described in the API section applies here too.
315:
The PDP reaches a decision e.g. Permit or Deny and returns it to the API interceptor
675: 611: 679: 87:), which is a Microsoft-specific term. The key standards that implement ABAC are 178:
A user can view a document if the document is in the same department as the user
599: 542: 880:
Unified Attribute Based Access Control Model (ABAC) covering DAC, MAC and RBAC
903: 687: 623: 573:
Computer Security Division, Information Technology Laboratory (2016-05-24).
92: 895:
Market Compass: Dynamic Authorization Management, 2020, Graham Williamson
615: 56:. Atomic-valued attributes contain only one atomic value. Examples are 874: 389: 853:"Dynamic Access Control Overview (Windows 10) - Windows security" 796:"Encryption on Steroids – Attribute Based Access Control (ABAC)" 130:
ABAC comes with a recommended architecture which is as follows:
702:"Technology Overview for Externalized Authorization Management" 527: 98: 726:"Leadership Compass: Dynamic Authorization Management - 71144" 286:: managers can approve transactions up to their approval limit 661: 552: 522: 477: 300:
The user, Alice, calls the API method approveTransaction(123)
246: 88: 312:
The PDP retrieves the ABAC policy and necessary attributes.
71:
Attribute-based access control is sometimes referred to as
42: 572: 292:: role, action ID, object type, amount, approval limit. 821:"Dynamic, Fine-Grained Authorization Secures Big Data" 753:"Alternatives for Roles/Claims Access Control Systems" 360:
Policy: managers can view transactions in their region
303:
The API receives the call and authenticates the user.
747: 745: 597: 835:"First Fine-grained Data Access Control On Hadoop" 363:Reworked policy in a data-centric way: users with 196:Historically, access control models have included 273: 266:and inform the decision to grant or deny access. 901: 875:ATTRIBUTE BASED ACCESS CONTROL (ABAC) - OVERVIEW 771:"What Is Attribute-Based Access Control (ABAC)?" 742: 575:"Attribute Based Access Control | CSRC | CSRC" 220:There are three main implementations of ABAC: 230:Abbreviated Language for Authorization (ALFA) 99:Dimensions of attribute-based access control 870:What is Attribute-Based Access Control? 409:of the file/ folder to control access. 403: 322: 902: 518:Lightweight Directory Access Protocol 478:Rule-set-based access control (RSBAC) 107:Externalized authorization management 395: 348: 257:governmental and military agencies. 793: 253:tools, databases, and directories. 13: 668:Future Generation Computer Systems 533:Security Assertion Markup Language 308:Can Alice approve transaction 123? 215: 14: 926: 863: 472:Relationship-based access control 460:Organisation-based access control 377:user.region == transaction.region 600:"Attribute-Based Access Control" 382: 110:Dynamic authorization management 43:role-based access control (RBAC) 845: 827: 813: 260: 191: 125: 787: 763: 718: 694: 655: 638: 591: 566: 296:The flow would be as follows: 274:API and microservices security 240:Next-generation Access Control 20:Attribute-based access control 1: 559: 146: 120: 680:10.1016/j.future.2017.07.049 448:Lattice-based access control 436:Discretionary access control 425:Context-based access control 202:discretionary access control 7: 412: 168: 113:Policy-based access control 81:claims-based access control 73:policy-based access control 28:policy-based access control 10: 931: 548:User provisioning software 513:Identity management system 503:Identity driven networking 442:Graph-based access control 332:Content Management Systems 116:Fine-grained authorization 488:Risk-based authentication 483:Capability-based security 466:Role-based access control 376: 372: 368: 364: 206:role-based access control 204:(DAC), and more recently 454:Mandatory access control 198:mandatory access control 915:Computer access control 338:Home-grown Applications 184:Deny access before 9 AM 16:Access control paradigm 538:Security token service 493:Classified information 431:Data-centric security 373:table == TRANSACTIONS 356:An example would be: 103:ABAC can be seen as: 404:File server security 323:Application security 508:Identity management 420:Access control list 616:10.1109/MC.2015.33 498:Federated identity 367:can do the action 757:stackoverflow.com 396:Big data security 349:Database security 26:), also known as 922: 857: 856: 849: 843: 842: 837:. Archived from 831: 825: 824: 817: 811: 810: 808: 806: 791: 785: 784: 782: 781: 767: 761: 760: 749: 740: 739: 737: 736: 722: 716: 715: 713: 712: 698: 692: 691: 659: 653: 652: 650: 642: 636: 635: 595: 589: 588: 586: 585: 570: 378: 374: 370: 366: 341:Web Applications 930: 929: 925: 924: 923: 921: 920: 919: 900: 899: 866: 861: 860: 851: 850: 846: 833: 832: 828: 819: 818: 814: 804: 802: 792: 788: 779: 777: 769: 768: 764: 751: 750: 743: 734: 732: 724: 723: 719: 710: 708: 706:www.gartner.com 700: 699: 695: 660: 656: 648: 644: 643: 639: 596: 592: 583: 581: 571: 567: 562: 557: 415: 406: 398: 385: 365:role == manager 351: 325: 290:Attributes used 276: 263: 218: 216:Implementations 194: 171: 149: 128: 123: 101: 17: 12: 11: 5: 928: 918: 917: 912: 910:Access control 898: 897: 892: 887: 882: 877: 872: 865: 864:External links 862: 859: 858: 844: 841:on 2016-03-23. 826: 812: 794:Sanford, Jim. 786: 762: 741: 717: 693: 654: 637: 590: 564: 563: 561: 558: 556: 555: 550: 545: 543:Single sign-on 540: 535: 530: 525: 520: 515: 510: 505: 500: 495: 490: 485: 480: 475: 469: 463: 457: 451: 445: 439: 433: 428: 422: 416: 414: 411: 405: 402: 397: 394: 384: 381: 380: 379: 361: 350: 347: 343: 342: 339: 336: 333: 324: 321: 320: 319: 316: 313: 310: 304: 301: 294: 293: 287: 275: 272: 262: 259: 244: 243: 233: 227: 217: 214: 193: 190: 186: 185: 182: 179: 170: 167: 166: 165: 162: 159: 156: 148: 145: 144: 143: 140: 136: 127: 124: 122: 119: 118: 117: 114: 111: 108: 100: 97: 15: 9: 6: 4: 3: 2: 927: 916: 913: 911: 908: 907: 905: 896: 893: 891: 888: 886: 883: 881: 878: 876: 873: 871: 868: 867: 854: 848: 840: 836: 830: 822: 816: 801: 797: 790: 776: 772: 766: 758: 754: 748: 746: 731: 730:KuppingerCole 727: 721: 707: 703: 697: 689: 685: 681: 677: 673: 669: 665: 658: 647: 641: 633: 629: 625: 621: 617: 613: 609: 605: 601: 594: 580: 576: 569: 565: 554: 551: 549: 546: 544: 541: 539: 536: 534: 531: 529: 526: 524: 521: 519: 516: 514: 511: 509: 506: 504: 501: 499: 496: 494: 491: 489: 486: 484: 481: 479: 476: 473: 470: 467: 464: 461: 458: 455: 452: 449: 446: 443: 440: 437: 434: 432: 429: 426: 423: 421: 418: 417: 410: 401: 393: 391: 383:Data security 362: 359: 358: 357: 354: 346: 340: 337: 334: 331: 330: 329: 317: 314: 311: 309: 305: 302: 299: 298: 297: 291: 288: 285: 282: 281: 280: 271: 267: 258: 254: 252: 248: 241: 237: 234: 231: 228: 226: 223: 222: 221: 213: 209: 207: 203: 199: 189: 183: 180: 177: 176: 175: 163: 160: 157: 154: 153: 152: 141: 137: 133: 132: 131: 115: 112: 109: 106: 105: 104: 96: 94: 90: 86: 82: 78: 74: 69: 65: 63: 59: 55: 51: 46: 44: 39: 35: 33: 29: 25: 21: 847: 839:the original 829: 815: 803:. Retrieved 799: 789: 778:. Retrieved 775:www.okta.com 774: 765: 756: 733:. Retrieved 729: 720: 709:. Retrieved 705: 696: 671: 667: 657: 640: 610:(2): 85–88. 607: 603: 593: 582:. Retrieved 578: 568: 407: 399: 386: 355: 352: 344: 326: 307: 295: 289: 283: 277: 268: 264: 261:Applications 255: 245: 219: 210: 195: 192:Other models 187: 172: 150: 129: 126:Architecture 102: 93:ALFA (XACML) 84: 80: 76: 72: 70: 66: 61: 57: 53: 49: 47: 40: 36: 27: 23: 19: 18: 579:CSRC | NIST 225:OASIS XACML 62:sensitivity 904:Categories 805:13 October 780:2023-09-13 735:2020-07-14 711:2017-05-31 584:2021-11-25 560:References 147:Attributes 121:Components 688:0167-739X 624:1558-0814 58:clearance 674:: 1–17. 632:54967881 604:Computer 413:See also 390:big data 169:Policies 139:metadata 800:Siemens 474:(ReBAC) 462:(OrBAC) 200:(MAC), 54:project 41:Unlike 686:  630:  622:  528:PERMIS 468:(RBAC) 450:(LBAC) 444:(GBAC) 427:(CBAC) 369:SELECT 284:Policy 242:(NGAC) 649:(PDF) 628:S2CID 553:XACML 523:OAuth 456:(MAC) 438:(DAC) 247:XACML 89:XACML 79:) or 807:2023 684:ISSN 620:ISSN 335:ERPs 236:NIST 135:PDP. 91:and 85:CBAC 77:PBAC 60:and 52:and 50:role 30:for 24:ABAC 676:doi 612:doi 375:if 371:on 251:IAM 238:'s 32:IAM 906:: 798:. 773:. 755:. 744:^ 728:. 704:. 682:. 672:78 670:. 666:. 626:. 618:. 608:48 606:. 602:. 577:. 95:. 855:. 823:. 809:. 783:. 759:. 738:. 714:. 690:. 678:: 651:. 634:. 614:: 587:. 232:. 83:( 75:( 22:(

Index

IAM
role-based access control (RBAC)
XACML
ALFA (XACML)
mandatory access control
discretionary access control
role-based access control
OASIS XACML
Abbreviated Language for Authorization (ALFA)
NIST
Next-generation Access Control
XACML
IAM
big data
Access control list
Context-based access control
Data-centric security
Discretionary access control
Graph-based access control
Lattice-based access control
Mandatory access control
Organisation-based access control
Role-based access control
Relationship-based access control
Rule-set-based access control (RSBAC)
Capability-based security
Risk-based authentication
Classified information
Federated identity
Identity driven networking

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.