On this page

Replace Classic Engine auth flows with Identity Engine

You've upgraded to Okta Identity Engine. Now it's time to get the most out of your Identity Engine investment.

After an upgrade, many orgs continue to run Classic Engine authentication patterns. These include the Classic Engine Authentication API, Factors API, Sessions API, or an older self-hosted Sign-In Widget. These flows still work in Identity Engine, but they don't unlock Identity Engine's capabilities. They can block you from adopting stronger security controls, flexible authentication policies, or newer authentication methods like passkeys.

This journey helps you move from Classic Engine authentication to a supported Identity Engine flow. The guide helps you choose your deployment model, update your implementation, configure policies, and validate changes.

Before you begin

  • Your Okta org has been upgraded to Identity Engine and is stable.
  • You have developer-level access to your app code.
  • You have admin access to your Okta org (super admin or app admin role).
  • You have an inventory of apps that use Okta and their deployment patterns.

Understand Identity Engine authentication

Before you change anything, understand Identity Engine's authentication pipeline, and then learn how it differs from Classic Engine.

Plan your modernization approach

Decide which deployment model to target, audit Classic Engine API dependencies, and plan for the visible UX change.

Essential planning guides

These resources frame your modernization decisions, session behavior, and the identifier-first UX change before implementation:

Audit your Classic API dependencies

Use the Audit your Classic API dependencies guide to help you inventory those Classic Engine dependencies across your apps. Map each one to the Identity Engine path that replaces it.

Implement your chosen deployment model

After you review the deployment models and select one that fits your app's architecture, it's time to implement. Follow the implementation steps for your chosen path (A, B, C, or D). Then configure your authentication policies and validate the modernized flow before rolling it out to production.

Choose your build path

Follow the build path for your chosen deployment model. Each path links to focused implementation guides.

This path offloads the sign-in experience to Okta using SAML, OIDC, or OAuth. Okta handles the sign-in UI, security policies, and support for new tools like passkeys, WebAuthn, and YubiKeys. Your app remains future-proof and doesn't need rebuilding as authentication technology evolves.

Path B: Self-hosted Sign-In Widget (Gen2)

The third-generation (Gen3) widget is Okta-hosted and not supported for self-hosted embedding. If you need to embed directly in your app, use the Gen2 self-hosted widget instead.

Path C: Embedded SDK or Auth.js

This path uses the Okta Identity Engine SDK or Auth.js. Your app implements authentication directly in your own UI. Use it when you need full control over the flow and experience. Your team owns the security, maintenance, and SDK updates.

Path D: Direct Authentication APIs

This path calls the Okta Direct Authentication APIs to authenticate users without a browser redirect. Use it for native, command-line, server-side, service-to-service, or machine-to-machine scenarios. Your app must carefully handle credential and authenticator-response security.

Set up direct authentication for native, server-side, or machine-to-machine scenarios without browser redirects.

Configure your authentication policies

Authentication policies in Identity Engine replace Classic Engine app sign-on policies. Configure them to define how users must authenticate in your apps.

Validate your modernized flow

Before you launch your new flow, confirm that everything works:

Your SSO flow modernization is complete when you validate the following items:

  • Users can sign in and sign out through an Identity Engine-supported flow.
  • No active calls go to the Classic Engine Authentication API, Factors API, or Classic Engine Sessions API patterns.
  • Your widget or SDK version is current and supported.
  • Your authentication policies are configured in Identity Engine and match your security requirements.
  • The identifier-first sign-in experience is tested and working.

Go further