Organizations consolidating on Microsoft Entra ID from Okta face a common problem: which apps exist, who actually uses them, and what order should they migrate in? OktaToEntra is a PowerShell module built to answer that - it discovers apps from Okta (SAML, OIDC, SWA, and more), pulls usage history to separate active apps from dead ones, creates the corresponding App Registrations and Service Principals in Entra ID, and replicates user/group assignments across. It deliberately stops short of configuring SSO itself - that step stays manual, with the tool generating config packs to make it easier.

The module tracks each app through a migration lifecycle (discovered, ready, stub created, in progress, validated, complete), stores its data locally in SQLite, and keeps credentials in the SecretStore vault rather than in plaintext. It ships both an interactive console menu and a full set of scriptable cmdlets for CI-style usage.

Development has stopped. The work continues as OktaToEntra Web App, which covers the same ground with a browser UI. This module remains public and functional for anyone who wants it.

Read more about the motivation and design in the companion write-up on the IAM blog: OktaToEntra: A PowerShell companion Tool.