Step-Up Authentication in Okta

Step-Up Authentication in Okta

A beginner-friendly guide to asking for stronger or fresher proof of identity only at the moments that matter: how Okta decides, how apps can request it, how to design it so people accept it, and how to run it safely.

Most people sign in once in the morning and expect to work all day without interruption. That is a fair expectation for reading a team calendar or checking a chat message. It is not a fair expectation for approving a large payment, changing a bank account number, or promoting someone to administrator. Those actions are different, because a mistake or an attack there can cost real money or expose real data.

Step-up authentication is the idea that fits both worlds. People get a smooth day for ordinary work, and the system quietly asks for a stronger or fresher proof of identity at the few moments that carry real risk. Okta supports this idea in several ways, and this guide explains each of them from the ground up. No earlier knowledge is needed. By the end you will know what step-up is, how Okta decides when to use it, how an app can request it, and how to avoid the mistakes that either annoy users or leave gaps for attackers.

1What Is Step-Up Authentication?

It means raising the bar for proof of identity in the middle of a session, when the situation calls for it.

Let us start with the words. Okta is an identity provider, which is a service that proves who people are to many apps at once. Authentication is the act of proving who you are. A factor is one kind of proof, such as a password, a prompt on a phone, or a hardware key. Multi-factor authentication (MFA) means asking for two or more different kinds of proof.

A session is the period of time during which Okta remembers that you already proved who you are, so it does not ask again at every click. Step-up authentication means that, in the middle of a session, a system asks for a stronger proof, a fresher proof, or both, before it allows a particular sensitive thing. The user has already signed in. The system is simply saying, “For this next step, I need you to prove it again, and maybe in a stronger way.”

Analogy

Think of an office building. You show your badge at the front door in the morning, and that lets you walk through the lobby, the corridors, and the cafeteria. But the server room has a second door that wants a fingerprint, and the finance vault wants a fingerprint plus a manager’s code. Nobody calls that unfair. It is simply a higher bar for places that matter more. Step-up authentication is that extra door, applied to apps and actions.

1
normal sign-in covers everyday work
2
things step-up can raise: strength and freshness
3
common triggers: policy, app request, risk signal

Strength and freshness

These two words come up in every later chapter, so it helps to be clear about them now. Strength is how hard the proof is to fake. A password alone is weak, a prompt on a phone is stronger, and a hardware security key is stronger still. Freshness, also called recency, is how recently the proof was given. A proof from eight hours ago is stale. A proof from thirty seconds ago is fresh. Step-up can demand either one, or both together.

2The Words You Need to Know

A short vocabulary will make every later chapter easier to read.

Step-up has its own small language. Learn these terms once, and you will recognize them in Okta screens, documentation, and developer conversations.

TermPlain meaningWhy it matters here
Assurance levelHow confident the system is that the person is who they claim to beStep-up raises this level
Authentication contextA label for the strength of the sign-in that happenedApps can ask for a certain context
Re-authenticationAsking the user to prove identity againThe simplest form of step-up
Authentication policyA set of rules about how users prove identity to an appThe main place step-up rules live in Okta
RuleOne condition and its result inside a policyRules choose who gets stricter treatment
Phishing-resistant factorA factor that cannot be tricked by a fake websiteThe top of the strength ladder
User verificationA check on the device itself, such as a fingerprint or PINProves a person, not just a device, is present
Network zoneA named group of network locationsOne signal used to decide when to step up
OpenID Connect (OIDC)A modern sign-in standard used by many appsLets an app ask Okta for step-up
TokenA signed package of facts about a sign-inCarries the proof of strength and time back to the app
i
Tip

If you remember only two ideas from this table, remember authentication policy and token. Policies are how an administrator forces step-up from the Okta side, and tokens are how an app checks that step-up really happened.

3Why One Sign-In Is Not Enough

The same session cannot be equally trustworthy for every task. That is the problem step-up solves.

Single sign-on is a wonderful convenience. A person proves who they are once, and Okta vouches for them to many apps. But convenience has a hidden cost. The longer a session lasts and the more apps it reaches, the more damage someone can do if they get hold of it. A stolen session, an unlocked laptop left in a cafe, or a hijacked browser can all give an attacker everything that the original sign-in could reach.

Risk

Stale sessions

A person who signed in at nine o’clock may have walked away from the screen by two. The old proof says nothing about who is at the keyboard now.

Risk

Uneven stakes

Reading a document and wiring money are both just clicks, yet one can cause far more harm than the other.

Risk

Weak first sign-in

Someone may have signed in with a convenient factor that is fine for email but not strong enough for payroll.

Risk

Changing context

A session started on the office network may now be used from a different country, but the original sign-in cannot notice that on its own.

Two bad answers

Without step-up, a company usually ends up with one of two poor choices. The first is to make everything strict: every app demands a strong factor at every click. People grow tired, work slows down, and they start looking for shortcuts. The second is to make everything loose: one easy sign-in for the whole day. This is pleasant until the day it is abused.

Step-up offers a third answer. Keep the ordinary path easy and add friction only where the stakes are high. This is a better deal for both security teams and users, and it is why the idea has become a standard part of modern identity design.

Analogy

A hospital does not lock every cupboard with a fingerprint reader. Bandages sit on an open shelf, while controlled medicines live in a locked cabinet that logs every opening. Matching the lock to the contents is exactly what step-up does for digital actions.

4Assurance Levels: A Ladder From Weak to Strong

Thinking in levels makes step-up much easier to design and explain.

An assurance level is a measure of how sure a system is about who is on the other end. Higher levels need stronger proof. Security standards bodies publish formal level definitions, and Okta has its own named levels that apps and policies can use. For teaching purposes, it helps to picture a simple ladder. The labels below are teaching labels used in this guide, and Okta’s own names appear later.

flowchart LR
  L0["Level 0: Existing session only"] --> L1["Level 1: Password or one factor"]
  L1 --> L2["Level 2: Two factors"]
  L2 --> L3["Level 3: Phishing-resistant factor"]
  L3 --> L4["Level 4: Hardware-protected with user verification"]
Figure 1. A teaching ladder of assurance levels, from weakest to strongest.
LevelWhat the user didGood enough for
0Nothing new. The earlier session is simply reused.Reading low-risk pages
1Gave a password or a single factorEveryday internal tools
2Gave two different kinds of proofMost business apps and customer data
3Used a factor that a fake website cannot captureFinance, administration, source code
4Used a hardware-protected key with a fingerprint or PINThe most sensitive actions
Analogy

Picture the access levels at an airport. Anyone can walk into the public hall. Ticketed passengers pass the security line. Staff with badges enter the baggage area. Only a very small group, with checked identity and a second person present, enters the area where the aircraft are fueled. Each step up the ladder asks for more and admits fewer people.

A level is about the sign-in, not the person

One idea trips up many beginners. A level describes how a particular sign-in happened, not how trusted the person is. The same employee may reach level 1 on Monday morning with a quick prompt, then reach level 3 on Monday afternoon after touching a security key. The level belongs to the proof, not to the human. This is why one person can be asked to step up again and again, depending on the action.

