liveBook · Manning

Role explosion

As explained in Software Security for Developers

Role explosion is the growth of numerous overly specific roles that makes role management, naming, auditing, and access analysis difficult.

Role explosion occurs when a system accumulates too many narrowly defined roles to satisfy increasingly specific access requests. A simple pair such as user and admin can grow into roles like invoice_admin, invoice_contract_admin, and regional_editor_eu. The result is a role list that becomes difficult to manage, name, audit, and interpret. section 17.1.1

How the role list grows

An organization first creates admin, then adds invoice_admin when someone needs invoice access without user management. Later, invoice_contract_admin handles invoices and contracts, while invoice_approver_eu or contract_editor_fr address regional differences. As these roles multiply, administrators may assign them simply to make access work without understanding the permissions granted. section 17.1.1 section 17.3

Role explosion is a common limit of role-based access control (RBAC). RBAC remains useful when a few well-designed roles match responsibilities, but it handles contextual decisions poorly, such as restricting access by department, region, resource, or request time. Attribute-based access control (ABAC) can express those conditions directly, while relationship-based access control (ReBAC) uses connections between entities. section 17.1.1 section 17.3

Figure 17.2 Roles and their associated permissions in RBAC. Each role represents a bundle of permissions. A user assigned to a role automatically inherits all the permissions granted by that role. This structure simplifies access control but can become difficult to manage as permission needs grow more specific.
figure

Shows how each RBAC role bundles permissions and why increasingly specific permission needs make the structure harder to manage. section 17.1.1

How Software Security for Developers covers it

How deep it goes
Defines the failure mode, traces its growth through role examples, and stops short of implementation details.
Examples
Uses user and admin, invoice_admin, invoice_contract_admin, invoice_approver_eu, and contract_editor_fr as escalating role examples.
What it assumes
Introduces the problem from basic user and admin roles before contrasting RBAC with ABAC and ReBAC.
What you can do after
Evaluate when narrowly defined RBAC roles are becoming unmanageable and when attribute- or relationship-based policies fit better.
How it connects
Connects role explosion with RBAC, ABAC, ReBAC, authorization, auditing, and context-aware access decisions.

Also explained in

Compare how 2 books explain role explosion →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Software Security for Developers. The section links point to the parts of the book it draws on.