Independent analysis by NHI Mgmt GroupSource article: WorkOS, “Multi-tenant permissions done right: What Slack, Notion, and Linear can teach us” (April 9, 2026)

TL;DR: B2B SaaS permission models fail when global role lists grow faster than tenant-specific needs, creating role explosion and overbroad access, according to WorkOS’s analysis of Slack, Notion, and Linear. The governing principle is to keep the global model simple and push variation to the tenant boundary, where scoped delegation is actually controllable.


At a glance

What this is: NHI Mgmt Group's analysis, drawing on WorkOS's blog post: Multi-tenant apps should use scoped roles and tenant-level delegation instead of expanding a single global role list.

Why it matters: IAM and application security teams need tenant-scoped authorization patterns because overbroad global roles create unnecessary blast radius, make administration harder, and complicate enterprise onboarding.


Context

Multi-tenant authorisation fails when a single global role model has to satisfy tenant-specific needs that differ by workspace, teamspace, or project. Once every exception becomes a new global role, the model becomes harder to reason about, harder to audit, and easier to over-privilege.

The underlying governance problem is not role count alone. It is where delegation happens: if tenant-specific variation is pushed into the global catalogue, every customer inherits complexity they do not need, while scoped delegation at the tenant boundary keeps access decisions local and controllable.


Key questions

Q: What breaks when every tenant request becomes a new global role?

A: The model breaks because the global catalogue becomes a dumping ground for exceptions. Reviewers lose a clear baseline, administrators cannot predict the blast radius of each role, and customers inherit permissions that were designed for someone else. Scoped roles keep variation where it belongs, inside the tenant boundary.

Q: Why do scoped tenant roles reduce overbroad access in SaaS apps?

A: Because scope is part of the grant, not an afterthought. A narrow role applied only inside one workspace, teamspace, or team cannot silently expand across the rest of the platform. That preserves least privilege, limits accidental exposure, and keeps enterprise exceptions from turning into universal access.

Q: How do teams know whether their role model has become too complex?

A: A role model is too complex when most new roles exist for one tenant, administrators cannot explain why a role is global, or access reviews require constant exceptions. Those are signs the authorisation boundary is misplaced. The fix is not more global roles, but moving variance to scoped delegation.

Q: Should tenant-specific access be handled with custom roles or private spaces?

A: Use custom roles when the difference is about what a user can do. Use private spaces when the difference is about what a user should be able to see at all. The two controls solve different problems, and the cleanest models often use both so privilege and visibility do not get mixed together.


Technical breakdown

Why global role sprawl happens in multi-tenant RBAC

Flat RBAC models start with a small set of coarse roles such as Admin, Member, and Viewer. In a B2B SaaS app, enterprise customers quickly ask for narrower capabilities, such as billing access without settings access, or audit visibility without edit rights. If each request becomes a new global role, the catalogue grows into a long tail of tenant-specific exceptions. That creates visibility problems, makes access reviews noisy, and turns role design into a product-support exercise rather than an authorisation model. The underlying issue is that global role names hide different permission scopes behind one label.

Practical implication: define permission primitives first, then decide which variations belong at the tenant boundary rather than in the global role catalogue.

How scoped delegation changes the authorisation boundary

Scoped delegation means a role is not only defined by what it can do, but also by where it applies. Slack-style workspace scoping, Notion-style teamspace overrides, and Linear-style team ownership all show the same architecture: a narrow permission set attached to a specific tenant container. This is materially different from giving the same elevated role across the entire app. It limits blast radius, preserves tenant isolation, and allows different customers to express different operational rules without changing the shared global model. Group mapping through an identity provider then turns that scope into a repeatable provisioning pattern.

Practical implication: attach custom roles to tenant objects, not to the whole environment, and drive assignment through identity groups where possible.

Why inheritance and structural boundaries beat endless exceptions

Permission inheritance lets the platform set a safe default and only override where the customer truly needs variation. That is why layered models work better than endless one-off role additions. Structural boundaries such as private teams or private teamspaces are even cleaner because they change what is visible by design, not by a complex web of allow rules. This reduces the risk of contradictory grants and simplifies audit logic. In practice, a permission model becomes easier to operate when the default is broad enough to be usable and the override path is narrow enough to stay understandable.

Practical implication: use inheritance for defaults, overrides for exceptions, and structural boundaries when visibility itself needs to be constrained.


NHI Mgmt Group analysis

Global role sprawl is a governance failure, not a product feature: once tenant-specific exceptions are encoded as shared roles, the authorisation model stops describing business intent and starts accumulating noise. That makes access harder to review, easier to over-grant, and more brittle to change. The practical conclusion is that multi-tenant RBAC must be designed around local variation, not global enumeration.