5Architecture and Components

Several parts work together every time a person is asked to step up.

The picture is simple. A user works in an app. The app, or Okta’s own rules, decides that more proof is needed. The user is sent to Okta, completes the stronger proof, and returns to the app with a signed statement of what just happened. Each part of this has a clear job.

ComponentWhat it isWhat it does for step-up
Protected appThe app or action that needs more proofDetects a sensitive moment and asks for step-up
Okta sign-in and policy engineThe part of Okta that decides how to authenticateCompares the current session with what the policy requires
Authentication policyRules attached to an appDefine how strong and how recent the proof must be
Session recordOkta’s memory of the current sign-inStores how the user signed in and when
Enrolled authenticatorsThe factors the user has registeredDecide whether the user can meet a higher level at all
Context signalsNetwork, device, and behavior informationHelp decide if extra proof is needed
TokenA signed statement returned to the appProves the level and the time of the latest sign-in
System LogOkta’s activity recordRecords the step-up event for review
flowchart LR
  U["User and Browser"] --> A["Protected App"]
  A -->|"Request with required level and recency"| O["Okta Sign-In and Policy Engine"]
  O --> P["Authentication Policy and Rules"]
  O --> S["Session and Last Sign-In Time"]
  O --> F["Enrolled Authenticators"]
  O -->|"Token with level and time claims"| A
  O --> L["System Log"]
Figure 2. How the app, Okta, and the user’s factors fit together during step-up.
Analogy

Imagine a bank branch. The teller, who is the app, is happy to help with small tasks. When a customer asks for a large transfer, the teller calls the manager, who is Okta, and the manager checks the customer’s identity with a stricter procedure, using the branch rulebook, which is the policy. The manager then signs a slip that the teller can trust. The teller never needs to know the details of the check, only that the slip is genuine.

Notice that the app does not run the stronger check itself. It delegates the check to Okta and reads the result. This keeps the sensitive work, such as handling factors and hardware keys, in one carefully protected place.

6Two Ways to Trigger Step-Up: Policy-Driven and App-Driven

Step-up can start from the Okta side or from the app side. Many companies use both.

There are two main starting points. In policy-driven step-up, an Okta administrator writes rules for an app, and Okta applies them whenever someone opens it. The app does not need to be modified. In app-driven step-up, the app itself decides that a certain action is sensitive and asks Okta for a higher level at that moment. This needs a little developer work, but it gives fine control, down to a single button.

TriggerWho decidesWhen it happensBest for
Policy-drivenThe Okta administratorWhen a person opens or signs in to the appWhole apps that are sensitive, such as payroll or an admin console
App-drivenThe app’s developersWhen a person starts a specific sensitive action inside the appActions such as large payments, data exports, or changing security settings
Signal-drivenOkta’s rules reacting to contextWhen the situation looks unusual, such as a new deviceCatching risky moments without annoying people on normal days
Coarse

Policy-driven

Simple, no code needed, and applies to an entire app. The downside is that it cannot tell a harmless click from a dangerous one inside the app.

Fine

App-driven

Precise and flexible, and it matches the way people actually work. It does need the app to speak a suitable sign-in standard and to be built carefully.

Analogy

Policy-driven step-up is a guard at the door of a whole department who checks everybody entering. App-driven step-up is a lock on one particular cabinet inside the department, which opens only for a person who proves themselves right then. A thoughtful building has both.

The next chapters take each trigger in turn, starting with the one that needs no code at all.

7Policy-Driven Step-Up: Authentication Policies

An authentication policy is the rulebook that Okta reads each time someone opens a protected app.

In Okta Identity Engine, each app is attached to exactly one authentication policy. Many apps can share the same policy, which keeps things tidy. Inside a policy sits an ordered list of rules. Okta reads the rules from the top, finds the first rule whose conditions match the sign-in, and applies it. At the bottom sits a catch-all rule that handles everyone who matched nothing above. Older Okta setups use similar ideas under the name sign-on policies, and the screens differ, but the thinking is the same.

What a rule contains

Part of a rulePlain meaningExample
ConditionsWho and what the rule applies toUsers in the Finance group, on an unmanaged device, from outside the office network
Required proofHow strong the sign-in must beTwo factors, or a phishing-resistant factor
Re-authentication frequencyHow fresh the proof must beEvery sign-in, or after a set number of minutes, hours, or days
Access resultWhether access is allowed or deniedAllow with the stated proof, or deny entirely

The re-authentication frequency setting is the heart of freshness. It tells Okta to ask for proof again even if the person still has a perfectly good session. For a sensitive app you might choose to ask at every sign-in attempt. For a medium-risk app you might choose to ask after a number of hours. Exact option names change between releases, so check what your Okta version shows.

Analogy

Think of a library with different reading rooms. The rulebook at the desk says: “Members may enter the main hall with a card. The rare-books room needs the card and a staff escort. If you were in the rare-books room more than an hour ago, you must check in again.” Each line is a rule, and the freshness rule is the one-hour limit.

A simple three-rule policy

Imagine a payroll app. The first rule says that people in the Payroll group, on a managed device, on the office network, need two factors and a fresh proof every few hours. The second rule says that people in the Payroll group anywhere else need a phishing-resistant factor and a fresh proof at every sign-in. The catch-all rule at the bottom denies everyone else. Three short rules express a whole security stance.

!
Warning

Rule order matters. Okta uses the first rule that matches. If a broad rule sits above a narrow one, the narrow rule never fires. Always place the most specific rules at the top, and test with real accounts from each group.

8Factor Constraints: Choosing How Strong the Proof Must Be

A rule can ask for specific kinds of proof, not only a number of factors.

Counting factors is only the start. A thoughtful rule also says which kind of factor will be accepted. In Okta’s rule settings you will find choices that describe the kinds of proof, grouped by the three families of evidence. The knowledge family covers things a person knows, such as a password. The possession family covers things a person has, such as a phone or a hardware key. The inherence family covers things a person is, such as a fingerprint on a device.

Constraint ideaWhat it requiresWhy a team would choose it
Any one factorA single acceptable proof of any allowed typeLow-risk apps where speed matters
Password plus another factorA knowledge proof and a different proofThe classic two-factor setup for most apps
Any two factorsTwo different proofs in any combinationPasswordless setups with two possession or inherence proofs
Phishing-resistant possessionA factor tied to the real website addressHigh-value apps where phishing is a real danger
Hardware-protected possessionA key kept in protected hardware on the deviceAdmin access and sensitive finance actions
User verification requiredA fingerprint, face scan, or PIN on the deviceMaking sure a person, not only a device, is present

Why user verification matters

A phone or a security key proves that a device is present. It does not prove that the rightful owner is holding it. User verification closes that gap by asking for a quick local check, such as a fingerprint, face unlock, or device PIN, before the device answers. If a thief steals an unlocked phone or a key, they still cannot pass the check. This is why user verification is a favorite setting for step-up rules.

Analogy

