customer identity

Auth0 sign-in that customers actually finish, and that agents can't abuse.

We build Auth0 tenants for consumer and B2B apps and move users off homegrown login without forcing password resets. Hooks stop running after 30 April 2027 and Rules after 31 January 2028, so we also move that logic into Actions. When your product starts acting on users' behalf, we wire up Auth0 for AI Agents.

platform dossierAuth0Customer identity
Vendor
Okta, as its customer identity platform
Next deadline
Custom DB import change 20 Jan 2027
Later deadlines
50KB profile cap 4 Mar 2027; Hooks stop 30 Apr 2027; Rules stop 31 Jan 2028
Latest SDK fixes
auth0.js 10.3.0, java-jwt 4.6.2, nextjs-auth0 4.32.0 (13 Oct 2026)
release watch
  • Rules and Hooks end of life30 Apr 2027
  • Custom database user import changes20 Jan 2027
connects with
in short·15-second read

Cohash builds and migrates Auth0 tenants for customer and B2B apps, including Universal Login, Organizations and Actions, and moves users off legacy stores without a mass password reset.

Hooks stop running after 30 April 2027 and Rules after 31 January 2028, so move that logic to Actions. For AI agents we set up Token Vault and Auth for MCP.

you probably need this if
  • Sign-in runs on a homegrown table of password hashes that every pen test flags.
  • Business customers ask to sign in with their own Okta or Entra ID, and every one of those turns into a custom build.
  • A customer changes their email in account settings, and Salesforce or Dynamics still shows the old one.
terms on this page RulesdefinitionThe JavaScript snippets Auth0 used to run at login. Someone would write one to add a role to the token or block a sign-in, and each one ran after the last.explained in a field note →HooksdefinitionOlder Auth0 scripts for moments outside login. Someone might have used one to stamp machine-to-machine tokens or check sign-ups, and then forgotten about it.explained in a field note →ActionsdefinitionThe replacement for both. Each one is a small JavaScript function you attach to a trigger such as post-login. It carries its own secrets, and other Actions can't read them.explained in a field note →tenantdefinitionYour company's Microsoft account. Every environment draws on one shared pool of storage, so a bloated test copy hits everyone.explained in a field note →Identity providerdefinitionWhatever checks your password and MFA and then tells each app you're signed in. Okta and Entra ID both play that role, and admins call it the IdP.explained in a field note →
Ask an engineer facts checked 2026-11-08
how it runs
  1. 01Tenant or login review
  2. 02Tenant and login design
  3. 03Migration rehearsal
  4. 04Launch and CRM sync
  5. 05Handover
you keep
  • Tenant configuration in source control, deployed with the Auth0 Deploy CLI
  • A migration plan we've already run once against a copy of your legacy user store
  • Actions code with unit tests, and a versioned deploy pipeline so a bad release can be rolled back
