TL;DR: Only 20% of authorization decisions were routed through a policy engine in one small financial application, with the rest scattered across code, middleware, ORM filters, and feature flags, highlighting how hard it is to measure centralized control in practice, according to EnforceAuth.
NHIMG editorial — what this means for NHI practitioners
By the numbers:
- One in five authorization decisions in a small financial application were routed through a policy engine, leaving 80% embedded across application code.
Questions worth separating out
Q: What breaks when authorization remains scattered across application code?
A: Governance breaks because no one can easily prove which access decisions are centrally enforced and which are still embedded in code.
Q: Why do authorization decisions in code matter for NHI governance?
A: Non-human identities often trigger the very business rules, ownership checks, and tenant filters that developers hide inside application logic.
Q: How do security teams know whether authorization externalization is actually improving?
A: They track the percentage over time, validate it against deeper scanning, and watch whether critical applications move policy decisions out of code and into a governed engine.
Practitioner guidance
- Baseline authorization externalization for each application Run a structural scan first, then validate the result against deep semantic review for hidden ownership checks, tenant filters, and feature-flag gating.
- Inventory non-policy decision points that function as access control Look specifically for decorators, middleware, ORM predicates, business-rule conditionals, and custom DSLs that decide access outside the policy engine.
- Create a remediation queue from scaffolded policy output Use generated policy stubs to assign ownership, sequence refactoring work, and track which authorization decisions still need extraction.
What's in the full announcement
EnforceAuth's full post covers the operational detail this post intentionally leaves for the source:
- A scan workflow that shows how the externalization percentage is calculated across real application code.
- Concrete examples of authorization patterns the scanner classifies as embedded decision points.
- The Rego scaffold output format and how teams can use it to start policy migration.
- Setup details for running the scanner locally or air-gapped before any vendor engagement.
👉 Read EnforceAuth's analysis of authorization externalization in application code →
Authorization externalization percentage: what IAM teams need to know?
Explore further