A credit card proves you own a card. A card plus a PIN proves you also know a secret. User verification is the PIN of the modern device world: the card, which is the device, is useless until the owner confirms it is really them.

i
Note

The stronger the constraint, the more careful you must be about enrollment. A rule that requires a phishing-resistant factor will block anyone who has not registered one. Plan that registration ahead of time, as described in a later chapter.

9App-Driven Step-Up With OpenID Connect

An app can ask Okta for a stronger or fresher sign-in at the exact moment it needs one.

OpenID Connect (OIDC) is a sign-in standard built on top of OAuth 2.0. In an OIDC sign-in, the app sends the user to Okta with a request, Okta authenticates the user, and then Okta hands back an ID token, which is a small signed package of facts about the sign-in. The request can carry extra hints that ask for step-up. Two of these hints matter most.

Strength hint

Authentication context request

The app asks for a named authentication context, which is a label for how strong the sign-in must be. Okta defines values for one-factor, two-factor, and phishing-resistant levels.

Freshness hint

Maximum age

The app says how many seconds old the last sign-in may be. If the user’s last proof is older than that, Okta must ask again.

Okta’s named levels

In Okta Identity Engine, an app can request one of several named authentication contexts. The table below lists the ones most often used. Exact values and availability can change, so confirm them against current Okta documentation before building.

Requested valuePlain meaning
urn:okta:loa:1fa:anyAny single-factor sign-in is enough
urn:okta:loa:1fa:pwdThe single factor must be a password
urn:okta:loa:2fa:anyTwo factors are required
urn:okta:loa:2fa:any:ifpossibleTwo factors if the user can, otherwise fall back gracefully
phrA phishing-resistant sign-in is required
phrhA phishing-resistant, hardware-protected sign-in is required
sequenceDiagram
  autonumber
  participant U as User
  participant A as Protected App
  participant O as Okta
  U->>A: Open the normal page
  A-->>U: Show the page with an ordinary session
  U->>A: Start a sensitive action
  A->>A: Check how strong and how recent the sign-in was
  A-->>U: Redirect to Okta asking for a higher level and a recent sign-in
  U->>O: Arrive at Okta with an existing session
  O->>O: Compare the session with the requested level
  O-->>U: Ask for the stronger proof
  U->>O: Complete the stronger proof
  O-->>U: Return a code to the app
  U->>A: Deliver the code
  A->>O: Exchange the code for tokens
  O-->>A: ID token with level and time claims
  A->>A: Verify the claims, then allow the action
Figure 3. An app-driven step-up using OpenID Connect.

Reading the flow

The user is already working in the app with an ordinary session. When they click something sensitive, the app checks the strength and age of the sign-in it already knows about. If either is not good enough, it redirects the user to Okta and asks for a higher level, a fresher proof, or both. Okta compares the user’s current session with the request. If the session already satisfies it, Okta can answer immediately with no prompt. If not, Okta asks for the stronger proof, and only then returns a code. The app swaps that code for tokens by speaking directly to Okta, and finally checks the claims in the new token before it allows the action.

Analogy

It is like a clerk who says, “I need the manager to sign off on this.” The customer is sent to the manager’s desk, the manager checks their identity more carefully, and a signed slip comes back to the clerk. The clerk looks at the slip, checks the signature and the time written on it, and only then completes the transaction.

10Reading the Result: Claims in the ID Token

Asking for step-up is only half the job. The app must also check that it really happened.

When Okta returns an ID token, the token contains claims, which are individual facts packaged inside it. Three claims are especially useful for step-up.

ClaimPlain meaningHow the app uses it
Authentication context (acr)The level of the sign-in that took placeConfirms that the strength requested was actually reached
Authentication methods (amr)A list of the kinds of proof used, such as password or hardware keyGives detail for audit and for finer decisions
Authentication time (auth_time)When the user last proved their identityConfirms that the proof is fresh enough

Why checking matters

It is easy to assume that if the user came back from Okta, all is well. That assumption is dangerous. A user, or an attacker, may be able to change the request on its way, removing the stronger-level hint. The app must therefore look at the token that comes back and confirm three things: the signature is valid, the level meets what the app needed, and the time is recent enough. If any check fails, the app must refuse the action, no matter how the user arrived.

!
Warning

Never trust the redirect. Trust only the signed token, and check it against what you asked for. An app that sends a request for a higher level but never verifies the answer has the look of step-up without any of the safety.

Analogy

A shop that asks to see a photo ID for an age-restricted purchase has to actually look at the ID. If the clerk just says “please show me your ID” and then rings up the sale without looking, nothing has been checked. The look is the verification step.

Be careful with the level you accept

Apps should also decide, ahead of time, which levels they will accept for each action. A payment approval might need phishing-resistant proof from the last five minutes. A profile edit might accept two factors from the last hour. Writing these rules down as a short table, kept next to the code, helps both developers and security reviewers see at a glance what protects what.

11SAML Apps and Step-Up

Many business apps use SAML, an older standard, and step-up works a little differently there.

SAML stands for Security Assertion Markup Language. It is a widely used standard for single sign-on between a company and its apps. In a SAML sign-in, Okta sends the app a signed message called an assertion, which states who the user is and how they signed in. SAML apps are often handled with policy-driven step-up, because the app side is typically a ready-made product that you cannot change.

Option 1

Policy on the Okta side

Attach a stricter authentication policy to the SAML app, so Okta asks for stronger or fresher proof every time the app is opened.

Option 2

Force re-authentication hint

Some SAML apps can send a hint with their request that says the user must sign in again. Support varies by app and by Okta setup, so test it before relying on it.

Option 3

Request a context

SAML also has a way for an app to request a particular authentication context. Not every app uses it, and not every setup maps it the way you might expect.

What to expect in practice

For most SAML apps, the practical answer is the first option. You attach a stricter policy and accept that the whole app is treated as sensitive. That is perfectly fine for apps like an HR system or a finance tool, where nearly every action deserves care. If you need per-action control inside a SAML product, ask the vendor whether the app supports fine-grained re-authentication, or consider placing a second protected layer in front of the riskiest function.

Analogy

A ready-made appliance usually comes with a few preset switches and no way to open it up. You can change which switch is on, but you cannot rewire it. For SAML apps, the policy is the switch you can reach, and the app’s internals stay out of your hands.

i
Tip

Always test the stricter policy by opening the app from both places: the Okta dashboard and the app’s own web address. Some setups prompt in one path but not the other, and you want to know before your users do.

12Step-Up for Administrators and Sensitive Okta Tasks

The accounts with the most power deserve the strictest treatment, and Okta itself applies step-up to them.

The Admin Console is the place where Okta administrators manage users, apps, and security rules. Whoever controls it can change policies, create administrators, and reset other people’s factors. This makes it the single most valuable target in the whole system. Okta therefore protects it with its own rules, and may ask an administrator to prove their identity again before certain sensitive actions, even in the middle of a session. The exact list of protected actions changes over time, so read the current documentation for your org.

What you should do yourself