+ 3 more documents
who does it
Auth0 CIAM developer (Actions, Universal Login)Auth0 B2B Organizations engineerCIAM architect Auth0 Certified Developer
platforms
auth0 · release timeline
  1. 19 Nov 2025 Auth0 for AI Agents generally available Token Vault is where your agent's Slack or GitHub tokens belong, so they stay out of your own database. For anything risky, asynchronous authorization holds the agent until someone approves. Auth0 for AI Agents went GA on 19 November 2025 with those two features, plus User Authentication and Fine-Grained Authorization for RAG.
  2. 6 May 2026 Auth for MCP generally available Auth for MCP went GA on 6 May 2026. Its On-Behalf-Of token exchange lets an MCP server trade the user's access token for one a downstream API will accept, and the new token still belongs to that user. The release also added CIMD client registration. FGA Permissions Index reached Early Access on 18 September 2026.
  3. 8 Sep 2026 AD/LDAP Connector vulnerabilities Check every host that runs the AD/LDAP Connector and upgrade it to 8.0.0, which fixes two of the flaws published on 8 September 2026. The bad one is CVE-2026-85982, a stored cross-site scripting bug scored CVSS 9. The other, CVE-2026-85983, lets someone with a low-privileged local account on the connector host escalate (CVSS 7.8).
  4. 1 Oct 2026 Refresh tokens are getting longer Auth0 said on 1 October 2026 that new refresh tokens would get longer than today's roughly 45 characters in the coming weeks. Code that checks for exactly 45 characters will break, and so will a VARCHAR(45) column or a regex with a maximum length. Make those columns variable-length now. Tokens already issued stay valid until they expire or get revoked.
  5. 13 Oct 2026 Security fixes for four Auth0 SDKs Okta published four advisories on 13 October 2026, scored 5.3 to 6.1 on CVSS. Front ends on auth0.js 9.12.0 to 10.2.1 need 10.3.0, and Lock users on 10.9.0 to 15.0.1 need 13.2.1 or 15.0.2. Java services on java-jwt 4.0.0 to 4.6.1 need 4.6.2, and nextjs-auth0 apps need 4.32.0. All four sit in the sign-in path, so put the upgrades in your next release.
  6. 22 Oct 2026 Unblock mode for brute-force protection Brute-force protection now has an Unblock Behavior setting. Automatic is still the default and unblocks the account as soon as the link loads, so an email link scanner that pre-loads links can unblock it. Manual makes the user click a confirm button. If your customers' mail filters scan links, switch to Manual under Security, Attack Protection.
  7. 23 Oct 2026 Enhanced Security for Third-Party Applications Since end of life on 23 October 2026, Auth0 applies strict security controls automatically to new third-party applications created without third_party_security_mode. Apps that already existed didn't change. If a script or pipeline creates third-party apps for you, set the mode explicitly and configure default API permissions, so new apps don't behave differently from the old ones.
  8. today · Nov 09, 2026
  9. 20 Jan 2027ahead Custom database user import changes Auth0 is changing how custom database connections import first-time users. Today a password reset or a breached-password block can leave a half-imported user who doesn't show up in the Users view or the Management API. Tenants created by 12 October 2026 keep the old behavior until 20 January 2027, and after that Auth0 enforces the new one. If you run a lazy migration, turn on the Dashboard toggle early and rerun your migration tests.
  10. 4 Mar 2027ahead User profile data capped at 50KB Auth0 deprecated uncapped user profile data on 4 August 2026, and the old behavior reaches end of life on 4 March 2027. Profiles over 50KB that still fit the extended allowance keep working for now, but every operation on them writes a warning to the tenant logs. Look for those warnings now and work out which profiles carry too much metadata.
  11. 30 Apr 2027ahead Rules and Hooks end of life Any Hook still in your tenant stops running after 30 April 2027, and any Rule after 31 January 2028, and Auth0 removes them. They've been read-only since 18 November 2024, so you can't patch the code in the meantime either. Port each one to an Action, test sign-in in staging, and make sure your CI/CD pipeline isn't still trying to deploy them.
the story · auth0 estate

From the first call to a setup your own team can run.

Here's what usually prompts a call about your Auth0 estate, what we do about it and in which order, and where you end up.

  1. chapter 01 · where it hurts

    Why teams reach out

    • Sign-in runs on a homegrown table of password hashes that every pen test flags.
    • Business customers ask to sign in with their own Okta or Entra ID, and every one of those turns into a custom build.
    • A customer changes their email in account settings, and Salesforce or Dynamics still shows the old one.
  2. chapter 02 · what we change

    How we solve it

    • Tenant design and Universal Login
    • User migration
    • B2B and Organizations
    • Actions and extensibility
    • Auth0 for AI Agents
    • Attack protection and MFA
  3. chapter 03 · how it runs

    Our approach

    • Tenant or login review
    • Tenant and login design
    • Migration rehearsal
    • Launch and CRM sync
    • Handover
  4. chapter 04 · where you end up

    What changes

    • Users keep their passwords, and on day one nobody notices a change.
    • Onboarding a new enterprise customer now takes a script and a checklist instead of most of a week.
    • Tenant configuration in source control, deployed with the Auth0 Deploy CLI
    • A migration plan we've already run once against a copy of your legacy user store
what we do

Our Auth0 work

6 kinds of Auth0 work, each run by engineers who have done it on live tenants.

  1. Development, staging and production tenants, custom domains, branding and a Universal Login flow tested on real devices. Tenant settings kept in source control so changes are reviewed.

  2. Automatic migration through a custom database connection, so users move on their next sign-in, or a bulk import when password hashes are compatible. We plan the cut-over with your support desk.

  3. Organizations, enterprise connections to your customers' Okta or Entra ID tenants, and invitation flows so each business customer manages its own users.

  4. Post-login and pre-registration Actions for enrichment, progressive profiling and fraud checks, versioned and tested like the rest of your code.

  5. Token Vault so agents call Google, Slack or GitHub with the user's consent, asynchronous authorization for approvals on sensitive actions, and fine-grained authorization so retrieval only returns documents the user may see.

  6. Bot detection, breached password detection, brute-force limits and MFA policies tuned against your real traffic instead of left on defaults.

