Overview
Auth0 has no built-in “add an external identity provider as an authentication factor” setting that Persona can plug into with configuration alone. Bringing Persona into an Auth0-protected login flow means writing custom code against Auth0’s Actions extensibility framework.
This article gives high-level guidance and links to Auth0’s own documentation, rather than a full click-by-click walkthrough. It uses Auth0’s general-purpose extensibility framework rather than a Persona-specific setting, so the implementation is specific to your tenant. Auth0’s documentation is the source of truth for the details.
Persona as a custom step-up authentication factor
To use Persona as a step-up factor, for example requiring a selfie check before a password reset or before access to a sensitive resource, you write a post-login Action that, at a high level:
- Checks
event.authentication.methodsfor a record showing the user already completed the Persona factor recently; if not, callsapi.redirect.sendUserTo()to suspend the login and send the user to a page that starts a Persona inquiry. - After the user completes the inquiry, redirects back to Auth0’s
/continueendpoint to resume the login. - In the
onContinuePostLoginhandler, the only handler this call is allowed in, callsapi.authentication.recordMethod()to record that the custom factor completed, so later logins in the same session don’t unnecessarily re-trigger it.
Write verification results back to the user record using the Auth0 Management API, for example to app_metadata, rather than relying on front-channel query parameters, which a user can tamper with in the browser.
Because this path is entirely custom code running in your tenant, review Auth0’s Redirect with Actions documentation in full before implementing it, including its notes on how a redirect interacts with prompt=none silent authentication and refresh tokens.
Need help?
Reach out to Persona support with details about your Auth0 tenant configuration.
Plans Explained
Auth0 Integration by plan
| Startup Program | Essential Plan | Growth Plan | Enterprise Plan | |
|---|---|---|---|---|
| Auth0 Integration | Not Available | Not Available | Limited | Available |