Provisioning with the custom connectors

Microsoft Entra ID includes connectivity to provision into applications that support the following protocols and interfaces:

For connectivity to applications that don't support one of the aforementioned protocols and interfaces, customers and partners have built custom ECMA 2.0 connectors for use with Microsoft Identity Manager (MIM) 2016. ECMA2 connectors can be used to provision into apps with the Microsoft Entra provisioning agent and Extensible Connectivity(ECMA) Connector host, without needing MIM sync deployed.

Exporting and importing a MIM connector

If you have a custom ECMA 2.0 connector in MIM, you can export its configuration by following the instructions here. You need to save the XML file, the DLL, and related software for your connector.

To import your connector, you can use the instructions here. You need to copy the DLL for your connector, and any of its prerequisite DLLs, to that same ECMA subdirectory of the Service directory. After the xml import, continue through the wizard and ensure that all the required fields are populated.

Updating a custom connector DLL

When updating a connector with a newer build, ensure that the DLL is updated in all the required locations. Use these steps to properly update your custom connector DLL:

  1. Close the Microsoft ECMA2Host Configuration Wizard.
  2. Stop the Microsoft ECMA2Host service.
  3. Manually update the custom connector DLL into each of the following folders.
    1. ECMA
    2. ECMA > Cache > {connector name}
    3. ECMA > Cache > {connector name} > AutosyncService
  4. Start the Microsoft ECMA2Host service.

Note

If multiple connectors are using the same custom DLL, complete step 3.ii and 3.iii for each connector.

Troubleshooting

Custom connectors built for MIM rely on the ECMA framework. If you're having difficulties importing and using a connector, please ensure that you're following best practices:

  • Ensuring that methods in your connector are declared as public
  • Excluding prefixes from method names. For example:
    • Correct: public Schema GetSchema (KeyedCollection<string, ConfigParameter> configParameters)
    • Incorrect: Schema PrefixGetSchema.GetSchema (KeyedCollection<string, ConfigParameter> configParameters)

The following table includes capabilities of the ECMA framework that differ between MIM and the Microsoft Entra provisioning agent. For a list of known limitations for the Microsoft Entra provisioning service and on-premises application provisioning, see here.

Capability Comments
Object type Provisioning agent permits one object type
Partitions Provisioning agent permits one partition
Hierarchies Not used by provisioning agent
Full export Not used by provisioning agent
ExportPasswordInFirstPass Not supported
Normalizations Not used by provisioning agent
Concurrent operations Not used by provisioning agent
DeleteAddAsReplace Not used by provisioning agent

Next steps