Creating the management agent
Create the Okta management agent in MIM and work through its configuration pages.
Complete the guide for your authentication method first. Before you start, you should have your Okta org URL, and either an API token or a client ID and the key details.
Step 1: Create the management agent
Open MIM Synchronization Service Manager.
Select Management Agents, then Create.
Select Okta (Lithnet).
Enter a name and description.

If the management agent type is not listed, close and reopen Synchronization Service Manager. If it is still missing, restart the MIM Synchronization Service. This is usually because the product was installed or upgraded while the service was running.
Step 2: Configure connectivity
The fields you need depend on the authentication method:
There are two common mistakes on this page. The Tenant URL is the Okta org URL, such as https://example.okta.com, not the -admin hostname or an authorization server path. The log file path must also point somewhere the MIM Synchronization Service account can write to.
See Connectivity settings for the full field reference.
Step 3: Configure global parameters
There are three decisions to make on this page:
Whether to import
BUILT_INandAPP_GROUPgroups. Both are read-only.Whether deprovisioning a user deactivates it or permanently deletes it.
Whether new users are activated on creation, and whether Okta sends them an activation email.

The deprovisioning choice also changes what a full import returns, so read Global settings before you decide.
Step 4: Select object types
Select user, group, or both.
With OAuth, only the object types allowed by your granted scopes are shown. If one you expected is missing, grant the matching read or manage scope in Okta and retrieve the schema again.

Step 5: Select attributes
id is mandatory. Beyond that, select only the attributes that your joins, flows, filters, and reporting actually use.
Attribute directions come from the mutability set on the Okta profile and, with OAuth, from whether the app holds the read or manage scope.
availableFactors, enrolledFactors, and group member each cost an extra API call per object during import. Select them only if you need them. See Schema and attributes for the details.

Step 6: Configure anchors
id is the anchor for both object types. The connector declares it in the schema, so there's nothing to configure here.
The connector also uses the Okta id as the distinguished name on import. When MIM provisions a new object it has to supply a DN itself, so use any unique value, such as a GUID. The export returns the Okta id as the anchor, and the confirming import replaces the temporary DN with it. Run that confirming import before exporting any further changes to newly provisioned objects.
Step 7: Configure synchronization rules
Build the connector filters, joins, projections, and attribute flows your solution needs. Two connector-specific rules apply:
Flow
suspendedto suspend and unsuspend a user. Never flowstatus. It is import-only, and activation and deprovisioning are driven by the global settings instead.Never flow anything to
BUILT_INorAPP_GROUPgroups. OnlyOKTA_GROUPgroups are writable.
The object-specific guides cover the rest:
Step 8: Configure deprovisioning
To deactivate or delete an Okta object, configure MIM to Stage a delete of the object for the next export run.
For users, the User deprovisioning action global setting decides whether that delete deactivates the user or permanently deletes it. Group deletes are always permanent.
Step 9: Create the run profiles
Finish the wizard and create the run profiles.
Then return to Getting started for the first controlled import and synchronization. Make sure your ongoing schedule includes a periodic Full Import: Okta can't return an object it no longer holds, so a delta import will never detect a deletion.
Last updated