Active Directory, Decentralized identity and verifiable credentials, IAM Technologies, Identity, Privacy, Privileged access management, SSO/MFA

Authentication is not authorization: verifying high-consequence actions

Authentication is not authorization

A user who authenticates successfully has proven one thing: they controlled the authenticator at that moment. That is not the same as demonstrating the legitimacy of what they are about to do.

NIST SP 800-63B defines authenticator assurance levels that establish confidence in a claimant's control of an authenticator — confidence in who is present — which is a separate question from authorization decisions about what actions that identity is permitted to perform. (Source: NIST SP 800-63B-4)

That distinction has direct operational consequences. When an attacker compromises a session, steals a token, or deceives a user into approving an action, identity verification has already succeeded — from the system's perspective. The authentication event passed. The authorization question — should this specific action proceed, given this context, at this moment — goes unasked.

The pattern behind many account-takeover and insider-abuse incidents is not that authentication was impossible to defeat. It is that systems treated a passed authentication check as full permission to perform any action the account nominally holds. This article is about the control layer that sits between "who is this?" and "should this happen?" — and how to build it in practice.

What makes an action high consequence

Not every action warrants separate authorization scrutiny. The operational cost of step-up checks creates friction, and applying them uniformly often causes teams to route around them or disable them. The goal is identifying the subset of actions where the cost of a fraudulent or coerced operation exceeds the cost of the verification step by a wide enough margin to justify the architecture.

Four characteristics mark a high-consequence action:

Irreversibility. Actions that move money, release credentials, or change recovery paths can be difficult or impossible to unwind without third-party cooperation.

Privilege escalation. Actions that expand what an account can do — granting roles, adding group memberships, disabling MFA for another user — amplify any future compromise.

Aggregate damage potential. A single action with access to bulk data, payment batches, or administrative APIs creates a larger blast radius than repeated small actions.

Out-of-pattern behavior. An action that is technically permitted by policy but unusual for this account, at this time, from this location, creates a gap when identity alone is used to authorize it.

Test question: for each action type in your system, ask whether a successfully authenticated but compromised session could complete it without any additional friction. If yes, that action is a candidate for transaction-level authorization controls.

Action type: privileged access and role changes

Granting, modifying, or revoking administrative roles is among the highest-consequence actions in an identity system, because a role change persists and can be used to authorize everything that follows. An attacker who elevates their own privileges or adds a role to a dormant account has created a persistent foothold that survives the initial session.

The weak approach is to treat role administration as a standard authenticated action: the user logs in with MFA, navigates to an admin console, and makes the change. That model fails when the authenticated session is hijacked, when an insider acts outside their scope, or when a service account with broad permissions is abused via API.

Controls that hold: Require a separate, time-limited privileged session for role changes, distinct from the session used for normal operations — this is the core of just-in-time (JIT) privileged access. Enforce four-eyes approval for role grants above a defined sensitivity threshold. Log role changes to a write-protected audit store immediately, with the approver's identity recorded separately.

Implementation step: In Azure AD / Entra ID, Privileged Identity Management (PIM) can require MFA re-authentication and a second approver for role activation, even when the user is already authenticated to the tenant. In AWS, the enforcement model operates at two distinct layers that must work together. Service Control Policies (SCPs) set organizational guardrails — for example, requiring aws:MultiFactorAuthPresent as a condition across accounts — but SCPs function as boundary limits rather than dynamic transaction-level controls.

Granular enforcement, such as gating iam:AttachRolePolicy or iam:CreateRole on session context like aws:PrincipalTag or MFA presence, is handled at the IAM permission policy, trust policy, or permission boundary layer. In practice, a complete AWS implementation requires SCPs to establish the organizational floor and IAM policies to enforce the transactional conditions. Neither vendor implementation substitutes for a documented, tested approval workflow.

Action type: account recovery and MFA reset

Resetting an MFA device or initiating account recovery is, by design, a path that bypasses the primary authenticator. That makes it one of the highest-value targets for social engineering and for insider abuse — and one of the most common points where identity-only authorization fails.

The failure mode is direct: a help desk agent who can reset an MFA factor based on a successful identity verification call has made the primary authenticator optional. The attacker's goal is to get to that agent, not to defeat the authenticator directly.

Controls that hold: Require an independent identity verification step — not a knowledge-based question, but a pre-registered backup authenticator or a secondary approval chain — before completing an MFA reset. Introduce a mandatory time delay between an MFA reset request and the new factor becoming active, with a notification to the prior registered contact channel during that window. Route MFA resets for privileged accounts through a separate approval path from standard user resets.

Failure mode and root cause: Many organizations configure their IdP to allow help desk staff to reset MFA factors with only first-level manager approval or a support ticket. The root cause is that the IdP's default configuration prioritizes availability — the ability to recover locked-out users — over the transaction risk of the reset itself. Remediation: audit who holds the ability to reset MFA in your IdP, treat that permission as a privileged role, and apply the same JIT and approval controls described in the privileged access section above.

Action type: payment and beneficiary changes

The 2021 FFIEC guidance on authentication and access identifies single-factor authentication as inadequate for high-risk activities and directs layered security controls for access to systems and higher-risk customer transactions, including push-payment functions. (Source: FFIEC)

Adding a new payment beneficiary or modifying an existing one is one of the clearest examples of a high-consequence action that authenticated sessions routinely authorize without separate transaction controls. The authenticated session establishes that the user had valid credentials. It does not establish that the transaction itself is authorized, expected, or initiated by the account holder acting freely.

Controls that hold: Enforce a mandatory cooling-off period — typically 24 to 72 hours — before a newly added beneficiary can receive a transfer. Require a second authentication factor, separate from the session credential, to authorize the payment initiation — not just the login. For high-value transfers, require out-of-band confirmation to a pre-registered contact that was not modified in the same session.

