{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"redocly_category":"Guides","type":"markdown"},"seo":{"title":"Migrate user store","description":"Everything about Mosaic Journeys, SDKs, and APIs","siteUrl":"https://developer.transmitsecurity.com/","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"migrate-user-store","__idx":0},"children":["Migrate user store"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Migrating to Mosaic from another authentication provider is designed to be seamless and secure. Whether you're transitioning from legacy systems or established identity providers like Okta, Auth0, Azure AD, or AWS Cognito, Mosaic supports flexible migration strategies that minimize disruption for your users."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"migration-approaches","__idx":1},"children":["Migration approaches"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["There are two primary ways to migrate users to Mosaic, depending on your requirements:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Full migration"]},": Transition entirely from your current provider to Mosaic, moving all user data, credentials, and roles. This approach is ideal when you want to fully replace your existing identity solution."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Just-In-Time (JIT) migration"]},": Migrate users gradually as they authenticate. When a user logs in, Mosaic validates their credentials against your existing IDP and automatically creates or updates their Mosaic profile. This approach allows for a smooth transition without requiring downtime or bulk data exports."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"jit-migration-methods","__idx":2},"children":["JIT migration methods"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Mosaic supports multiple authentication methods for JIT migration, allowing you to validate users against your existing identity provider:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Method"},"children":["Method"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Password authentication"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Validates username/password credentials directly against your existing IDP using ROPC (Resource Owner Password Credentials)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Email OTP authentication"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sends and verifies email one-time passcodes through your existing IDP."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["SMS OTP authentication"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sends and verifies SMS one-time passcodes through your existing IDP."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["TOTP authentication"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Validates time-based one-time passcodes generated in the user's authenticator app against your existing IDP."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["OIDC redirect"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Redirects users to your existing IDP for authentication using the OIDC Authorization Code flow."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"supported-identity-providers","__idx":3},"children":["Supported identity providers"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Mosaic's Integration Hub provides pre-built connectors for major identity providers. Journeys expose only the authentication methods an IDP supports."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Provider"},"children":["Provider"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"OIDC"},"children":["OIDC"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Password"},"children":["Password"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Email OTP"},"children":["Email OTP"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"SMS OTP"},"children":["SMS OTP"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"TOTP"},"children":["TOTP"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Okta"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_okta_oidc"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_okta_password"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_okta_totp"},"children":["✓"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Auth0"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_auth0_oidc"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_auth0_password"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["AWS Cognito"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_cognito_oidc"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_cognito_password"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_cognito_otp_generate"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_cognito_otp_generate"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Microsoft Entra ID"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_azuread_oidc"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_azure_ad_password"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Keycloak"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_keycloak_oidc"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_keycloak_password"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_keycloak_totp"},"children":["✓"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["OneLogin"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_onelogin_oidc"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_onelogin_password"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ping Identity"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_pingone_oidc"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_pingone_password"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Google"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_google_oidc"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Meta (Facebook)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_meta_oidc"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Apple"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/orchestration/journeys/authenticate_apple_oidc"},"children":["✓"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["–"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"limitations","__idx":4},"children":["Limitations"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Currently, user migration doesn't provision user roles and groups."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"planning-your-migration","__idx":5},"children":["Planning your migration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Consider the following when planning your migration:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Timeline"]},": JIT migration happens gradually as users log in. Plan for a transition period where both systems may be active."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Authenticator registration"]},": Decide whether to prompt users to register new authenticators immediately or during subsequent logins."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data synchronization"]},": Determine which user attributes to migrate and how to handle data that may exist in both systems."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Rollback strategy"]},": Maintain your existing IDP during the transition period to ensure you can roll back if needed."]}]}]},"headings":[{"value":"Migrate user store","id":"migrate-user-store","depth":1},{"value":"Migration approaches","id":"migration-approaches","depth":2},{"value":"JIT migration methods","id":"jit-migration-methods","depth":2},{"value":"Supported identity providers","id":"supported-identity-providers","depth":2},{"value":"Limitations","id":"limitations","depth":2},{"value":"Planning your migration","id":"planning-your-migration","depth":2}],"frontmatter":{"seo":{"title":"Migrate user store"}},"lastModified":"2026-05-27T07:56:05.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/platform/migrate_to_mosaic","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}