Scoped delegation is the real control boundary in multi-tenant apps: the meaningful question is not how many roles exist, but where authority is allowed to apply. A role that is valid only inside one tenant container preserves least privilege much better than a global role that must be interpreted differently for every customer. Practitioners should treat tenant scope as part of the permission definition itself.

Identity-provider group mapping is the scaling mechanism for tenant-specific access: manual role assignment does not survive enterprise onboarding, customer admin delegation, or recurring access changes. When group membership drives scoped roles, provisioning becomes repeatable and auditable instead of ad hoc. The conclusion is that enterprise readiness depends on mapping identity groups to tenant-scoped permissions, not on adding more roles.

Structural isolation beats permission complexity when visibility must differ: private teams, private teamspaces, and tenant-bound role sets are stronger than trying to simulate isolation with many allow rules. They reduce contradictory grants and make the access model easier for both administrators and auditors to reason about. The practical conclusion is to prefer structural boundaries whenever access differences are about tenancy, not just action rights.

From our research library:

  • 28% of secrets incidents now originate outside code repositories, in Slack, Jira, and Confluence, and are 13% more likely to be categorised as critical than code-based leaks, according to the State of Secrets Sprawl 2026.

What this signals

Multi-tenant authorization is moving toward tenant-scoped delegation because global role lists do not scale cleanly across enterprise customers with different operational needs. The practical test is simple: if a role exists for one customer only, it probably belongs at the tenant boundary, not in the shared catalogue.

Scoped delegation debt: every time a platform encodes a tenant exception as a global role, it accumulates governance debt that later shows up as review noise, overbroad grants, and onboarding friction. IAM teams should treat that pattern as a design smell, not a harmless convenience.


For practitioners

  • Define permission primitives before roles Break administrative capabilities into discrete actions first, then compose only the minimum roles needed for tenant administration and reporting.
  • Scope custom roles to tenant objects Attach custom permissions to workspaces, teamspaces, teams, or equivalent tenant containers so one customer's exception cannot become everyone else's baseline.
  • Map identity groups to tenant roles Use SCIM or SSO group claims to assign tenant-scoped access so onboarding and role changes follow the customer's directory structure.
  • Use structural privacy for sensitive work Treat private teams or private teamspaces as a first choice when the requirement is tenant isolation rather than a simple permission tweak.

Key takeaways

  • Role explosion is a structural authorisation problem that appears when tenant-specific exceptions are stored in a shared global role list.
  • The strongest multi-tenant models keep the global baseline simple and push variation to tenant-scoped containers such as workspaces, teamspaces, or teams.
  • Identity provider group mapping and structural privacy controls make tenant-scoped delegation workable at enterprise scale.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

OWASP Non-Human Identity Top 10 addresses the attack and risk surface, while NIST CSF 2.0 and CIS Controls v8 set the governance and control requirements practitioners need to meet.

FrameworkControl / ReferenceRelevance
OWASP Non-Human Identity Top 10NHI-05 — Overprivileged NHIOverbroad global roles create tenant-wide privilege that exceeds the local need described in the article.
Recommendation — Limit tenant-scoped access grants so exceptions do not expand into overprivileged platform-wide roles.
NIST CSF 2.0PR.AA-05 — Access Permissions, Entitlements and AuthorizationsThe article is fundamentally about designing and scoping access entitlements across tenants.
Recommendation — Apply PR.AA-05 to keep entitlements tenant-scoped and remove global roles that do not map to a shared need.
CIS Controls v8CIS-5 — Account ManagementTenant role assignment and lifecycle management are core account management concerns in the article.
Recommendation — Use CIS-5 to govern role assignment, group mapping, and removal of tenant-specific access.

Key terms

  • Scoped Role Policy: A scoped role policy defines what a role can do within a specific policy boundary, such as a tenant or environment. In multi-tenant SaaS, it lets platform teams narrow permissions per tenant without creating separate global roles for every customer.
  • Role Explosion: Role explosion happens when a shared authorization model accumulates too many narrowly tailored roles, often because every customer or team request becomes a permanent global role. The result is a harder-to-understand access catalogue, broader blast radius, and weaker governance over who can do what.
  • Permission Inheritance: The practice of allowing access on one object to flow into related objects through defined traversal rules. It reduces duplicate configuration, but it also creates hidden privilege paths that must be understood and reviewed. In complex systems, inheritance is often the real source of effective access.

Deepen your knowledge

NHI governance, agentic AI identity, and machine identity lifecycle are core topics in our NHI Foundation Level course, the industry's only accredited NHI security programme. If you are building or maturing an IAM programme, it is worth exploring.
NHIMG Editorial Note
Published by the NHIMG editorial team on June 6, 2026.
Updated on October 7, 2026.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org