Setting it up Ten minutes per tenant, in your own admin console.
You create the credential in the provider's console and paste it into TenantFlex. TenantFlex never asks for an administrator's own login, and the credential can be revoked from your side at any time.
Microsoft Entra ID
- Create an app registration in the tenant you are connecting.
- Under API permissions, add
Application.Read.All as an application permission (not delegated), and any optional reads you want. - Grant admin consent. The consent is recorded in the tenant's audit log.
- Create a client secret or upload a certificate and paste the tenant ID, client ID and secret into TenantFlex.
- Destination only: add
Application.ReadWrite.All when you are ready to migrate into this tenant.
Okta
- Create an API Services application in the org (OAuth 2.0 client credentials).
- Grant the scope
okta.apps.read, plus any optional reads you want (okta.orgs.read shows the org name). - Assign the application the Application Administrator role, which is the documented minimum, or a custom role limited to application read on a resource set. Super Administrator is not required.
- Register a public key on the application (client authentication is private key JWT) and paste the org URL, client ID and private key into TenantFlex.
- Destination only: grant
okta.apps.manage and a role that can create applications when you are ready to migrate into this org.
PingOne
- Create a worker application in the environment you are connecting.
- Give it the
Configuration Read Only role for that environment. - Paste the environment ID, client ID and secret into TenantFlex.
- Destination only: add the
Client Application Developer role when you are ready to migrate into, or restore a backup into, this environment.
What TenantFlex never asks for
No permission that reads or changes users, groups, passwords or sign-in sessions is needed for a migration, and none is requested. In particular:
Directory.ReadWrite.All
Entra ID: not requested. Applications are created through the application permission above, nothing else in the directory is written.
User.ReadWrite.All · Group.ReadWrite.All
Entra ID: not requested. Assignments are read, not changed, and users are never created or edited.
okta.users.manage · okta.groups.manage
Okta: not requested. The admin role review reads role holders with .read scopes only.
Global Administrator · Super Admin
Never required on any provider. A read-only administrator role is sufficient for a source tenant.
An administrator's own credentials
Never requested. Every connection uses a dedicated application identity you create and can revoke.
Revoking access
Delete the app registration, API Services application or worker application in your console, or remove its roles. TenantFlex's connection fails on the next call and is marked as disconnected. Data already captured stays in your workspace until you delete the connection or the workspace.
Verifying what was granted
Entra ID records consent grants in the audit log and shows them under Enterprise applications → Permissions. Okta shows the scopes and roles on the API Services application. PingOne shows the worker application's roles under its environment. The same list appears on the connection page in TenantFlex, read back from the provider, so what you see in both places should match.