Beyond Okta’s own protection, you can and should add your own. Attach a strict authentication policy to the Admin Console app, with a rule that requires a phishing-resistant factor, user verification, and a short re-authentication window. This is a strong example of policy-driven step-up, and it is a good place for a first rollout, because the group is small and security-minded.

Admin actionRiskSuggested step-up
Viewing reportsLowNormal two-factor sign-in
Assigning an app to a groupMediumTwo factors with a recent proof
Resetting a user’s factorsHighPhishing-resistant proof, very recent
Changing authentication policiesHighPhishing-resistant proof with user verification
Creating or changing administrator rolesVery highHardware-protected proof and a second approver where possible
Analogy

The person who holds the master keys to the building is not allowed to simply wave a badge and walk in. They sign a log, use a special key, and sometimes need a colleague present. The more power a key has, the more careful the ritual around its use.

!
Warning

Keep the number of administrators small, give each person a named account, and avoid shared admin logins. Step-up protects each action, but it cannot rescue a setup where ten people share one password.

13Context Signals: Letting the Situation Decide

Sometimes the best reason to step up is not the app but the circumstances.

Okta can look at the context of a sign-in, which means the surrounding facts, and use them in rules. Context-based step-up is called adaptive or risk-based authentication. The idea is simple. On a normal day, from a normal place, on a normal device, keep the experience smooth. On an unusual day, add friction.

Network

Network zones

A named set of locations, such as the office network or a list of countries. Rules can treat sign-ins inside and outside these zones differently.

Device

Device state

Whether the device is registered, managed by the company, or meets health checks. Unknown devices can be asked for more proof.

Behavior

Behavior detection

Unusual patterns, such as a new location or a sudden change in how someone signs in, can trigger a stronger check.

Risk

Risk level

Okta can estimate how risky a sign-in looks, and rules can respond with a stricter requirement or a block.

flowchart TD
  R["User requests an action"] --> Q1{"Is the action sensitive?"}
  Q1 -- "No" --> OK["Allow with the current session"]
  Q1 -- "Yes" --> Q2{"Is the session strong enough?"}
  Q2 -- "No" --> SU["Step up to a stronger proof"]
  Q2 -- "Yes" --> Q3{"Was the last proof recent enough?"}
  Q3 -- "No" --> RE["Ask for a fresh proof"]
  Q3 -- "Yes" --> Q4{"Does the context look risky?"}
  Q4 -- "Yes" --> SU
  Q4 -- "No" --> OK2["Allow the action"]
  SU --> OK2
  RE --> OK2
Figure 4. A simple decision path that combines sensitivity, strength, freshness, and context.

Read the diagram from the top. A harmless action sails through. A sensitive action is checked for strength first, then freshness, and finally for any warning signs in the context. At any point a failed check sends the user to the step-up path. Only after all checks pass is the action allowed.

Analogy

An experienced airport officer waves through the regular commuter who passes every day with the same bag, and takes a closer look at someone arriving from an unusual route with unusual luggage. The rules are the same for everyone, but the attention is guided by the situation.

i
Note

Context signals are hints, not proof. A traveler on hotel Wi-Fi may look risky, and an attacker on a stolen laptop may look normal. Use context to decide when to ask for more, and keep strong factors as the real protection.

14Prerequisite: Users Must Be Able to Meet the Level

A step-up rule that nobody can satisfy is not security. It is a locked door with no key.

This is the most common reason for a failed step-up rollout. The administrator writes a rule that demands a phishing-resistant factor, and then discovers that most people have never registered one. When those users reach the step-up moment, they find nothing they can use, and they are stuck. The cure is to line up your enrollment policy, which controls what people can register, with your step-up rules, which control what people must present.

Step-up rule demandsUser must have enrolledEnrollment policy should
Two factorsA password and one more factor, or two non-password factorsMake a main factor required and allow a backup
Phishing-resistant proofA security key, built-in biometric authenticator, or similar factorAllow and encourage that factor for the relevant group
Hardware-protected proofA hardware key or a device with protected key storageRequire it for the highest-risk group
User verificationA device that supports a fingerprint, face scan, or PINCheck device support before requiring it

Use the soft option while you roll out

Okta provides a gentler version of some requests, such as the two-factor level marked “if possible.” This asks for the stronger proof when the user has one, and falls back to a lower level when the user does not. Using it during a rollout lets you see who is ready without locking anyone out. When your enrollment numbers look healthy, you can switch to the strict version.

Analogy

Before a company demands that everyone carry a new type of ID card, it first hands those cards out. A rule that says “use your new card” is only fair once the cards exist. Step-up rules are the same: first hand out the cards, then require them.

i
Tip

Keep a simple dashboard that shows, for each group, how many people have registered the strong factor the next rule will require. Do not turn on a strict rule for a group until that number is close to everyone.

15Sessions, Recency, and Time

Step-up and session length are close cousins, but they are not the same thing.

When a person signs in to Okta, Okta creates a session. A session has a maximum lifetime and often an idle timeout, which ends it after a period of no activity. Apps then create their own sessions on top. All of these timers are separate, and mixing them up is a common source of confusion.

TimerWhat it controlsRelation to step-up
Okta session lifetimeHow long Okta remembers the personAfter it ends, the next sign-in is a full one
Okta idle timeoutHow long without activity before the session endsReduces the risk of walk-away sessions
Re-authentication frequencyHow old the last proof may be for a given appForces fresh proof even inside a healthy session
Maximum age in a requestHow old the last proof may be for one sign-in requestLets an app demand fresh proof at a single moment
App session lifetimeHow long the app keeps the person signed inMay outlast Okta’s decisions, so set it sensibly

The key insight is that a step-up proof makes the session stronger for a while, and then it fades. Once the freshness window ends, the next sensitive action will ask again. This is by design. A strong proof from three hours ago should not unlock a payment now.

Analogy

A stamp on your hand at a festival lets you in and out of the main gate all day. Entry to the backstage area needs a second stamp that is only valid for an hour. When the hour passes, you must return to the desk for a new stamp. The first stamp is the session, and the second stamp is the step-up proof.

Choosing the freshness window

Short windows are safer and more annoying. Long windows are friendlier and riskier. A reasonable starting point for the most sensitive actions is a proof from the last few minutes, or even a fresh proof for each action. For medium-risk actions, an hour or two may be fine. Whatever you pick, make it consistent, explain it to users, and review it after you see real behavior in the logs.

16Designing the User Experience

Step-up works only when people accept it. A badly designed prompt turns allies into critics.

From the user’s side, step-up is an interruption. They were doing something, and suddenly they are asked to prove themselves again. If the interruption feels random, slow, or confusing, people will complain, work around it, or approve prompts without thinking. If it feels logical, quick, and explained, most people will accept it as a normal part of handling sensitive work.

Principles of a good step-up experience

Principle

Explain why

A short message such as “This payment is over your usual limit, so we need to confirm it is you” removes the feeling of randomness.

Principle

Ask rarely and meaningfully

If people see prompts all day, they stop reading them. Keep step-up for the moments that matter.

Principle

Offer the strongest easy option