capability 01 / 06in production

Tenant design and Universal Login

Development, staging and production tenants, custom domains, branding and a Universal Login flow tested on real devices. Tenant settings kept in source control so changes are reviewed.

capability 02 / 06in production

User migration

Automatic migration through a custom database connection, so users move on their next sign-in, or a bulk import when password hashes are compatible. We plan the cut-over with your support desk.

capability 03 / 06in production

B2B and Organizations

Organizations, enterprise connections to your customers' Okta or Entra ID tenants, and invitation flows so each business customer manages its own users.

capability 04 / 06in production

Actions and extensibility

Post-login and pre-registration Actions for enrichment, progressive profiling and fraud checks, versioned and tested like the rest of your code.

capability 05 / 06in production

Auth0 for AI Agents

Token Vault so agents call Google, Slack or GitHub with the user's consent, asynchronous authorization for approvals on sensitive actions, and fine-grained authorization so retrieval only returns documents the user may see.

capability 06 / 06in production

Attack protection and MFA

Bot detection, breached password detection, brute-force limits and MFA policies tuned against your real traffic instead of left on defaults.

typical situations

Auth0 situations we walk into

We pieced these together from Auth0 situations that come up a lot. They're patterns. You won't find a specific client in them.

case file 01

Two million users sitting in a Postgres table with bcrypt hashes

composite · not a client story
  1. Beforethe situation

    A consumer app keeps its users in its own Postgres database with bcrypt hashes and a homegrown reset flow. Pen tests flag the reset tokens every year, and marketing wants social login before the spring campaign.

  2. What we dothe work

    We confirm the hashes can be bulk imported and run the import into a staging tenant first. Universal Login with social connections goes live behind a feature flag. The old reset endpoint is removed once sign-in traffic has moved.

  3. Afterwhere you end up

    Users keep their passwords, and on day one nobody notices a change. The homegrown reset flow gets deleted. Social login goes live on the same user store, so there's no second one to keep in sync.

case file 02

B2B SaaS where every enterprise customer wants its own SSO

composite · not a client story
  1. Beforethe situation

    Forty enterprise customers sign in through their own Okta or Entra ID. Each connection was set up by hand with no naming rules, and onboarding a new customer takes a support engineer most of a week.

  2. What we dothe work

    We put every enterprise customer in its own Auth0 Organization with its connection attached, and script the setup through the Management API. Customer admins manage their own users through an invitation flow.

  3. Afterwhere you end up

    Onboarding a new enterprise customer now takes a script and a checklist instead of most of a week. Each customer's users stay in their own Organization, and nobody touches connections by hand anymore.

case studies

Auth0 case studies

All case studies
upgrade Identity and access

Moving Auth0 Rules and Hooks to Actions before Auth0 switches them off

Moving Auth0 Rules and Hooks to Actions before Hooks stop on 30 April 2027 and Rules on 31 January 2028, with token claims checked before and after each change.

read the case study
implementation Identity and access

Homegrown customer login to Auth0 or Okta Customer Identity

We swap homegrown customer login and its user table for Auth0, move users without forcing password resets, and keep the CRM records in sync.

read the case study
modernization Applications

.NET Framework and .NET 8 to .NET 10

Both .NET 8 and .NET 9 hit end of support on 10 November 2026. Moving them, and older .NET Framework apps, to .NET 10 LTS one project at a time.

read the case study
implementation Industry platforms

TriZetto Facets upgrades and CMS-0057-F interoperability APIs

Keeping TriZetto Facets current while we build the Provider Access, Payer-to-Payer and Prior Authorization APIs that CMS-0057-F requires by January 2027.

read the case study
upgrade Applications

Mobile apps for Android 16 KB pages, passkeys and store deadlines

We keep Android and iOS apps shippable as Google Play's target API and 16 KB page rules and Apple's SDK minimums change, and add passkey sign-in.

read the case study
AI rollout AI and agents

Identity, scopes and audit for AI agents and MCP servers

Giving AI agents their own identities, putting remote MCP servers behind OAuth with per-tool scopes, and logging which agent did what for whom.

read the case study
approach

How a Auth0 engagement runs

