Migrate to Kinde from Auth0

Link to this section

This guide is designed to help you migrate from Auth0 to Kinde.

Switching between providers for any service can be daunting, and especially where user data is involved. We’ll walk you through the process or migrating, to take some of the pain away.

Still not sure about moving to Kinde?

Link to this section

If you want to compare Kinde with Auth0, this page has some useful information.

A key point to note is that Kinde is OAuth2/OIDC compatible, issuing similar tokens to Auth0. You only need to update the token claims when you migrate.

Step 1: Prepare to migrate

Link to this section

Get a Kinde account

Link to this section

If you haven’t already got a Kinde account, register for free here (no credit card required).

Review the user data you want to bring across

Link to this section

While there is parity in function for basic user data in Auth0 and Kinde, e.g. email, first name, last name, etc. Some other information objects are treated differently. Review the <Migrating other objects/data> topic below before you migrate.

Choose a migration approach

Link to this section

Kinde supports your migration, however you want to do it. You can migrate:

  • all your users with their hashed passwords in one go, so they don’t need to re-authenticate.
  • users first and passwords later, in batches.
  • user details without passwords - allowing users to set up their password again. (Skip Step 2, below)
  • user details without passwords - and change the authentication method. (Skip Step 2, below)

Set up authentication in Kinde

Link to this section

Before you migrate users, we recommend you set up the authentication methods you want, in Kinde. You can replicate the auth methods you currently use with Auth0, or set up new methods for users to adopt when they next sign in, e.g. passwordless.

You might also want to set up roles in Kinde, before you import.

Step 2: Request hashed password file from Auth0

Link to this section

Auth0 does not allow you to export hashed passwords from your account yourself, it needs to be requested from Auth0 support.

  1. Raise a support ticket.
  2. Select the issue and details of your request.
  3. Choose I have a question regarding my Auth0 account and then pick the I would like to obtain an export of my password hashes option.

It usually takes 1 or 2 weeks and then they send you an email with a .json file containing the hashed passwords.

🔒 During migration, passwords are never exposed in plain text. Neither Kinde, Auth0, nor you ever have access to passwords.

Can’t get the passwords from Auth0?

Link to this section

Some Auth0 plans don’t allow password exports, or you might not want to wait 2 weeks for the json file. If this is the case, import the user data you’re able to, and Kinde will ask users to set a new password the next time they sign in.

Step 3: Get the Auth0 extension to export users

Link to this section

Auth0 doesn’t have an export option by default, so you’ll need to install an export extension.

  1. Go to Auth0 Dashboard > Extensions, and select User Import / Export.
  2. When prompted, select Install.

You’ll now see it in your list of installed extensions. The first time you launch it, you’ll be asked to grant permission for the extension to access your Auth0 account.

Step 4: Export user data from Auth0

Link to this section
  1. Launch the extension by selecting Import / Export Extension.
  2. Export your existing Auth0 users associated with database connections, select Export.
  1. Select Add default fields to add the majority of fields.

  2. You’ll also want to add the following fields: pp_metadatablocked,  user_metadata,  username,  last_ip,  last_loginlogins_countmultifactor,  name,  phone_number,  phone_verified.

    ℹ️ The only mandatory information required for user import to Kinde is a user identifier, like an email or phone number. But including as much data as you can, makes for a more seamless transition to Kinde.

  3. Change the Export Format to .csv.

  4. When you’re ready, click Export [X] Users. (X is the number of users you’re exporting).

  5. Once the export is complete, select Download to get the file containing your user’s information. This is the main file you’ll need to migrate your users; the other file is the password hashes.

Step 5: Import user data into Kinde

Link to this section

Before you import users into Kinde, you might want set up any required configuration manually or using the Kinde management API. For example, set up auth methods, roles, etc. See Migrating other data.

  1. In Kinde, go to Users, then select Import users.
  2. Select Auth0.
  1. You’ll be presented with 2 options:
    1. Import users only - import users first and passwords after. You can also use this method if you want to allow users to reset their password or sign in another way.
    2. Import passwords only - only choose this if you have already imported users.
  2. Follow the on-screen prompts to import the data.
  3. If there are any errors with the import, you will be able to view them afterwards.
  4. Most import errors can be fixed by editing the CSV file and then re-importing into Kinde.

Once the password hashes have been imported into Kinde, your users will be able to sign in to Kinde with their existing password.

ℹ️ Allowance for soft migration. After import, the first time a user signs in using Kinde, their hashed password record, etc., will be updated. So if you are changing between systems and you export or re-import users, we will not update that user’s data again.

Migrating other objects and data

Link to this section

If you have other important objects that need to be migrated, such as organizations or roles, you can import them in a similar manner to above, or via the Kinde management API.

Before you migrate, however, be aware that the functionality of these objects may differ between Auth0 and Kinde. Here’s some similarities and differences to note:

  • Auth0 has the concept of Tenants which group other objects such as users and applications together. Kinde calls these Businesses and is set up to allow you to run multiple businesses with a single Kinde account.
  • Both Kinde and Auth0 have Organizations to allow you to build multi-tenant applications. The main difference being that Kinde treats organizations as a first class citizen.
  • Each business Kinde allows you to have multiple Environments and these contain organizations, users and applications.
  • In Auth0, Applications are what your users can sign in to. They are also called Applications in Kinde and work in essentially the same way.
  • In Auth0, Identity Providers are a source of data for users. Kinde calls these connections or authentication providers.
  • In Auth0, Roles and Permissions provide information about what your users can do in your applications. Kinde also has Roles and Permissions and they are assigned on a per user, per organization basis, meaning the same user can have different permissions in different organizations. For the Auth0 equivalent of user-level roles/permissions, use the default organization.
  • Kinde’s hosted sign up pages are a very similar concept to Auth0’s Universal Login (although ours look better 😉).

Help is always at hand

Link to this section

We’ve tried to make onboarding to Kinde as easy as possible, because we know it’s a pain to break up with your old provider. We’re here to help and can assist with your migration.

Please reach out in the support channels of our Slack or Discord community, or email us at support@kinde.com.


Talk to us

If you can’t find what you’re looking for in our help center — email our team

Contact support