A fingerprint tap on a laptop is both strong and fast. Prefer factors that are quick for the user and hard for the attacker.

Principle

Return people to where they were

After the proof, bring the user back to the exact task. Losing their place is a major source of frustration.

Principle

Provide a way forward

If the user has no usable factor, show a clear message and a help link, instead of a dead end.

Principle

Stay consistent

The same action should always ask for the same level, so people learn what to expect.

Prompt fatigue is a real risk

When someone receives repeated approval requests, they eventually tap yes without checking. Attackers know this and sometimes send a flood of requests, hoping that one will be approved by a tired person. This is called prompt fatigue or push bombing. Settings such as number matching, where the user must pick the number shown on the sign-in screen, and user verification on the device both make blind approvals impossible. A good step-up design uses them.

Analogy

A smoke alarm that rings every time someone makes toast soon gets ignored, and then it fails on the one day there is a real fire. A security prompt works the same way. Each unnecessary prompt teaches people to ignore the next one.

Accessibility and device variety

Not everyone can tap a fingerprint reader, scan a face, or read a small number on a phone screen. Some people use screen readers, some have limited hand movement, and some work on shared kiosks or older laptops. A step-up design that works only for the typical user will quietly shut out others at the very moment they need to finish a task. Offer more than one strong method where your security rules allow it, test prompts with assistive tools, and make sure messages are written in plain language that a screen reader can read in a sensible order.

Device variety matters as well. A hardware key that works on a desktop may need an adapter for a phone. A built-in biometric authenticator is available only on devices that have the hardware and have it set up. Before you demand a particular method, list the devices people really use and check what each one supports. A short survey, or a look at the sign-in logs for operating systems and browsers, often reveals surprises such as a group of shared tablets that cannot do what the new rule demands.

Support and training

The help desk is the safety net for any new rule. Give support staff a one-page guide that explains what step-up is, which apps are in which tier, what the prompts look like, and how to verify a caller before helping with a lost factor. Add a short message at the point of the prompt, with a link to the guide for users. When people can find the answer in a minute, they do not open a ticket, and the rollout feels calm. When they cannot, even a good rule earns a bad reputation.

i
Tip

Write the wording of the prompts together with a customer-facing or HR colleague. Plain words, a friendly tone, and a clear next step lower support calls more than any technical tweak.

17Setting It Up, Step by Step

Exact screens change over time, but the order of work stays the same.

Policy-driven setup

1

List the sensitive apps and actions

Write down which apps hold the most valuable data or allow the most powerful changes, and rank them by risk.

2

Choose a level for each tier

Decide the strength and the freshness for each tier, such as two factors for medium risk and phishing-resistant proof for high risk.

3

Check enrollment readiness

Confirm that people in each group have registered the factors the new rule will demand, or can do so easily.

4

Create or copy an authentication policy

In the Admin Console, open the authentication policies, create a new policy for the tier, and give it a clear name.

5

Add rules in the right order

Place the most specific rules at the top, and keep a safe catch-all rule at the bottom.

6

Attach the policy to the app

Open the app’s sign-on settings and choose the new policy. Many apps may share one policy.

7

Pilot with a small group

Start with a few friendly users, and sign in as a test user from each affected group to see the real screens.

8

Communicate and widen

Tell people what is changing and why, then widen to everyone in waves, while watching the logs.

App-driven setup

1

Map actions to levels

For each sensitive action in the app, write the required strength and the maximum age of the proof.

2

Register the app as an OpenID Connect app in Okta

Create the integration, note the client identifier and redirect address, and keep any secret safe on the server.

3

Build the step-up request

When a sensitive action starts, have the app redirect to Okta with the required level and the maximum age.

4

Verify the token that returns

Check the signature, the level, and the time before allowing the action. Reject anything that falls short.

5

Handle the failure paths

Decide what the app shows when the user cancels, has no suitable factor, or fails the check.

6

Test with real accounts

Try each action with a user who has a strong factor, a user who has only a weak one, and a user who has none.

!
Warning

Never test a new strict rule using only your own administrator account. Admin accounts often sit in special groups or policies, so a problem that ordinary users will hit may never show up for you.

18Worked Example: Approving a Large Payment

A story makes the moving parts easy to see in one piece.

Meet Anika, who works in the finance team of a mid-size company. Every morning she signs in to Okta with a prompt on her phone, and she opens the company’s payments app. That sign-in is level 2: two kinds of proof. For small, routine tasks such as viewing invoices, the payments app is happy with that.

At eleven o’clock she prepares a large supplier payment. When she clicks the approve button, the payments app notices that the amount is above a set limit. It checks the token from her morning sign-in. The level is two-factor, but the rule for large payments requires a phishing-resistant proof from the last five minutes. So the app redirects her to Okta with a request for a higher level and a maximum age of five minutes.

Okta sees that Anika has an active session, but that her last proof was too long ago, and was not phishing-resistant. It asks her to use the fingerprint reader on her laptop, which is registered as a built-in biometric authenticator. She taps, and it works in two seconds. Okta sends a token back to the payments app. The app verifies the signature, sees the correct level, sees that the time is only a few seconds old, and allows the payment.

MomentWhat the user didLevel reachedPrompt?
Morning sign-inApproved a prompt on her phoneTwo factorsYes, once
Viewing invoicesNothing newTwo factors, from this morningNo
Small paymentNothing newTwo factors, from this morningNo
Large paymentFingerprint on her laptopPhishing-resistant, seconds oldYes, for this action only
Another large payment ten minutes laterFingerprint againPhishing-resistant, seconds oldYes, because the window is five minutes
Analogy

It is like a cash machine that lets you check your balance after inserting the card, but asks for the PIN again before it hands over a large sum. The card gets you in, and the PIN protects the part that matters.

What would have happened to an attacker

Suppose an attacker stole Anika’s browser session at lunchtime. They could view invoices with no extra proof, since the session is valid. But the first time they tried to approve a large payment, the app would send them to Okta and ask for a fingerprint, which they do not have. The attack stops at the exact step where damage would begin. That is the whole point of step-up.

19Worked Example: Tiering Apps Across a Company

Most companies do better with a small number of tiers than with a different rule for every app.

Imagine a company with about a hundred cloud apps. Writing a custom rule for each would be exhausting and hard to explain. A simpler approach is to sort apps into a few tiers by risk, and to attach one shared policy to each tier. People then learn a simple pattern: normal apps, careful apps, and critical apps.

TierExample appsRequired proofFreshnessExtra conditions
StandardChat, calendar, shared documentsTwo factorsOnce per working dayNone
CarefulCustomer database, source code hosting, HR portalTwo factors, with user verificationEvery few hoursManaged device or office network, or stronger proof
CriticalPayroll, payments, cloud admin consoles, Okta Admin ConsolePhishing-resistant, with user verificationEvery sign-in or every few minutesManaged device, named group only

Why three tiers work well

Three tiers are easy to remember, easy to teach, and easy to audit. New apps can be placed in a tier with a short conversation: “How bad would it be if a stranger used this app for ten minutes?” If the answer is “not very bad,” it goes in standard. If the answer is “we would call a lawyer,” it goes in critical.