We don't start a step until the last one has produced something you can check.

  1. step 01

    Tenant or login review

    If you already run Auth0, we start by reading the tenant's settings, connections, Actions and logs. If you don't, we read your current login code and user store instead. Either way you get a list of what needs deciding before anything is built.

  2. step 02

    Tenant and login design

    Development, staging and production tenants, a custom domain, Universal Login and Organizations planned up front, with tenant configuration exported to source control through the Auth0 Deploy CLI.

  3. step 03

    Migration rehearsal

    We test a custom database connection with automatic migration against a copy of the legacy user store. That way we see how sign-in, password resets and duplicate emails behave before a real user hits them.

  4. step 04

    Launch and CRM sync

    We shift traffic to Universal Login a slice at a time and watch the tenant logs as it goes. Meanwhile we check that post-login Actions are keeping Salesforce or Dynamics 365 contacts up to date.

  5. step 05

    Handover

    You get runbooks for tenant changes, Action deploys and attack protection tuning. We also walk your team through what drives the monthly active user count, since that's the number the bill follows.

architecture

Follow one sign-in through Auth0. It ends with an update in Salesforce or Dynamics 365

Web, mobile and agent sign-ins all land on Universal Login. It checks credentials against the right connection, and someone still in the legacy store gets migrated on their first sign-in. After that, Actions push profile changes to Salesforce or Dynamics 365. Agents fetch their third-party API tokens from Token Vault when they need them.

Follow one sign-in through Auth0. It ends with an update in Salesforce or Dynamics 365 Web, mobile and agent sign-ins all land on Universal Login. It checks credentials against the right connection, and someone still in the legacy store gets migrated on their first sign-in. After that, Actions push profile changes to Salesforce or Dynamics 365. Agents fetch their third-party API tokens from Token Vault when they need them. 01 · APPLICATIONS 02 · AUTH0 TENANT 03 · SYSTEMS DOWNSTREAM OIDC sign-in OIDC with PKCE authenticate lazy migration post-login trigger profile sync profile sync token exchange OAuth access token Web app SPA · server-rendered Mobile app iOS · Android AI agent acts for the signed-in user Universal Login passwords · passkeys ·MFA Connections database · social ·enterprise Actions post-login ·pre-registration Token Vault third-party API tokens Sf Salesforce Contact · PersonAccount D365 Dynamics 365 Contact records Legacy user store automatic migration source Third-party APIs Google · Slack · GitHub © Cohash · cohash.com
01 · APPLICATIONS02 · AUTH0 TENANT03 · SYSTEMS DOWNSTREAM Web app: SPA · server-rendered Web app SPA ·server-rendered Mobile app: iOS · Android Mobile app iOS · Android AI agent: acts for the signed-in user AI agent acts for thesigned-in user Universal Login: passwords · passkeys · MFA Universal Login passwords ·passkeys · MFA Connections: database · social · enterprise Connections database · social· enterprise Actions: post-login · pre-registration Actions post-login ·pre-registration Token Vault: third-party API tokens Token Vault third-party APItokens Salesforce: Contact · Person Account Salesforce Contact · PersonAccount Dynamics 365: Contact records Dynamics 365 Contact records Legacy user store: automatic migration source Legacy userstore automaticmigration source Third-party APIs: Google · Slack · GitHub Third-partyAPIs Google · Slack ·GitHub OIDC sign-in OIDC with PKCE lazy migration profile sync profile sync token exchange OAuth access token © Cohash · cohash.com
use cases

Typical Auth0 projects

The work teams usually bring us, and the platforms Auth0 has to talk to while we do it.

  1. AUT-01 The login is homegrown, and every security review flags it again common request
  2. AUT-02 Old Rules or Hooks still run your login logic, and Hooks stop running after 30 April 2027, Rules after 31 January 2028 common request
  3. AUT-03 You sell to businesses that want their staff to sign in with their own identity provider common request
  4. AUT-04 Your product is adding agents that call other companies' APIs for users, and nobody has worked out the tokens yet common request
  5. AUT-05 You need users on Auth0 without making every one of them reset a password common request
  6. AUT-06 Active users keep growing, and finance wants to know what's driving the Auth0 bill common request
you keep

What a Auth0 engagement leaves behind

