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 and inform the decision to grant or deny access. 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.
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 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 identifier, object type, amount, approval limit. The flow would be as follows: • The user, Alice, calls the API method • 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? • The PDP retrieves the ABAC policy and necessary attributes. • The PDP reaches a decision e.g. Permit or Deny and returns it to the API interceptor • If the decision is Permit, the underlying API
business logic is called. Otherwise the API returns an error or access denied.
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 management systems (CMS) • Enterprise resource planning (ERP) systems • Home-grown applications • Web applications The same process and flow as the one described in the API section applies here too.
Database security 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. An example would be: • Policy: managers can view transactions in their region • Reworked policy in a data-centric way: users with can do the action on if
Data security 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 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
big data, 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.
Big data security 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.
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) 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 ==