Analogy

An office usually has three kinds of room: open desks, meeting rooms that need a booking, and locked rooms for finance or servers. People rarely complain about this simple pattern, because it is easy to understand, and the extra care applies only where it makes sense.

i
Note

The tier of an app can change. A small tool that starts to hold more sensitive data may need to move up. Review the list at least once or twice a year, and any time an app gains a new powerful feature.

20Data Flow and Lifecycle of a Step-Up

Following the data from request to record shows where each check happens.

Every step-up has a short life cycle. It starts with a sensitive action, passes through a decision, collects a stronger proof, and ends with a record. Knowing each stage helps you place checks, logs, and alerts in the right spots.

flowchart TD
  A["Sensitive action requested"] --> B["App or policy asks for a higher level"]
  B --> C["Okta evaluates the policy and the session"]
  C --> D["User completes the stronger proof"]
  D --> E["Okta records the event and updates the session"]
  E --> F["Token returned with level and time claims"]
  F --> G["App verifies the token and acts"]
  G --> H["Logs in the app and in Okta can be matched"]
Figure 5. The life cycle of a step-up, from request to record.
StageWho actsWhat is checked or recorded
RequestThe app or the policyThe sensitivity of the action and the required level
EvaluationOktaThe session, the policy rules, and the context signals
ProofThe user and the deviceThe factor used and, where required, user verification
UpdateOktaThe new level and the new proof time on the session
TokenOktaSigned claims for level, methods, and time
VerificationThe appSignature, level, and freshness of the token
RecordOkta and the appEvents that tell the story of who did what and when

What is stored and what is not

Okta stores the facts about the sign-in, such as which kind of factor was used and when. It does not store your fingerprint. When a person uses a fingerprint on a laptop or phone, the device checks it locally and then uses a protected key to answer Okta. Okta only sees the signed answer. This is a privacy-friendly design, and it is worth saying so when users ask whether their body data is being collected.

Analogy

When you unlock your phone with a fingerprint, the phone does not email your fingerprint to anyone. It simply says “yes, the owner is here,” and that statement is all that travels. Step-up with biometrics works the same way.

21Security Considerations

Step-up is a security control, so attackers study it just as carefully as defenders do.

A well-designed step-up closes many doors, but it can also contain gaps. The most important risks come from poor checking, weak fallbacks, and tired users. Each one has a clear remedy.

Risk

Downgrade attacks

An attacker alters the request so that it asks for a lower level. The app must verify the level in the signed token, not assume it.

Risk

Weak fallbacks

If a user can bypass a strong factor by choosing a weak one, the strong one adds nothing. Remove weak options from high tiers.

Risk

Prompt fatigue

Repeated approvals can wear people down. Use number matching and user verification to make blind approval impossible.

Risk

Phishing

A fake site collects the password and the one-time code together. Phishing-resistant factors defeat this, because they check the real site address.

Risk

Token replay

A stolen token is used again. Short lifetimes, signature checks, and matching the token to the request reduce this.

Risk

Weak recovery

A help desk that resets factors on a phone call undoes the whole design. Recovery needs the same care as sign-in.

The weakest link rule

Security chains are as strong as their weakest link. If a critical app demands a hardware key, but the user can also choose a text message for the same app, the real strength is that of the text message. When you design a step-up rule, look at every method the rule allows and ask: if an attacker chose this one, would I still be comfortable? If not, remove it from that rule.

!
Warning

Beware of “remember this device” or similar options on critical tiers. They can skip the very proof you are trying to demand. Allow them for low tiers if you wish, and turn them off for the apps that matter most.

Analogy

A vault with a steel door and a cardboard back wall is only as safe as the cardboard. Step-up rules need strong walls on every side, including the recovery route and the fallback factors that people tend to forget.

Session theft and why step-up helps

Many modern attacks do not guess passwords at all. Malicious software on a laptop, or a lookalike site that relays the real sign-in page, can capture a live session cookie after the user has finished a perfectly good sign-in. With that cookie, the attacker looks like the user. Step-up changes the value of that stolen cookie. Because the most dangerous actions demand a new proof that the attacker cannot produce, the stolen session can read ordinary data but cannot move money, change administrators, or export the customer list. The attacker is forced to attempt the hard part with no help from the stolen session.

This is also why freshness matters as much as strength. A strong proof from nine hours ago says little about who holds the keyboard now. Short windows on critical actions mean that even a patient attacker, who waits for the right moment, meets a fresh question at the worst time for them.

Privacy and least privilege

Context signals such as location, network, and device state are personal information. Collect only what a rule truly needs, explain it in your acceptable-use policy, and limit who can view the detailed logs. Apply the same least-privilege thinking to people: only the administrators who must edit authentication policies should hold that power, and ideally changes to critical policies should need a second person to review them. Security controls that are themselves tightly controlled earn trust from both auditors and employees.

Protect the policy itself

An attacker who becomes an administrator can simply weaken the rule. Limit who can edit authentication policies, ask for strong proof before they can do so, and watch the log for any change to policies that cover critical apps. A rulebook that anyone can quietly rewrite protects nothing.

22High Availability and Failure Scenarios

Plan for the day a rule locks out the wrong people or a service is unreachable.

Step-up adds one more thing that can go wrong at the exact moment people are doing important work. Planning for failure means you know what happens when the stronger proof is not available, and how to recover quickly without opening a hole.

What goes wrongWhat users seeHow to reduce the impact
A rule demands a factor that users have not enrolledA dead end at the step-up momentUse the soft version first, check enrollment numbers, and roll out in waves
A user loses the device that holds the strong factorCannot complete step-up, so cannot finish sensitive workEncourage two strong factors, and keep a safe, verified recovery process
A broad rule sits above a narrow oneThe wrong group gets the wrong levelReorder rules, and test with a user from each group
The app does not verify the returned tokenStep-up appears to work but gives no protectionAdd token checks and test with a deliberately weak sign-in
Freshness window too shortPeople are prompted again and againAdjust the window, and group related actions under one proof where safe
Okta or the network is unreachableStep-up cannot complete, so sensitive actions are blockedDecide in advance whether the action fails closed, and prepare a manual approval route
Device checks fail for healthy devicesManaged laptops are treated as unknownReview the device registration and health settings

Fail closed, with a plan

When the stronger proof cannot be obtained, a sensitive action should normally be blocked rather than allowed. Security people call this failing closed. It is the safe default, but it needs a plan so that the business is not stuck. For a critical action, such as an urgent payment, keep a documented manual route, for example approval by two named managers, so that people do not invent unsafe workarounds in a hurry.

i
Tip

Keep one or two emergency administrator accounts in a separate, carefully guarded policy. If a bad rule locks out all other administrators, these accounts let you repair it. Test them every few months, and store their credentials in a secure vault.

23Monitoring, Logging, and Metrics

A rule you cannot observe is a rule you cannot improve.

