By NHI Mgmt Group Editorial TeamPublished 2026-06-08Domain: Best PracticesSource: Cerbos

TL;DR: Feature flags and authorization both shape what users can see or do inside applications, but they solve different problems, according to Cerbos’ webinar recap with Flagsmith. The important distinction is that feature flags manage release flexibility while authorization enforces access decisions, and mixing them too loosely creates governance drift rather than security.


At a glance

What this is: This webinar recap explains how feature flags and authorization overlap in application development and why they must remain separate controls.

Why it matters: For IAM practitioners, the boundary matters because release toggles, access policies, and user entitlements can look similar in code while carrying very different governance, audit, and risk implications.

👉 Read Cerbos's webinar recap on feature flags and authorization


Context

Feature flags are runtime switches that let teams enable or disable functionality without redeploying code. Authorization is the policy layer that decides who can perform which actions or reach which data. The governance problem appears when teams use both mechanisms to shape access but do not separate release control from entitlement control, which blurs accountability across application and identity teams.

In practice, that blur matters across NHI, autonomous, and human identity programmes because the same application logic can govern users, workloads, or agent-like services. A release toggle is not a permission model, and a permission model is not a rollout mechanism. The post is typical of modern product engineering teams that want speed, but the security question is whether speed is being traded for control clarity.


Key questions

Q: How should teams separate feature flags from authorization controls in applications?

A: Treat feature flags as release governance and authorization as access governance. Flags decide whether a capability is exposed, while authorization decides whether an identity can use it. Keep the two in different policy layers, test both at runtime, and make sure a hidden feature still requires a valid permission check before any sensitive action is allowed.

Q: What breaks when feature flags start controlling access decisions?

A: Auditability breaks first, because reviewers can no longer tell whether a user was blocked by release logic or by entitlement policy. Over time, this also weakens separation of duties and creates inconsistent behaviour across environments. The application becomes harder to certify because the same toggle now carries both product and security meaning.

Q: How do teams know if feature-flag governance is creating technical debt?

A: Look for growing numbers of dormant flags, duplicated conditions across services, and access-related logic embedded in rollout code. If flags survive beyond their intended release window or are used to simulate permission checks, the control surface is already drifting. Good governance leaves a clear inventory, an owner, and an expiry path for each flag.

Q: What should security and engineering teams review before using feature flags for sensitive features?

A: They should review whether the feature still requires server-side authorization, whether direct API access bypasses the UI toggle, and whether the flag has a planned retirement date. If the feature affects data access, the flag should never be the only barrier. The permission model must remain the source of truth.


Technical breakdown

Feature flags vs authorization policy

Feature flags determine whether a capability is exposed to a user segment, environment, or deployment path. Authorization determines whether an identity is allowed to perform an action or access a resource under a policy. The two can intersect in code, but they are not interchangeable because one controls release behaviour while the other enforces access governance. When teams conflate them, they risk creating brittle application logic where entitlement decisions are hidden inside rollout mechanics. That makes policy review, auditability, and separation of duties harder to maintain.

Practical implication: keep release toggles and access rules in separate control planes so policy decisions remain reviewable and testable.

How feature flags influence runtime access

Feature flags can change the user interface or the availability of application paths at runtime without new deployments. In modern development, that means a feature may exist in code but remain hidden for specific tenants, environments, or cohorts. The technical risk is that visibility control is not the same as enforcement control. If a flagged feature also exposes sensitive actions, the application must still perform an authorization check at the point of action, not just at page load or module render.

Practical implication: validate authorization at the action boundary, not only at the feature-entry boundary.

SDK-driven policy evaluation in application workflows

The webinar shows a common pattern where SDKs fetch flag state and policy context into the application at runtime. That architecture is useful because it reduces release friction and keeps decisions close to the user interaction, but it also makes lifecycle hygiene important. Flags, policy rules, and environment-specific conditions can accumulate technical debt if they are not retired, versioned, and tested against real access paths. The result is not just clutter, but inconsistent control behaviour across environments.

Practical implication: inventory SDK-managed control points and retire stale flags before they become hidden governance exceptions.


  • Cisco DevHub NHI breach — IntelBroker exploited exposed Cisco credentials, API tokens and keys in DevHub.
  • DeepSeek breach — DeepSeek breach exposed 1M+ log lines and sensitive secret keys.

Read our 52 NHI Breaches Analysis report for a comprehensive view of breaches impacting Non-Human Identities including AI Agents.


NHI Mgmt Group analysis

Feature flags are not a substitute for authorization, and treating them as one creates control drift. The webinar’s core lesson is that release flexibility and access governance solve different problems even when they both appear as toggles in code. When teams blur them, they lose the ability to prove who can do what and why, which weakens auditability across IAM and application governance. Practitioners should keep rollout logic and entitlement logic distinct.

