Role-based access control (RBAC) is a way to grant access through defined roles instead of assigning permissions separately to every person. A role groups the actions needed for a job, and a user receives those permissions when the role is assigned. Good RBAC keeps routine access simple while preventing people from changing data or settings outside their responsibilities.
Runner AI provides a concrete application-level example for ecommerce teams. Owner, admin, and member roles govern membership actions, while invitations, seat limits, role changes, and owner protections control how that access changes over time. This is not an enterprise identity or privileged-access management product. It is a focused model for membership governance inside one commerce workspace.
Key takeaways
- RBAC connects users to permissions through roles, making access easier to assign and review.
- Authentication proves who someone is; authorization decides what that person may do.
- A useful role matrix starts with real tasks, not impressive job titles.
- Invitations, role changes, removals, and ownership continuity are part of access control, not administrative cleanup.
- RBAC works best for stable responsibility groups. Context-heavy decisions may also need attributes or relationships.
- Runner demonstrates a bounded workspace model with owner, admin, and member roles, not a replacement for enterprise IAM, SSO, SCIM, or PAM.
What role-based access control means
The NIST Computer Security Resource Center defines RBAC as a model in which permitted actions on resources are identified with roles rather than individual identities. In plain language, the system does not ask, “What may Jordan do?” for every new account. It asks, “What may an admin do?” and then assigns Jordan the admin role when that responsibility is appropriate.
Four elements make the model work:
| Element | Practical meaning | Ecommerce workspace example |
|---|---|---|
| User | A person or service requesting access | A founder, operator, or contractor |
| Role | A named responsibility group | Owner, admin, or member |
| Permission | An allowed action on a resource | Invite a teammate or change a member role |
| Assignment | The connection between a user and a role | A teammate becomes a member after accepting an invite |
The distinction between authentication and authorization matters. Signing in can establish an account’s identity, but it should not make every workspace action available. OWASP’s Authorization Cheat Sheet recommends validating permission for every request and performing decisive checks on the server, not relying on a button being hidden in the interface.
Why roles are better than one-off permissions
Roles replace a growing collection of personal exceptions with a small, reviewable policy. When five operators need the same responsibilities, assigning one defined role is easier to understand than maintaining five separate permission lists. When a teammate changes jobs or leaves, the team can change or remove one role assignment instead of reconstructing every permission that accumulated over time.
This only works when the roles remain meaningful. “Trusted person,” “power user,” and “temporary admin” do not tell a reviewer which actions are allowed. A useful role describes a stable responsibility and maps it to concrete actions. The model should also make denied actions clear; a list of what a role may do is incomplete if nobody can tell where its authority stops.
RBAC supports the principle of least privilege: each user or process should receive only the access needed for assigned tasks. Least privilege does not mean giving everyone the lowest role. It means giving each person enough authority to complete their work, and no unrelated authority “just in case.”
Build a role matrix from real work
Start with consequential actions, then group them into roles. Do not begin with job titles copied from an organization chart. Two people with the title “manager” may need very different access if one manages campaigns and the other manages employees.
Use a simple matrix before configuring the product:
| Action | Member | Admin | Owner | Why the boundary matters |
|---|---|---|---|---|
| Send a workspace invitation | No | When product and plan rules allow | When product and plan rules allow | An invitation creates a path to future access |
| Invite or manage ordinary members | No | When product and plan rules allow | When product and plan rules allow | Invitations create a path to future access |
| Promote a member to admin | No | Yes | Yes | Admins need a way to delegate normal administration |
| Grant or change ownership | No | No | Yes | Ownership controls the highest workspace authority |
| Remove an owner | No | No | Protected | A routine member action must not leave the workspace without accountable ownership |
This table is a design exercise, not a universal permission map. Your application may use different roles or require separation of duties. The important part is that every row names a real action, the role allowed to perform it, and the reason for the boundary.
Three questions expose weak role design quickly:
- Can a person do their ordinary work without repeated elevation? If not, the lower role may be too narrow.
- Can a convenient role perform unrelated high-impact actions? If so, it may be too broad.
- What happens when the last person in a critical role leaves? If the answer is “the workspace has no owner,” the model is missing an invariant.
Treat invitations as pending access
An invitation is not merely an email. It is a pending authorization decision with a recipient, workspace, initial role, expiration state, and possible capacity impact. The invite should not become an active membership until the intended recipient accepts it through the correct account.
Runner’s current workspace flow illustrates that lifecycle. An owner or admin checks the selected workspace, searches for an existing member or pending invitation, confirms seat capacity, and sends an invitation. The invitation starts as pending and the recipient joins with the invited email address. The invitation form has no role selector; an authorized person reviews and changes roles after acceptance. The complete procedure, plan gate, and recovery states are documented in Runner’s members and invitations guide.
Pending invitations matter because several unresolved invites can reserve more future access than a plan allows. Runner’s seat-capacity logic can count active members and pending invitations together when a new invitation is created. Canceling an unused invitation therefore does two things: it invalidates that access path and can free capacity for the intended teammate.
A safe invitation review asks:
- Is this the correct workspace and complete email address?
- Does a membership or pending invitation already exist?
- Which role will the person receive on acceptance?
- Who can cancel the invite if the recipient or need changes?
- Will the pending invitation consume a limited seat?
- What should happen when the recipient uses the wrong account or the workspace is full?
Use hierarchy without confusing it with job seniority
A role hierarchy describes authority inside the application, not a person’s status in the company. In Runner, owner has more workspace-governance authority than admin, and admin has more than member. That does not mean an owner should make every merchandising or marketing decision. It means the application reserves specific membership actions for a higher role.
Runner enforces several boundaries in source and tests:
- Owners can assign owner, admin, or member roles.
- Admins can manage non-owner roles but cannot grant ownership.
- A member identifier from another workspace cannot be used to change a role in the current workspace.
- The final owner cannot demote themself; self-demotion is allowed only when another owner remains.
- The removal action requires at least admin authority. An admin or owner cannot remove someone with an equal or higher role, and this endpoint does not remove owners.
These checks address different failure modes. The hierarchy check limits who may act on whom. The cross-workspace check prevents an identifier from becoming authority over the wrong tenant. The last-owner rule preserves continuity when a role change is otherwise valid.
The user interface should explain these boundaries, but the enforcement belongs behind it. Hiding an Owner option from an admin is useful feedback; rejecting an unauthorized request on the server is the security control.
Know when RBAC is not enough
RBAC fits stable groups of responsibility. It becomes strained when a decision depends on many changing facts: the specific record owner, time of day, device trust, region, transaction amount, or relationship between two resources. Creating a new role for every combination can produce “role explosion,” where the model becomes harder to understand than the permissions it replaced.
Other models answer different questions:
NIST’s archived RBAC project background contrasts managing access through roles with maintaining access control lists for individual users. The project page is no longer updated, but its description of the formal model and the 2012 RBAC standard remains useful historical context.
| Model | Main decision input | Useful when |
|---|---|---|
| RBAC | The user’s assigned role | Responsibilities are stable and shared by groups |
| ABAC | Attributes of the user, resource, action, or environment | Context such as location, time, classification, or risk affects access |
| ReBAC | The relationship between users and resources | Ownership, membership, teams, or sharing relationships determine access |
| ACL | A resource-specific list of allowed or denied identities | A small number of resources need explicit per-user rules |
OWASP cautions that pure RBAC can be a poor fit for fine-grained object-level or multi-tenant decisions and recommends considering attribute- or relationship-based controls when the policy needs that context. That does not make RBAC obsolete. A practical system may use roles for broad workspace authority and additional checks for the specific organization, resource, or state involved.
Runner’s role-update path follows this layered pattern. It requires access to the organization and a sufficient role, then verifies that the target member belongs to the same organization and applies owner-specific invariants. The role is important, but it is not the only fact in the decision.
Review access as a lifecycle
The access review should follow people from invitation to departure. A quarterly spreadsheet of active accounts misses pending invitations, role changes, shared-account risks, and ownership continuity.
Use this lifecycle checklist:
- Before invitation: Confirm the workspace, recipient, required tasks, starting role, and available capacity.
- At acceptance: Verify that the intended account joined and received the expected initial role.
- After role changes: Check that the new role is visible and the old authority no longer applies.
- During routine reviews: Look for dormant members, unnecessary admins, stale pending invitations, and roles that have expanded beyond their original purpose.
- At departure: Remove access, invalidate pending invitations, transfer responsibility, and preserve at least one accountable owner.
The review should include connected tools as a separate layer. Workspace membership and an external account connection are not necessarily the same authorization boundary. Use the Agent Apps access guide to review each connection and its tool permissions instead of assuming a workspace role governs both.
RBAC is also only one part of a broader security program. Authentication, secure sessions, logging, data protection, dependency management, and tested recovery still matter. The ecommerce security and compliance overview provides context for those adjacent controls, while this article stays focused on who may perform workspace actions.
A practical Runner workspace example
Imagine a founder bringing an operations lead and a contractor into a store workspace.
- The founder remains an owner so ownership-sensitive changes have an accountable authority.
- The operations lead accepts a member invitation, then the founder promotes that account to admin because it needs to manage ordinary members.
- The contractor remains a member because the work does not require membership governance.
- Before sending another invite, the team checks active and pending seats and cancels a stale invitation.
- When responsibilities change, the owner reviews the role rather than layering a personal exception on top of it.
- Before an owner steps back, the team assigns another owner and verifies that the new assignment succeeded.
The value is not the labels themselves. It is the set of explicit, testable membership boundaries around them. The team can explain why each person has a role, who can change it, and what the membership system refuses to do.
Runner’s scope here is deliberately narrow. It does not claim to provide enterprise directory governance, privileged credential vaulting, universal single sign-on, or automated SCIM provisioning. Teams that need those controls should evaluate a dedicated identity platform and confirm how its policies combine with each application’s internal roles.
Role-based access control FAQ
What are the three basic parts of RBAC?
The minimum practical model has users, roles, and permissions. Permissions describe allowed actions, roles collect permissions for a responsibility, and users receive access through role assignments. Real systems also need protected resources, enforcement on each request, and processes for adding, changing, reviewing, and removing assignments.
Is RBAC the same as least privilege?
No. RBAC is an access-control model; least privilege is a design principle. A poorly designed admin role can still grant far more access than its users need. RBAC supports least privilege only when roles are scoped to real responsibilities and reviewed as those responsibilities change.
What is the difference between RBAC and ACLs?
RBAC assigns permissions to roles and then assigns users to those roles. An access control list records which identities or groups may act on a particular resource. ACLs can be direct and useful for resource-specific sharing, while RBAC is usually easier to review when many people share stable responsibilities.
When should a team consider ABAC instead of RBAC?
Consider attribute-based access control when the decision depends on changing context such as resource sensitivity, user department, location, time, device, or transaction state. Many applications combine broad roles with narrower attribute or relationship checks rather than choosing only one model.
How does Runner AI use role-based access control?
Runner uses owner, admin, and member roles for application-level workspace membership. Current controls cover invitations, role changes, hierarchy-aware removal, same-workspace validation, seat capacity, and protection against losing the final owner.
Give each teammate enough access, then stop
Write down the actions each teammate must perform, map those actions to the smallest suitable role, and review the assignment whenever the person’s responsibilities change. Include pending invitations and the final-owner scenario in the review; both can create problems even when the active member list looks correct.
For a Runner workspace, use the members and invitations workflow to check seats, invite the intended account, confirm acceptance, assign the appropriate role, and verify the resulting member row before treating access as complete.