Okta keeps a searchable record of events called the System Log. It shows sign-ins, factor use, policy decisions, and administrator changes. Event names and wording vary between releases, so if a name below does not match, search by user, time, and app name. Examples to look for include user.authentication.auth_via_mfa when a person passes a multi-factor check, user.authentication.sso when a person opens an app through single sign-on, and policy.evaluate_sign_on when Okta evaluates a sign-in against a policy. Many events also record which rule applied, which helps you check that your rules behave as intended.

Adoption

Step-up completion rate

Of all step-up prompts, how many ended in success. A low rate suggests confusing flows or missing enrollments.

Friction

Prompts per user per day

Tracks how often people are interrupted. A sudden jump after a policy change is a signal to review the freshness window.

Strength

Factor mix at step-up

Shows which factors people use for step-up, and whether weak ones still appear on critical tiers.

Risk

Failed step-ups

Bursts of failures for one user or many users can signal an attack, or a broken rule.

Governance

Policy and rule changes

Who edited which policy and when, so that quiet weakening of a rule is noticed.

Readiness

Enrollment of strong factors

The share of each group that can meet the next level, which tells you when a stricter rule is safe to turn on.

Useful alerts

  • A change to any policy or rule attached to a critical app.
  • A sharp rise in failed step-up attempts for one account, which may be an attack.
  • A user completing step-up from a new country within minutes of a sign-in elsewhere.
  • A weak factor appearing in a tier that should accept only strong ones.
  • A big drop in step-up success after a rule change.

Send these logs to your security monitoring tool if you have one, using Okta’s log streaming or event hooks. Combine Okta’s view with the app’s own audit log, because each side sees something the other does not. Matching the two by time and user is often the fastest way to explain a surprising event.

Analogy

A building with fancy locks but no entry log is hard to protect. When something goes wrong, nobody can say who went where. Logs are the visitor book of your digital building, and the stricter the door, the more valuable the book becomes.

24Advantages, Disadvantages, and Trade-offs

Step-up is a balancing act between safety and convenience. Here is an honest look at both sides.

Advantages

  • Strong protection exactly where the stakes are high.
  • Smooth, low-friction experience for everyday work.
  • Stolen sessions are far less valuable to attackers.
  • Rules live in one place and are easy to review.
  • Works with both policy-driven and app-driven designs.
  • Supports passwordless and phishing-resistant factors.

Disadvantages

  • Adds interruptions that users may dislike.
  • Needs enrollment planning, or users get stuck.
  • App-driven step-up requires developer work and careful token checks.
  • Rule order and conditions can be hard to reason about.
  • Strong factors can cost money and effort, such as hardware keys.
  • Poor wording or timing can create support calls.

Comparing the approaches

ApproachSecurityUser frictionEffortBest for
Strict proof for everythingHighVery highLowVery small, high-risk environments
One easy sign-in for the dayLowVery lowLowLow-risk tools only
Policy-driven step-up by tierHigh where it mattersLow to mediumMediumMost organizations
App-driven step-up per actionVery high where it mattersLowHighApps with clear sensitive actions
Context-based step-upHigh against unusual eventsLow on normal daysMedium to highMixed workforces and remote work

For most companies, the sweet spot is a mix: policy-driven tiers for whole apps, context rules for unusual situations, and app-driven step-up for a short list of especially dangerous actions. Start with the first, add the second when you have good data, and add the third where your developers can invest.

25Design Patterns and Anti-Patterns

A pattern is a habit that works. An anti-pattern is a habit that looks fine until it hurts.

Patterns that work

Pattern

Tiered apps

Sort apps into standard, careful, and critical tiers, and attach one shared policy to each.

Pattern

Soft first, strict later

Use the “if possible” version of a rule while people enroll, then switch to strict when the numbers are healthy.

Pattern

Action-level step-up

Ask for stronger proof only on the few actions that can cause real harm, not on every page.

Pattern

Verify the token

Always check the level and time in the returned token before acting.

Pattern

Phishing-resistant for admins

Give administrators and finance approvers the strongest factors, with user verification.

Pattern

Pilot, then widen

Test each rule with a small group and expand in waves.

Anti-patterns to avoid

ANTI-PATTERN 01Avoid
What it looks like

The app asks Okta for a higher level, but never checks the token that comes back. As long as the user returns from Okta, the action is allowed.

Why it hurts

An attacker can change the request or skip the step entirely. The app then offers the appearance of step-up with none of the protection.

Better approach

Verify the signature, the level, and the time in the signed token, and reject any action that falls short.

ANTI-PATTERN 02Avoid
What it looks like

Every app is placed in the strictest tier, so people are asked for a hardware key to open the cafeteria menu.

Why it hurts

People grow tired and start approving anything, or they push for exceptions. The rules lose respect, and real protection weakens.

Better approach

Use tiers, and keep the strictest rules for the apps and actions that truly deserve them.

ANTI-PATTERN 03Avoid
What it looks like

A rule demands a phishing-resistant factor from a group in which nobody has registered one.

Why it hurts

The group is locked out of the app on the day the rule goes live, and the help desk is flooded.

Better approach

Check enrollment first, use the soft version during the rollout, and give people time and clear instructions.

26Best Practices and Common Mistakes

These habits separate a smooth rollout from a stressful one.

1

Start with a risk list

Write down which apps and actions are sensitive, and why, before touching any setting.

2

Use a small number of tiers

Three tiers are easy to explain, teach, and audit.

3

Match rules to enrollment

Never demand a factor that people cannot yet register.

4

Prefer strength over frequency

A single strong, phishing-resistant proof beats many weak prompts.

5

Verify, log, and review

Check tokens in apps, monitor events in Okta, and review rules on a schedule.

6

Communicate before you change

Tell people what will happen, when, and where to find help.

7

Keep a recovery route

Have a verified process and emergency accounts so a bad rule is never a disaster.

A short checklist before turning on a stricter rule

  • Purpose: Can you state in one sentence why this rule is needed?
  • Audience: Do you know which groups and roughly how many people it affects?
  • Readiness: Have enough of them enrolled the factors the rule will demand?
  • Order: Is the rule in the right place, with specific rules above broad ones?
  • Test: Have you signed in as a test user from each affected group?
  • Message: Do people know what to expect and where to get help?
  • Rollback: Do you know how to undo the change quickly if needed?

Measuring success after launch

A step-up program is working when attackers are stopped and employees barely notice. Pick a few simple measures before you start, and review them monthly for the first quarter. Useful measures include the share of sensitive actions protected by a stronger proof, the percentage of users in critical groups who have enrolled a phishing-resistant factor, the average number of step-up prompts per person each week, and the number of support tickets that mention the new prompts. Compare these numbers with your baseline from before the change.

If protection is rising while tickets stay flat, you are on the right track. If tickets climb, read them for patterns: they usually point to a single confusing message, a missing enrollment, or a window that is too short. Fix the cause, tell people what changed, and keep going. Over time, widen the program carefully, moving more actions into the stronger tiers as users grow comfortable and as the strong factors become part of everyday habit.

Mistakes seen again and again

!
Mistake

