Migrating from Okta to Keycloak
Migrating from Okta to Keycloak is not a user migration. The users are the easy part: Okta's Users API hands you profiles and group membership, and Keycloak's partial-import endpoint takes them. Two other things decide how long this takes. Okta will not give you password hashes — they are an import-only field, so every user either resets a password or authenticates through Okta one last time while you drain. And every SAML and OIDC application has to be re-pointed by hand, one at a time, because the assertion consumer URL, the entity ID and the signing certificate all change when the identity provider does.
So the schedule is set by the app inventory, not by the user count. A thousand users is one
afternoon. Forty SAML apps is a quarter. Everything below was run against Keycloak 26.8.1 in
start-dev, and the Okta side is from Okta's published API specification, read on
2026-10-19.