These are working documents, written against your configuration, so your team can run them without us.

  • evidence01

    Tenant configuration in source control, deployed with the Auth0 Deploy CLI

    yours to keep
  • plan02

    A migration plan we've already run once against a copy of your legacy user store

    yours to keep
  • tests03

    Actions code with unit tests, and a versioned deploy pipeline so a bad release can be rolled back

    yours to keep
  • runbook04

    Support gets a runbook and can add the next B2B customer's enterprise connection themselves

    yours to keep
  • document05

    Attack protection settings tuned against your tenant logs, with the reasoning written down

    yours to keep
  • tests06

    A scope map for every MCP server and agent, and tests proving the calls that should fail actually fail

    yours to keep
talent and delivery · auth0

Certified engineers, wherever you need them.

Some clients want a project team, some want a couple of engineers on theirs. Either works. Onsite, nearshore or offshore, with handovers across time zones that keep things moving.

Onsite

Engineers at your sites in the US

Nearshore

Overlapping hours with US teams

Offshore

Overnight progress on your backlog

All time zones

Coverage handed over across time zones

24-hour coverage · US Central time
OnsiteUS business hours
Nearshoreoverlapping US hours
Offshoreovernight progress
Combinedhandover, not hand-off
certifications our engineers hold
  • Auth0 Certified DeveloperOkta
roles we staff
  • Auth0 CIAM developer (Actions, Universal Login)
  • Auth0 B2B Organizations engineer
  • CIAM architect
  • Auth0 user migration engineer
  • Front-end developer for Auth0 SDKs
01We still have Rules and Hooks in our tenant. What happens when they reach end of life?

Hooks stop running after 30 April 2027 and Rules after 31 January 2028, and Auth0 removes them, so whatever login logic still lives in one simply stops happening. They've been read-only since 18 November 2024, which means you can't patch them in the meantime. List what each Rule and Hook does, rebuild it as an Action, and test sign-in in staging before the old ones go away.

02We're still on old Auth0 SDK versions. Which releases fix the October 2026 advisories?

auth0.js 10.3.0, auth0-lock 13.2.1 or 15.0.2, auth0/java-jwt 4.6.2 and nextjs-auth0 4.32.0. Okta published all four advisories on 13 October 2026. If you also run the AD/LDAP Connector, it needs 8.0.0 for two September CVEs, one of them scored CVSS 9. Check lockfiles and Maven or Gradle builds too, not only the top-level manifest.

03What drives the cost of an Auth0 implementation?

Mostly the number of applications, how users are migrated and how much custom logic lives in Actions. A single app with social login is small work. Several apps, B2B Organizations with enterprise connections, and a lazy migration from a legacy database take longer. The Auth0 subscription itself is priced separately by Okta.

04Should we use Auth0 or Okta Workforce Identity?

Use Auth0 when the people signing in are your customers or your business customers' users. Employees and contractors signing into your own business apps belong in Okta Workforce Identity. Plenty of companies run both, and we'll help you decide where each kind of user goes.

05Can you secure the MCP server our agents use?

Yes. Auth for MCP has been generally available since 6 May 2026. We register the MCP server as an API, give each tool its own scope, and test that an agent's token can't reach a tool the user never allowed. CIMD with dynamic registration went into Early Access on 22 October 2026 and lets MCP clients connect without an admin registering each one, so decide early whether you'd rather keep a manual approval step.

06Can you also move us off Cognito, Firebase or a custom user table?

Yes. The question is whether we can export the existing password hashes. If we can, it's a bulk import. If we can't, a custom database connection moves each user over the next time they sign in. Auth0 changes how those connections import first-time users on 20 January 2027, so we test new migrations against the new behavior.

07How long does a move from a homegrown login to Auth0 take?

It depends on how many applications share the login, whether the password hashes can be exported, and how much logic sits in the current sign-up flow. One app with importable hashes is a short project. Several apps and an on-sign-in migration that runs until inactive users age out take longer. We size it after reading the current code and user store.

services

Related services

Projects on Auth0 usually end up touching one of these, so they're worth a look.

fact-checked Checked against vendor and official documentation last checked 2026-11-08 content fingerprint df4b588f
  1. 01Book a 30-minute working sessionsenior engineer
  2. 02Talk to an engineer about your setupreply within 24 hours
  3. 03See how similar projects wentcase studies
Reviewed by the Cohash team Auth0 is a trademark of its owner, used here to identify the platform. how we handle facts and data →
next step

Tell us what you're running. We'll tell you what we'd do first.

A 30-minute working session with a senior engineer. No slides.

useful to bring
  • The platform and the version you're on
  • Where you need to get to, and by when
  • What's custom: rules, plugins, integrations
  • Any audit finding or deadline driving it