Setting the freshness window to “every sign-in” for a busy app and then wondering why people complain. Match the window to how people really work.

!
Mistake

Forgetting that the app also has its own session. A stronger Okta proof does not help if the app ignores it and keeps its old, weaker session alive.

!
Mistake

Rolling out a strict rule on a Monday morning or just before a financial deadline. Choose a calm week, so support can absorb the questions.

27Real-World Scenarios

These stories are illustrative, built from common patterns, to show the ideas at work.

A software company protecting production access

Engineers sign in to the company’s tools with a prompt on their phones. But the cloud admin console, which can change production systems, sits in the critical tier. Opening it asks for a hardware-backed fingerprint check from the last few minutes. A stolen session from a laptop is now useless for changing production.

A finance team approving transfers

The payments app asks Okta for a phishing-resistant proof only when a transfer passes a limit or a new payee is added. Routine work stays smooth, and the few risky moments get the strongest check.

A company with many remote workers

Workers sign in from home, cafes, and travel. A context rule lets known managed laptops on familiar networks continue smoothly, and asks for a stronger proof when a sign-in comes from a new country or an unregistered device. People notice fewer prompts than before, and security notices more attacks.

An HR system holding personal data

The HR portal is a ready-made SAML product with no per-action control. The company attaches a careful-tier policy that asks for two factors with user verification every few hours, and limits access to named HR staff. The app stays unchanged, and the risk drops sharply.

28Troubleshooting Common Problems

Most step-up problems come from a short list of causes. Check these first.

SymptomLikely causeWhat to try
The user is never asked to step upThe app uses a policy with no stricter rule, or a broader rule matches firstReview the app’s policy and the order of its rules
The user is asked every few minutesThe freshness window is too short, or the app requests fresh proof on every actionLengthen the window, and group actions under one proof where safe
The user cannot complete step-upThey have not enrolled the required factorCheck enrollment, help them register, or use the soft version for now
The app allows the action even without step-upThe app does not verify the returned tokenAdd checks for the signature, level, and time
Dashboard click prompts, but the app’s direct link does notDifferent paths use different settingsTest both paths and align the app and policy settings
Strict rule applies to the wrong groupRule order or group membership is wrongCheck which rule matched in the log, and reorder or fix groups
Managed laptops are treated as unknownDevice registration or health checks are incompleteReview device registration and the device conditions in the rule
Step-up works for some browsers onlyThe factor is not supported in every browser or operating systemCheck browser support for the factor and offer a supported alternative

Testing step-up before and after launch

Treat every step-up rule like a small software release. Before launch, write down the test cases: a user with a strong factor, a user with only a weak factor, a user with no factor, a user on a managed device, a user on an unknown device, and a user whose last proof is just inside or just outside the freshness window. Run each case on each path into the app, including the dashboard tile, the direct link, and any mobile app. Record what you expected and what you saw.

After launch, repeat a short version of the same tests whenever you change a policy, add an app to a tier, or update the app’s own sign-in code. Many teams automate the app-side checks, so a developer change that accidentally stops verifying the token fails a test instead of reaching production. A few minutes of regular testing prevents the quiet failures that are hardest to notice, namely the ones where nothing breaks and protection simply disappears.

A repeatable troubleshooting routine

1

Confirm the user and their groups

Groups decide which rule applies, so start with who the person is and what groups they belong to.

2

Find the rule that matched

Look in the System Log for the policy evaluation and read which rule applied.

3

Compare with what the user has

Check which factors the user has enrolled against what the rule demands.

4

Check the app side

For app-driven step-up, read the request the app sent and the token it received.

5

Reproduce with a test user

If a test user from the same group sees the same thing, the cause is in the rule or the app. If not, look at the user’s device or enrollment.

29Frequently Asked Questions

Q1What is the difference between step-up authentication and MFA?
MFA asks for more than one kind of proof when a person signs in. Step-up asks for stronger or fresher proof later, in the middle of a session, for a sensitive app or action. A company can use MFA for every sign-in and still add step-up for its riskiest moments.
Q2Do users have to sign in again from the start during step-up?
Usually not. They keep their session, and Okta asks only for the extra proof. If their existing session already meets the requirement, Okta may let them through with no prompt at all.
Q3Can I use step-up without changing the app?
Yes, with policy-driven step-up. You attach a stricter authentication policy to the app in Okta. You cannot control individual actions inside the app that way, because Okta only sees the sign-in.
Q4How does an app ask Okta for step-up?
An app that uses OpenID Connect adds hints to its sign-in request: a required authentication context for strength, and a maximum age for freshness. Okta then compares those hints with the user’s session and asks for more proof if needed.
Q5What if the user has not enrolled the factor the rule demands?
They are stuck at the step-up moment. Avoid this by lining up your enrollment policy with your rules, using the soft version while people register, and giving clear help.
Q6Why must the app verify the returned token?
Because the signed token is the only trustworthy proof of what happened. A user or attacker could alter the request, so the app must check the signature, the level, and the time in the token before it acts.
Q7What does “phishing-resistant” mean?
It means the factor is tied to the real website address, so a fake lookalike site cannot capture and reuse it. Security keys and built-in biometric authenticators are common examples.
Q8How long should the freshness window be?
It depends on the risk. For the most sensitive actions, a proof from the last few minutes, or a fresh proof each time, is common. For medium risk, an hour or two may be reasonable. Review the logs after launch and adjust.
Q9Does step-up send my fingerprint to Okta?
No. The fingerprint or face scan is checked on the device itself. Okta receives only a signed answer that says the check passed.
Q10Can step-up work with SAML apps?
Yes, most often through a stricter policy attached to the app in Okta. Some SAML apps can also send a hint that asks for re-authentication, but support varies, so test it.
Q11Is context-based step-up reliable enough on its own?
No. Context signals are hints about risk, not proof of identity. Use them to decide when to ask for more, and keep strong factors as the real protection.
Q12Where do I configure this in Okta?
Authentication policies and their rules are managed in the Okta Admin Console under the Security area, and each app’s sign-on settings let you choose which policy it uses. Menu names can change between releases, so confirm against the current Okta documentation.

30Summary and Key Takeaways

Key Takeaways

  • Step-up raises the bar only when needed. It asks for stronger or fresher proof in the middle of a session, so everyday work stays smooth and risky moments get extra protection.
  • Think in strength and freshness. Strength is how hard the proof is to fake, and freshness is how recently it was given, and a good rule can demand either or both.
  • Policy-driven and app-driven work together. Authentication policies protect whole apps without code, while OpenID Connect requests protect individual actions inside apps.
  • Always verify the result. An app must check the signature, level, and time in the returned token, instead of trusting the redirect.
  • Enroll before you enforce. A rule is only fair if people can meet it, so line up your enrollment policy with your step-up rules and use soft options during rollout.
  • Protect the weak links. Remove weak fallbacks from critical tiers, secure recovery routes, and guard the policies themselves from quiet changes.
  • Design for people and watch the logs. Explain prompts, keep them rare, use number matching and user verification, and monitor completion rates, failures, and policy changes.