Decision criterion: If your payment system allows a beneficiary to be added and a transfer to be initiated in the same authenticated session, with no additional confirmation, you have collapsed authorization into authentication. The question to ask your implementation team: can those two operations be separated by a mandatory human verification step or a time gate?

Action type: sensitive data release

Bulk data export, API calls that retrieve large record sets, and report generation functions that aggregate PII or credentials often carry the same access controls as single-record lookups. The consequence of a single bulk export operation can exceed the consequence of thousands of individual record accesses.

Controls that hold: Apply rate and volume limits at the API layer that trigger a step-up authorization challenge when a single session requests data above a defined threshold. Require explicit, logged justification for bulk export actions, separate from the authentication event. Scope export permissions separately from read permissions in your role model, so that a user who can view records cannot export them without a distinct, auditable grant.

Implementation step: In most enterprise IdPs, this requires a claims or scope distinction at the application level — the authorization server needs to issue a different scope for "bulk export" than for "read." If your application treats all authenticated users with read access as authorized to export, the fix is application-layer, not IdP-layer.

Authorization controls that hold regardless of identity signal

A few controls apply across all four action types and are worth implementing as a baseline before adding action-specific logic.

Step-up authentication at the transaction, not the session. Require re-authentication — ideally with a phishing-resistant authenticator — at the point of the high-consequence action, not only at session initiation. A session that was authenticated four hours ago provides weak assurance for an irreversible action taken now.

Four-eyes / dual-authorization. Require a second authorized party to approve the action before it executes. This is the primary recommended control for actions where a single compromised or coerced user could cause irreversible harm. However, blanket four-eyes requirements across all high-consequence actions create a well-documented failure mode in mature environments: when every elevated action triggers a manual approval notification, reviewers rapidly shift to rubber-stamping requests without examining the underlying transaction details.

The implementation test — are approvers reviewing actual transaction details, or clicking "approve" on a notification? — cuts to this directly. A more durable approach applies risk-based adaptive thresholds: routine or low-variance requests within expected parameters can be auto-approved or fast-tracked, while requests that are anomalous by volume, timing, destination, or requestor history are gated behind genuine human review. The goal is to concentrate approver attention on the cases where it changes the outcome.

Out-of-band confirmation. Use a contact channel that was established before the current session and was not modified during it. Email-to-the-same-device-as-the-session is not out-of-band.

Immutable audit before execution. Write the transaction record before it executes, not after. If the action fails or is reversed, you need the record of what was attempted, who approved it, and what context was present. Post-execution logging loses that signal when the action also affects the logging path.

Why this is not about detecting deepfakes

Synthetic media and AI-generated voice impersonation are real mechanisms for defeating identity verification at help desks and in social engineering scenarios. But the authorization architecture described here does not depend on the ability to detect synthetic media — it removes the scenario where defeating a single identity check is sufficient to authorize a high-consequence action.

If your MFA reset process requires manager approval plus a time delay plus a notification to a pre-registered contact, a synthetic-voice call to the help desk does not complete the chain. The attack surface for deepfake impersonation shrinks when no single identity verification event can authorize an irreversible action.

Rather than focusing on the financial attack mechanics and costs of synthetic-media impersonation, the priority here is the broader architectural principle: building authorization controls that hold across critical actions, no matter how the identity signal was obtained or compromised.

High-consequence action control table

High-consequence actionWeak (identity-only) approachTransaction-authorization controls that holdFailure mode if you rely on identity alone
Privileged access role changeUser authenticates with MFA; admin makes role grant in consoleJIT privileged session + four-eyes approval + write-protected audit logCompromised or coerced admin session grants persistent elevation; insider expands own access without detection
Account recovery/MFA resetHelp desk verifies caller identity; resets factor on ticketPre-registered backup authenticator required + mandatory delay + notification to prior contactSocial engineering of help desk bypasses primary authenticator entirely; attacker controls account before owner notices
Payment/beneficiary changeAuthenticated session authorizes new payee and transfer in same flowBeneficiary cooling-off period + second factor at transaction + out-of-band confirmation to pre-session contactCompromised session or authorized-push-payment fraud sends funds to attacker-controlled account; irreversible
Sensitive data releaseRead permission treated as export permission; any authenticated read-access user can bulk exportSeparate export scope in role model + volume threshold triggers step-up + logged justificationSingle compromised read-access account exfiltrates bulk PII or credentials in one authenticated session

Sources

Screenshot

I’m a Principal Software Engineer at Microsoft Advertising, working at the intersection of large-scale data systems, cloud infrastructure, and generative AI. Over the past decade, including earlier work in Microsoft Azure Operations, I’ve focused on building distributed systems that handle global-scale data with low latency and predictable performance.

More recently, my work has centered on bringing large language models into production environments. I’ve led the design of API-driven ad serving systems and interactive experiences such as the Brand Showroom, which was featured at the Cannes Lions International Festival of Creativity. My team has also improved real-time performance by refining data pipelines and retrieval-augmented generation (RAG) systems, achieving a measurable reduction in serving latency.

I place strong emphasis on data security, privacy, and system reliability. I work on zero-trust data pipelines, safety controls for model-driven systems, and privacy-aware ad targeting. My focus includes mitigating risks such as data leakage, prompt injection, and model misuse, while keeping solutions practical and scalable for production systems.

I hold a Master of Science in Computer Science from North Carolina State University.

Get daily email updates

SC Media's daily must-read of the most current and pressing daily news

By clicking the Subscribe button below, you agree to SC Media Terms of Use and Privacy Policy.

You can skip this ad in 5 seconds