The real risk is policy logic hidden inside product delivery mechanics. Once access decisions are embedded in feature-release behaviour, reviewers cannot easily separate operational change from security change. That makes recertification, testing, and exception handling harder because the control surface is no longer cleanly owned. The implication is that authorization needs a stable governance model even when the product is changing quickly.

Named concept: authorization-release entanglement. This is the failure mode where teams use rollout controls to approximate access control, or access policy to simulate release management. It is tempting in fast-moving development environments, but the result is a control plane that cannot be audited cleanly. Practitioners should treat this as a structural design flaw, not a tuning problem.

SDK convenience increases the need for lifecycle discipline. Lightweight integrations make it easy to spread feature and policy checks across applications, environments, and devices. That improves delivery speed, but it also expands the number of places where stale logic can survive after business requirements change. The governance implication is that teams need ownership, review, and retirement processes for every runtime control they embed.

Modern application security depends on separating experience control from authority control. The webinar shows why developers reach for both patterns at once, but practitioners should recognise that user experience tailoring and access enforcement are different disciplines. When those disciplines are mixed, identity governance becomes harder to explain to auditors and harder to defend during incidents. Teams should preserve that boundary by design.

From our research:

  • Only 44% of developers are reported to follow security best practices for secrets management, exposing a significant developer behaviour gap, according to The State of Secrets in AppSec.
  • Organisations maintain an average of 6 distinct secrets manager instances, creating fragmentation that undermines centralised control, according to The State of Secrets in AppSec.
  • That fragmentation is one reason runtime controls need lifecycle discipline, and the governance lesson carries directly into application control design.

What this signals

Authorization-release entanglement: teams are likely to see more application logic where rollout state and access state are mixed unless they enforce explicit ownership boundaries. That creates governance blind spots because the security team cannot easily tell whether a block, permit, or exception came from identity policy or product release logic.

The next maturity step is not adding more toggles, but documenting where feature delivery ends and access enforcement begins. For teams already using policy engines and release flags together, the operational question is whether each control can be reviewed, retired, and audited on its own terms.


For practitioners

  • Separate rollout control from access policy Keep feature flag decisions in a release-management layer and authorization decisions in an identity policy layer, with clear ownership for each. Review the code paths where a disabled feature can still be reached directly and ensure the authorization check remains authoritative at the action boundary.
  • Audit application paths for hidden entitlement logic Search for if-statements and SDK calls that gate sensitive actions based on flag state, environment, or user segment. Replace any logic that decides access inside release code with explicit authorization rules that can be reviewed, tested, and recertified independently.
  • Retire stale flags on a defined schedule Track every feature flag with an owner, expiry target, and removal plan so dormant toggles do not become permanent policy exceptions. Include flag cleanup in release governance and verify that deleted features no longer leave residual access paths in production.

Key takeaways

  • Feature flags and authorization can coexist safely only when teams keep rollout decisions separate from access decisions.
  • The main governance risk is not complexity alone, but hidden entitlement logic that becomes difficult to audit and recertify.
  • Lifecycle ownership matters because stale flags and embedded checks create long-lived control drift even in fast-moving application teams.

Standards & Framework Alignment

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

NIST CSF 2.0, NIST Zero Trust (SP 800-207) and NIST CSF 2.0 set the governance and control requirements practitioners need to meet.

FrameworkControl / ReferenceRelevance
NIST CSF 2.0PR.AC-4Access permissions and conditional access map directly to the article's authorization boundary.
NIST Zero Trust (SP 800-207)SC-3Runtime access should be verified at the action boundary, not assumed from UI state.
NIST CSF 2.0GV.OV-03Stale flags and hidden access logic create governance and oversight drift.

Keep feature release logic separate from access enforcement and review permissions independently.


Key terms

  • Feature Flag: A feature flag is a runtime control that turns application capability on or off without changing the deployed code. It is usually used for rollout management, experimentation, or environment-specific behaviour. It should not be treated as an access control, because visibility and permission are different governance problems.
  • Authorization: Authorization is the decision process that determines whether an identity may perform a specific action on a specific resource under defined conditions. It is a policy control, not a release mechanism. In governance terms, it must remain independently reviewable so security and product changes are not confused.
  • Authorization-Release Entanglement: Authorization-release entanglement is the condition where product rollout logic and access enforcement are mixed together in the same code path or runtime decision. That makes control ownership unclear, weakens auditability, and increases the chance that stale application logic survives after the business intent has changed.

Deepen your knowledge

Feature flags and authorization governance are covered in our NHI Foundation Level course, the industry's only accredited NHI security programme. If your team is embedding runtime control logic into applications, the course provides a practical way to separate release logic from entitlement governance.

This post draws on content published by Cerbos: a webinar recap on feature flags and authorization. Read the original.

NHIMG Editorial Note
Published by the NHIMG editorial team on 2026-06-08.
NHI Mgmt Group — the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org