Most projects tend to fall foul of the main RBAC confusions: What is the role supposed to represent? A user? A job function? A set of entitlements? In some cases the role will represent all of these things, but to different people.
One of the common scenarios we have seen during our deployments, tends to be the concept of role explosion. The rapid increase in the number of entitlement carrying roles that attempts to match every possible access scenario within the organization. In addition every department, area or even user adds to the concept of role exceptions where new and unique roles need to be created to match a particularly different set of entitlements or scenarios.
(Rock and) Role Explosion??
A lot of the underlying confusion manifests itself from the idea of access context. Babak Sadighi from Axiomatics describes this concept as "..not always about who? and what? but also when? where? and why?.." access permissions are required and used. His argument is to focus on 'privilege giving attributes' or Attribute Based Access Control (ABAC), with each of these attributes covering non-application specific characteristics such as environmental or resource based.
This allows Fine Grained Authorisation (FGA) to be done based on a users characteristics, their intent, the time of execution and also against the objects context. If this scenario were to be managed using static RBAC, this would result in role explosion due to roles covering every possible combination of users,
environments and sessions being created.
The role explosion arises due to the assumption that a role is simply used for static provisioning. Once a user is associated with a role, they will receive the entitlements of that role. If a separation of duty needs to be fulfilled, multiple accounts or roles could be used to cover the multiple combinations associated with the context.
One of the ways to overcome this scenario is to use XACML and the concept of ABAC.
XACML has seen prominence in recent years with increasing emphasis placed on interoperability and E2E access control with
several vendors entering this space, including Cisco with it's December 2007 acquisition of Securent.
The main idea with XACML is to allow authZ decisions to be made using the subject, action, resource and environmental characteristics extending the static RBAC and user model with a real time Policy Decision Point.
As more and more organisations deploy an RBAC model of some description, be it to aide provisioning or to simplify administration tasks, the need for a more dynamic and extensible access control framework will develop and the maturity of something like XACML maybe help this process.