SAML
Entity ID, reply and sign-on URLs, NameID format and the attribute statements. A new signing certificate is generated on the Okta side; the application owner installs it at cutover.
TenantFlex reads every SAML and OIDC application in your Microsoft Entra ID tenant, maps its claims to Okta's own form, and recreates it in the Okta org with an execution log and a hand-off bundle for each owner. The Entra ID side is read-only throughout.
Entity ID, reply and sign-on URLs, NameID format and the attribute statements. A new signing certificate is generated on the Okta side; the application owner installs it at cutover.
Redirect URIs, grant types, scopes and API permissions. Client secrets are generated on the Okta side and handed to the owner once, never copied.
User and group assignments, conditional access or sign-on policies, and SCIM provisioning are read and shown in discovery so the owner can recreate them deliberately. SCIM migration is on the roadmap.
Connect an identity provider tenant in read-only. TenantFlex inventories its SAML and OAuth/OIDC applications, service principals, credentials and their expiry. You see what is really there, not what the CMDB says.
Approve what is in scope, set naming and credential handling, and get suggestions for complex claims transformations. Nothing migrates until it is approved.
Each application is recreated in the target tenant, read back and compared with the source, then handed to its owner for cutover. If one fails, the job rolls back what it created.
The same workflow in the other direction. The Entra ID connection needs Application.Read.All, plus Policy.Read.All so SAML claims are read rather than reported as unknown. The Okta connection needs okta.apps.manage to create applications.
Discovery reads each enterprise application's SAML configuration and claims. The migration job creates a SAML 2.0 application in Okta with the same audience and assertion consumer service URL and attribute statements translated from the Entra ID claims. The application owner switches the service provider to the Okta metadata at cutover.
user.mail. Okta expects ${user.email}.Each provider's claims are translated to one shared vocabulary, the central TenantFlex profile vocabulary, and written back in the destination's own format. Claims that map to a standard user attribute migrate automatically. Claims that use transformations, expressions or attributes the destination does not have are reported as complex in discovery, so they are reviewed before anything moves. Custom claims can be mapped to destination claims for a whole job or for a single application.
TenantFlex provides a handover bundle per migrated application. For a SAML application: the identity provider login URL, the identity provider identifier and the signing certificate, all of which are in the destination's federation metadata. For an OIDC application: the client ID, the client secret and the issuer URL. Until the owner makes the change, users keep signing in through the source tenant, so each application can be cut over on its own schedule, aligned with your change management processes and maintenance windows.
Recreating an application in the destination takes minutes. Most of the elapsed time in a tenant migration is cutover coordination with application owners, so a plan is usually built back from a date: discovery about three months ahead, a pilot wave, then the remaining waves as scheduled jobs.
Yes. The destination can be any connected tenant, including one at the same provider: Entra ID to Entra ID after an acquisition, or Okta org to Okta org when two business units consolidate. The naming template keeps the migrated applications distinguishable from the originals.
Application.Read.AllLists applications and service principals with their sign-on configuration, redirect URIs, assignments, certificates and secret expiry.
Policy.Read.AllOnly so SAML claims are read rather than reported as unknown.
No write permission is asked for on the tenant you are leaving.
okta.apps.manageCreates the applications. Nothing in the source org is ever written to.
Every setting is read back from Okta and compared with the source. A failed application is rolled back.
The full list, including the optional scopes for discovery features, is in the permissions reference.
Licensed per application in scope. Discovery tells you the number before you commit.
You license the platform by the applications in scope, not by user count or tenant size. Discovery tells you that number before you commit. SaaS or deployed in your own environment, the same release either way.
Self-serviceWe run it with you: scoping, the claim and policy decisions that need a human, a cutover plan per application, and the hand-off to each application owner. You get the platform and the practitioners who have done these migrations by hand.
With consultancyStandby and the privileged access review are priced separately.
Get started Tell us roughly how many applications are in the tenant and what is driving the move. We will walk you through a live migration, read-only on Entra ID throughout.
[email protected] · www.tenantflex.com