The admin dashboard loads. You scroll. The roles list never ends.
This is the OpenID Connect (OIDC) large-scale role explosion problem. Every new microservice, every partner integration, every slight permission tweak spawns new roles. Soon, you’re managing thousands. The identity provider creaks under the weight. Queries slow. Onboarding a new team means hours of mapping. Offboarding means combing through a labyrinth of stale access grants.
OIDC was built to be simple: authenticate users, hand off claims, and let services enforce access. At large scale, though, fine-grained access control gets bolted onto identity providers. Instead of a clean federation, you have an ever-expanding set of roles baked into ID tokens or fetched from userinfo endpoints. This breaks down fast. Each role adds complexity to token generation, payload size, and API authorization logic.
Large-scale role explosion happens when RBAC is pushed too far inside OIDC itself. Services that should own their own permission graphs end up deferring to a central authority that knows nothing about the context of a request. The result: brittle coupling, operational delays, and security risks when expired roles linger.