How midPoint provisions to Active Directory and LDAP
Identity data usually starts in an HR system or another authoritative source, but access is granted where people actually log in and open files: Active Directory or LDAP. This section explains how to connect midPoint to those directories through the ConnId LDAP and Active Directory connectors, and what to settle before any account is created or changed. The work runs entirely inside your own infrastructure, against your own domain controllers or directory servers, so the connector design, service accounts and network paths are your decisions to make with the implementation team.
Teams usually need this connection when joiners, movers and leavers are still handled by hand tickets to directory administrators, or when a legacy provisioning script has grown beyond what anyone wants to maintain. Once midPoint is the system that writes to the directory, every account, group and attribute change it makes is an audited action taken on production identity stores. That makes the connector configuration as important as the HR mapping feeding it. Confirm early which directory forest or domains are in scope, which operating model applies to each, and who will own the resulting accounts after go-live.
The harder problems are rarely the connection itself. Existing accounts already sit in the directory, so midPoint must correlate them to identities without creating duplicates or taking over accounts that belong to someone else. Group membership is often managed by nested groups, dynamic rules or other tools, and a second writer can remove memberships that users depend on. Password rules differ between Active Directory policy, LDAP servers and the HR or self-service flows that set initial values, so you need an agreed owner for complexity, history and reset behavior. Schema differences matter too: attribute names, multi-valued fields, distinguished name structure and mandatory attributes vary by directory and by how the estate was built.
Before the build, run a discovery exercise against a non-production copy of the directory. List the object classes and attributes midPoint must read and write, record every group that is managed automatically and every group that is not, and document the existing password policy with its exceptions. Ask the implementation partner to show how correlation rules will be tested against real duplicates, and ask for a written plan that covers a read-only first run, a limited pilot OU and a rollback step. Confirm with your directory team which LDAP or LDAPS endpoints, certificates and service account permissions are available, because those limits will shape the connector configuration.
Which midPoint and ConnId components are involved
An LDAP or Active Directory connection in midPoint is assembled from several cooperating parts, each with its own configuration and failure modes. Knowing which component owns which decision makes it easier to scope the work, assign responsibility and test each layer before go-live.
ConnId connector framework
ConnId is the connector framework midPoint uses to talk to target systems. It defines how midPoint sends create, update, delete and search operations to a connector and how the connector reports results back. Confirm that the connector bundle you plan to use is supported with your specific midPoint release, because connector versions and midPoint versions must be matched and upgrades can require a new bundle.
LDAP and Active Directory connectors
Evolveum documents separate LDAP and Active Directory connectors, and each handles directory-specific behavior such as bind methods, TLS, paging and account enable flags. Pick the connector that matches the directory you actually run, and check its documented options against your directory configuration. Do not assume the two connectors are interchangeable for every attribute or operation.
Resource objects and connector configuration
A midPoint resource object holds the connection settings, host, base context, service account and the schema midPoint learns from the target. This is where credentials for the connector account are stored, so access to the resource definition should be restricted to the identity team. Confirm which account the connector binds as and which permissions that account has in the directory.
Object classes and attributes
The resource schema lists the object classes, such as user and group accounts, and the attributes midPoint can read or write for each. Attributes marked as read-only, multivalued or required shape every mapping that follows. Review the discovered schema with the directory owner before building any mappings, because missing or unexpected attributes are a frequent source of rework.
Mappings and correlation rules
Mappings define how identity data from midPoint, such as HR-sourced user properties, becomes directory attributes, and how inbound changes flow back. Correlation rules decide how an existing directory account is matched to a midPoint user during initial load. Mapping and correlation errors are the most common cause of duplicate or wrongly linked accounts, so test them against a copy of real directory data before enabling synchronization.
Reconciliation tasks and PostgreSQL repository
midPoint stores its configuration, user data, links and task state in its PostgreSQL repository, and the task scheduler runs import, reconciliation and live synchronization jobs against each resource. Reconciliation is what detects drift between midPoint and the directory over time. Confirm the database sizing, backup plan and scheduler settings with your platform team, since slow queries or long tasks affect every connected system.
Which directory connector setup fits your environment
This table compares the main setup choices for midPoint directory connectors: the Active Directory connector or the generic LDAP connector, one directory or several, read-only discovery or full provisioning first, and whether midPoint manages groups or only references them. Read each row as a decision with its fit and its ongoing operational cost, and choose the combination your directory estate and team can maintain.
| Decision | When it fits | Operational cost to plan for |
|---|---|---|
| Active Directory connector | Windows domains where AD-specific attributes, password policy behavior and domain features matter most | Depends on directory-specific behavior, so AD version and connector upgrades need regression tests |
| Generic LDAP connector | Non-Microsoft directories, or AD used only through standard LDAP attributes and a single consistent schema | More attribute mappings to write and maintain, and AD-specific features may need manual handling |
| Single domain or forest | One authoritative directory with one naming context and one owner of account lifecycle | Simplest correlation and fewest connector instances, but still needs a parallel-run period before cutover |
| Several domains or forests | Trust-separated estates or acquisitions where each directory has its own administrators and naming rules | One connector resource per directory, separate mappings and credentials, and more testing for each target |
| Read-only discovery first | Existing accounts are unknown, correlation rules are unproven, or stakeholders need evidence before changes | A longer parallel-run period, because reports must be reviewed and correlation gaps resolved before provisioning |
| Full provisioning from day one | Directory content is well understood, correlation is clean and the owners have signed off on the target state | Higher risk of unintended changes, so rollback, change windows and monitoring must be ready before go-live |
| midPoint manages groups | Group membership should follow roles and policies, and auditors need one place to see the access model | More mappings and reconciliation work, and group ownership rules must be agreed with directory administrators |
| Groups only referenced | Groups are owned by existing processes and midPoint needs them only for role logic or reporting | Less provisioning effort, but drift between midPoint roles and directory groups must be detected by reconciliation |
How to build the directory connectors step by step
This sequence takes midPoint from a confirmed release and Java runtime to live Active Directory or LDAP provisioning, with each step closed by a check that proves the connector behaves as designed before any production account is touched. Work is done inside your own infrastructure and in a non-production directory first.
Confirm release and Java runtime
Choose the midPoint release line first, then match the Java runtime to it. midPoint recommends Java 25 for version 4.11 and later, with Java 21 supported, and Java 21 for 4.10 and older, with Java 17 supported. Confirm your release's support end date on the releases page, since the connector configuration you build will need to survive future upgrades. The step is closed when the target midPoint build starts cleanly on the chosen Java version and the administration interface loads in your test environment. Ask the implementation partner to record the release, Java version and support end date in the design document.
Create a least-privilege directory service account
Create a dedicated service account in the directory for midPoint, separate from any administrator and from any personal account. Grant it only the rights needed for the object types and containers in scope, such as creating, modifying and disabling user accounts and managing membership of the groups midPoint will govern. Your directory team should confirm the delegation model with the directory administrators and document the exact permissions granted. The step is closed when a bind with the service account succeeds and a read of the target container works, while a write outside the delegated scope is refused.
Configure the resource connection and schema
Create the midPoint resource using the ConnId LDAP or Active Directory connector. Set the host, port, transport security, base contexts, bind account and the password for the service account, and choose the object classes and attributes that midPoint will manage. Store the bind password in midPoint's protected credential storage rather than in plain configuration. The step is closed when the resource test reports a successful connection and the configured base contexts are reachable. Confirm TLS requirements and certificate trust with the directory team before this test, since a failed certificate check is one of the most common blockers.
Run schema and discovery import
Run the resource schema fetch and then an import task against the test container to load existing accounts and groups into midPoint as shadow objects. This shows which attributes the directory actually exposes, including any custom attributes that your mappings will depend on. Review the import report for objects that were not expected, such as service accounts, disabled objects, or accounts in unrelated organizational units. The step is closed when the import completes without errors and the object count matches the directory scope you agreed, with unexpected objects explained or excluded by filter before moving on.
Define account and group mappings
Build the outbound mappings that translate midPoint user attributes into directory attributes, such as name, email, department and group membership, and the inbound mappings for attributes that midPoint should read back from the directory. Keep the mappings in object templates or resource-level configuration so they are reviewable and versioned. Agree the authoritative source of each attribute with the HR and identity owners. The step is closed when a peer review of the mapping list is signed off and each managed attribute has a named owner and a documented source of truth.
Set up correlation rules for existing accounts
Define correlation rules that decide whether a directory account that already exists belongs to a midPoint user. Typical rules match on a stable identifier such as an employee number, with a fallback only where the data is trustworthy. Set a rule that leaves ambiguous matches unlinked for manual review rather than guessing. The step is closed when a correlation dry run on a copy of production-like data reports the expected number of linked, unlinked and ambiguous accounts, and the ambiguous set is small enough for a named owner to review.
Test on a non-production OU or test directory
Run provisioning against a dedicated test organizational unit or a separate test directory, never directly against production. Create, modify, disable and delete a set of test users and groups through midPoint, then verify the results in the directory and in midPoint's audit and task logs. Use simulation or dry-run features where your midPoint release provides them, and confirm the feature set for your version in the documentation. The step is closed when a signed-off test report lists the expected changes for each scenario, with no unexpected changes outside the test container and any defects logged and resolved.
Enable reconciliation tasks
Schedule live synchronization and reconciliation tasks only after the test report is accepted. Start with a reconciliation run in report-only mode against production, review the proposed changes with the directory and identity owners, and then enable scheduled tasks with defined frequency and notification. Keep a rollback plan and a documented method for pausing tasks. The step is closed when the first scheduled reconciliation completes with changes matching the approved report and the operations team has confirmed monitoring and alerting for the task.
How correlation matches existing AD and LDAP accounts
Correlation is the step where midPoint decides, for each account already sitting in Active Directory or LDAP, which identity from the authoritative source it belongs to. Get this right before any provisioning runs. If midPoint cannot link an existing account to a person, its next synchronization may create a second account for that person, and the duplicate then carries entitlements that nobody reviewed. The correlation rule set is therefore the first design decision in a migration, ahead of mappings and roles.
The main decision is which attribute pairs an account with an identity. An employee identifier from the HR source, copied into a directory attribute, is usually the strongest choice because it is stable and unique. A login name such as sAMAccountName or uid is familiar but changes when people marry, transfer or are renamed, and it can be reused. Email addresses and display names are weaker still. Whatever you pick, confirm in your own directory which attribute is populated for every account type, how many accounts hold a value that matches no HR record, and whether any value is shared by more than one account. Those three counts predict how much manual review the migration needs more reliably than any rule design.
midPoint's correlation rules can combine several attributes and assign a situation to each candidate account. The outcomes you must plan for are a single confident match, several candidates for one account, and no candidate at all. Ambiguous matches should not be resolved automatically by guessing. Route them to a review queue with the candidate identities shown beside the account attributes, and decide in advance who approves each link and what evidence they check. Accounts with no match are usually service accounts, shared mailboxes, leavers still present in the directory or contractors outside the HR feed. Classify them explicitly, either as unmanaged, as candidates for disablement after a defined period, or as accounts to be linked manually, rather than letting them drift into the default case.
The review step for accounts that match nobody needs an owner, a list and a decision rule before the first synchronization runs. Export the unmatched set from the directory, group it by container or organizational unit and by last logon date, and have the application owners confirm which accounts they need. Record each decision so that auditors can later see why an account was linked, left unmanaged or scheduled for removal. Keep the correlation rules and their test results under version control, and re-run the correlation in a non-production environment against a copy of the directory before you apply it to production.
Confirm the matching attributes and their data quality with your directory and HR teams before you choose rules. Ask for sample extracts, the count of accounts per attribute value state, and the owners of each attribute. The answers determine whether correlation can be largely automatic or whether a sizeable review effort is needed, and that effort should be reflected in any fixed-scope plan. Evolveum's connector documentation describes the LDAP and Active Directory connectors that read these attributes, so verify with your own test directory which attributes the connector returns before you write the rules.
What drives effort in an Active Directory and LDAP connector build
This table lists the factors that most change the size of an Active Directory or LDAP connector build in midPoint, with the reason each one matters and how to keep it under control. Read it before scoping, because the first phase is usually the lever that matters most. Most of the effort sits in mappings, correlation and data cleanup rather than in the connector configuration itself.
| Driver | Why it changes effort | How to reduce it |
|---|---|---|
| Domains, forests and OUs in scope | Each domain or forest needs its own connector configuration, base contexts, credentials and testing. Cross-forest group membership adds mapping and verification work. | Limit the first phase to one OU or one domain, then add others as separate, tested increments. |
| Account types and group models | Each object type, such as users, contractors, service accounts and groups, needs its own object class handling, mappings and sync rules. Nested or multi-valued group models add further logic. | Start with the account types that carry the most access. Defer service accounts and nested groups to a later phase and document them as out of scope. |
| Data quality of existing accounts | Inconsistent names, duplicate employee IDs, stale accounts and missing mail attributes force exception handling in correlation and provisioning rules. | Profile the directory before import. Clean attribute values at the source or in a staging export, and agree who owns each correction. |
| Number of attributes and extension fields | Every attribute mapped in both directions needs a rule, a test case and a decision about which system is authoritative. Custom schema extensions in the directory add to this count. | Map only the attributes that drive provisioning decisions in phase one. Keep the rest in a backlog with a named owner. |
| Password policy requirements | Password synchronization, complexity checks, account enablement and reset flows depend on what the directory accepts over LDAP and what the organization's policy requires. Each path needs separate testing. | Confirm the directory's accepted password change channels and the policy owner early. Decide which password flows are in scope for the first release. |
| Number of target environments | Development, test and production each need a connector configuration, service account and test data set. Differences between them are a common source of late defects. | Keep environment-specific values in configuration rather than in mappings. Use one promotion path and the same connector version in every environment. |
| Volume of existing accounts to correlate | Matching existing directory accounts to identities in the authoritative source is iterative. Large volumes and weak matching keys increase the number of manual review cases. | Choose a stable correlation key, such as a unique employee identifier, and run correlation in a simulation mode before any changes are written. |
| Reuse of mapping patterns | Writing a new mapping for each object type multiplies the test and maintenance effort. Consistent patterns make each new object type a smaller change. | Define one mapping pattern for common attributes and reuse it across object types. Review the pattern once rather than each copy. |
| Performance and sync volume | Full reconciliation across large directories takes longer and needs tuning of batch sizes and scheduling. Poor tuning can affect directory servers in production. | Use incremental sync for routine changes and schedule full reconciliation outside business hours. Confirm the directory team's load limits before the first production run. |
How passwords flow from midPoint into AD and LDAP
The first decision is whether midPoint sets a password when it creates an account at all. The main options are a generated initial password delivered out of band, a password chosen by the service desk, or no initial password, with the user setting one through self-service on first use. Each option changes what midPoint holds in memory, what the connector sends to the directory, and who ever sees the value. Make this choice with your directory administrators before mapping work begins, because it determines whether the password is an attribute in an outbound mapping, a separate credential operation, or absent from provisioning entirely. Record the decision with a named owner so the connector configuration can be reviewed against it.
Self-service password changes and resets need their own rules. In midPoint, the rules for a new password value come from value and credential policy objects, which you define to cover length, character classes, reuse and history. Confirm the exact policy object types for your version in the connector and product documentation. These rules are a second layer on top of the password policy the directory enforces, so they must not be looser than the directory's own requirements. If midPoint accepts a value that Active Directory or the LDAP server rejects, the user sees a failure that is hard to trace back to the policy. Ask your directory administrators which policies apply to the target container, including any fine-grained policies, and test rejected values end to end in a non-production environment before go-live.
Active Directory and generic LDAP directories handle passwords differently, so a mapping cannot be copied from one to the other. In Active Directory, passwords are written through a dedicated attribute that the directory accepts only over an encrypted session, and whether an account is enabled, disabled or required to change its password at next logon is controlled by account control flags on the same object. A password write and a flag change can therefore interact, and the order of operations matters. Generic LDAP directories typically store a hashed password in a different attribute, may or may not expose a must-change state, and may apply password policy overlays that vary by product. Confirm the attribute names, transport requirements, hashing behavior and flag semantics with your directory administrators and with the connector documentation for your midPoint version.
Notifications and logs are where passwords most often leak. A new-account or reset notification should carry instructions or a one-time link, never the password itself, and its template should be reviewed for any variable that could expose the value. Check that the connector, mappings and tasks do not write password values to application logs, debug output, task results or the audit trail at the log levels you run in production. Raise the logging level only on a test account, then search the collected logs for a known test value. If you ever need to deliver a first secret out of band, decide the channel in advance and document who may view it. Treat this as the functional check, and pair it with the audit and credential protections covered in your security review.
Connector differences across single node, cluster and container deployments
A single midPoint node on a Linux virtual machine is the simplest model. One Java process serves the web interface, runs the scheduler and makes the connector calls. PostgreSQL usually sits on a separate database server, as the system requirements recommend, so the VM holds the runtime and the database holds the state.
- Reconciliation tasks: the node runs all scheduled tasks itself. No cluster coordination is involved, but a long reconciliation shares CPU and memory with the user interface on the same host.
- Connector configuration: resource definitions, including connector settings and the bind account references, are stored as objects in the PostgreSQL repository, so rebuilding the VM does not by itself rebuild the connector setup.
- Domain controller paths: one source address opens all LDAP or LDAPS sessions to the domain controllers. Firewall rules and certificate trust are therefore easy to review in one place.
- Maintenance: restarting the node stops provisioning, so upgrades and restarts need a window that accounts for pending tasks.
Before go-live, confirm that the VM can reach every domain controller on the ports your connector uses, that the LDAPS certificate chain is trusted by the Java runtime, and that the VM recovery path has been tested end to end.
In a cluster, several midPoint nodes share one PostgreSQL repository behind a sticky HTTP load balancer. Nodes send cache invalidation messages to each other over HTTPS, and Quartz coordinates scheduled tasks so that the work is shared among nodes. The configuration is shared across the cluster, but the network origin of connector traffic is not, and that is where most cluster-specific connector issues appear.
- Reconciliation tasks: Quartz distributes scheduled tasks across nodes. Confirm with Evolveum's documentation which task types can run concurrently and how tasks are picked up when a node fails.
- Connector configuration: resource objects live in the shared database, so a change made on one node reaches the others after cache invalidation completes. Test that timing during implementation.
- Domain controller paths: each node opens its own connections to the domain controllers, so every node needs the same firewall rules, DNS resolution and LDAPS trust.
- Load balancer scope: the sticky load balancer fronts the administrative interface and API. Connector traffic runs from each node outward to the directories and does not pass through the balancer.
- Credential placement: bind credentials and certificates must be present on every node, and rotation must be applied to all of them.
Before go-live, fail one node during a reconciliation run, confirm that every node resolves and trusts each domain controller, and verify that cache invalidation works over the HTTPS path between nodes.
midPoint can run from Docker images, which packages the runtime and makes rebuilds repeatable. Containers are replaceable, so the configuration has to live outside them: in the PostgreSQL repository and in any mounted secrets or certificate files. The container runtime also shapes network paths, which changes how addresses and name resolution reach the directories.
- Reconciliation tasks: the scheduler runs inside each container. A container restart interrupts in-flight work, so confirm how tasks resume after a restart and how long-running reconciliations are scheduled.
- Connector configuration: resource definitions remain in the external PostgreSQL repository, so replacing a container does not remove connector settings.
- Domain controller paths: containers reach domain controllers through the host network, a bridge or an overlay network, depending on how the runtime is set up. Confirm that domain controller names resolve from inside the container.
- Trust stores: LDAPS certificates for the domain controllers must be in the Java trust store of the image or mounted at start, and they must survive image rebuilds.
- Image versions: pin the image tag, and test connectors against that exact tag before promoting it.
Before promotion, start a container on the target network, run a test connection to each domain controller from inside it, and rebuild the container once to confirm that the trust store and secrets are preserved.
Securing bind accounts, TLS and connector secrets
A midPoint Active Directory or LDAP connector holds standing credentials with write access to your directory, so its security depends on a few deliberate choices. The controls below cover the bind account, the secrets midPoint stores, the transport, who may change connector configuration, and the audit trail that shows what changed.
Dedicated bind account scope
Create a service account used only by midPoint, not a personal administrator account or a shared domain admin. Grant it only the rights the connector needs for the containers, object classes and attributes it manages, such as creating and disabling accounts and managing group membership in defined organizational units. Test the account with the connector's operations before go-live, and confirm with your directory team which delegated permissions the chosen Active Directory or LDAP configuration requires.
Protection of stored bind credentials
The bind password is stored in midPoint's repository as a protected value, so confirm how your midPoint version encrypts or protects connector secrets and where the encryption key is held. Restrict database access to the midPoint service and database administrators who need it, and keep key material out of configuration exports, backups shared with other teams and version control. Plan a rotation procedure that updates the resource definition and the directory account together.
TLS or LDAPS on every directory connection
Every connection from midPoint to a directory should use TLS, either LDAPS or StartTLS, so bind credentials and directory data are not sent in clear text. Verify the directory certificate chain against a trust store that midPoint's runtime uses, and check that the connector does not fall back to an unencrypted port. Ask your directory team to confirm which ports and certificate authorities apply in each network zone before you configure the resource.
Restricted resource definition changes
Resource definitions control which directory, which account and which attributes midPoint can change, so editing them is a high-impact privilege. Limit the midPoint roles that can create or modify resources and connector configuration to a small, named group, separate from those who manage users or roles. Review those authorizations during access certification, and keep changes to resource definitions under a change process with an approver outside the implementation team.
Audit of directory object changes
Make sure midPoint records changes it makes to directory objects and changes to its own configuration, and confirm which of these events your version writes to the audit trail and how long they are retained. Forward audit records to a log store that the midPoint administrators cannot edit, and test that a provisioning change, a password reset and a resource change each leave an identifiable record. Verify the audit options available in your midPoint version before you rely on them as evidence.
Connector and runtime version control
Pin the ConnId connector version used for Active Directory or LDAP and record it with the midPoint release it was tested against. Changes to the connector or to midPoint can alter how credentials are sent, how TLS is negotiated and which operations the bind account needs, so retest these controls after every upgrade. Keep a record of the connector version in your change log so auditors can match a finding to a specific build.
How to test AD and LDAP provisioning before go-live
Test the midPoint Active Directory and LDAP connectors in four layers before any change reaches the production directory: connection and schema, provisioning operations, correlation and reconciliation, and failure behavior. Start with the ConnId connector configuration on the resource object. Confirm that the test connection succeeds using the bind account you plan to use in production, that the schema read by the connector includes the object classes and attributes your mappings depend on, and that the bind account holds only the rights your design requires. Record the midPoint version and the connector version together, because either can change behavior during an upgrade. Confirm the supported combinations in the connector documentation for your release.
Next, test each provisioning operation in a non-production domain or a dedicated test OU. Cover create, update, disable, and delete for accounts, and add and remove for group memberships. For each case, write down the expected result before running it: attribute values, OU placement, the enabled or disabled state, the groups that should change, and the groups that must stay untouched. Where your midPoint version offers simulation or preview of intended changes, use it first and compare the preview with the directory result. An illustrative leaver case might expect the account to be disabled and moved, its project groups removed, and its shared mail distribution memberships left alone. Any gap between expected and actual results is a mapping or policy defect to fix before go-live.
Correlation tests need an extract of existing directory accounts, handled under the data protection approval your organization has for test data. Run the correlation rules against that extract and count the results in three groups: one match, no match, and multiple matches. Each multiple match must be resolved by a rule or a manual decision before cutover, because it can otherwise link the wrong identity. Then run a reconciliation task in a mode that reports differences without applying them. Review accounts that exist in the directory but have no midPoint owner, and attributes that have drifted from the source of truth. Agree in writing what count of unexpected differences blocks go-live, and who signs off on exceptions.
Failure tests show whether the design stops safely. Simulate an unreachable domain controller by pointing a test resource at a wrong host or blocking the LDAP or LDAPS port in the test network. Simulate a rejected password by submitting one that violates the domain password policy. For each case, confirm that the task stops or marks the affected objects in error, that the resource state reflects the failure, and that a retry after recovery does not create duplicate accounts or reapply a partial batch. Check the task error handling and retry settings in your version, and confirm that the directory receives no bulk changes from a failed run. Treat any flood of unintended writes as a stop condition for go-live.
Keep evidence that a reviewer can follow without asking the implementation team. Store the test plan with case identifiers, the expected and actual results for each case, and the exported resource, mapping, and task configuration at the tested versions. Add the midPoint and connector versions, the task logs from the failure tests, the audit records of test changes, the reconciliation reports, and the signed exception list. Attach this bundle to the change record with the name of the owner who accepted each residual difference. This record shows the auditor and the operations team what was tested, what passed, and what was accepted, and it gives the next upgrade a baseline to repeat.
Questions teams ask before building AD and LDAP connectors
How much effort does an Active Directory connector build take?
Effort depends mostly on how many attributes, object types and containers the connector must manage, and on how much correlation work the existing directory requires. A connector that only creates and disables accounts in one OU is a small job. Effort grows when the team needs group membership sync, nested group handling, custom attribute mappings or password coordination across several domains or forests. Other drivers include the number of account types, whether existing accounts must be matched before midPoint takes over, and how many environments (test, staging, production) must stay in step. Ask any partner for a written breakdown by these items so the quote can be traced to specific work.
Can our own team build the midPoint LDAP connector without outside help?
Yes, if the team has the right skills. midPoint and its ConnId connectors are open source and documented, so engineers with Java experience and directory knowledge can build and run them. The harder part is usually the midPoint configuration model, which governs mappings, correlation rules and reconciliation. Teams often find the first connector takes longer than planned because of test accounts, service account permissions and schema questions. Consider outside help when the schedule is fixed, when no one has run a midPoint upgrade, or when auditors will need documented evidence. Evolveum's subscriptions cover product bugs, which is separate from building your connector.
What do directory administrators and the identity team need to provide?
Directory administrators provide a dedicated service account with scoped rights, a description of the OU and group structure, naming and attribute standards, and access to a non-production domain for testing. The identity team provides the source of truth for people and roles, decisions on which attributes midPoint owns, and approvers for changes to mappings. Both groups should agree in writing who signs off on schema changes, password handling and go-live. Ask for these inputs to be listed in the scope document with a named owner for each. Late access requests are a common reason connector work slips.
How long does connector testing take for a given scope?
Testing time follows the scope, so no single duration applies. The main drivers are the number of target systems, the number of account and group types, the volume of existing accounts to correlate, and how many test cycles your change board requires. Plan separate passes for connectivity, provisioning, correlation with existing accounts, password operations, reconciliation and performance under production-like load. Correlation testing often takes longer than teams expect because it needs sample data that reflects production patterns. Ask for test cases mapped to each requirement and a statement of what each environment covers. Confirm the timeline against your own environment and change calendar.
Does midPoint replace Active Directory or our existing directory tools?
No. midPoint manages provisioning, which means it creates, updates, disables and removes accounts and group memberships in target systems such as AD and LDAP directories. It does not take over authentication. Users still sign in to Active Directory or the directory service, and midPoint does not act as an SSO or access management server. Evolveum states that midPoint does not implement the server side of OAuth2, OpenID Connect or SAML, although its own user interface can sign in through an external SSO service. Existing directory tools keep their authentication role, and midPoint sits above them as the governance layer that decides what each account should have.
What should a fixed-scope midPoint connector quote include?
A fixed-scope quote should list each target directory, the account and group object types in scope, and the attributes and mappings to be built. It should state the correlation approach for existing accounts, the password handling method, and what is excluded. Add the environments covered, the number of test cycles, the documents delivered (such as configuration records and runbooks) and the acceptance criteria. Name the assumptions about access, service accounts and schema, and say what changes if those assumptions prove wrong. List handover to your team and any post-go-live support as separate items. DeployOpen plans and implements these engagements against a written scope, and the quote follows from that scope.
How is Evolveum product support different from implementation help?
Evolveum product support covers product bugs in midPoint, offered with an 8x5 next-business-day or 24x7 SLA as listed on Evolveum's support subscriptions page. Platform subscriptions add feature development and roadmap influence. Implementation help is different work: designing and building the connectors, mappings and test plan for your environment. DeployOpen provides that work under a written scope. An Evolveum subscription does not build your connector, and an implementation engagement does not replace the vendor's bug fixes. Many teams use both, with the subscription covering the platform and a partner covering the work in their environment. Confirm current SLA terms directly with Evolveum.
How DeployOpen scopes, builds and hands over directory connectors
DeployOpen implements midPoint's ConnId-based LDAP and Active Directory connectors inside your own infrastructure, starting from a written scope. Each engagement covers account and group synchronization, correlation of existing directory accounts, password handling and performance tuning, documented so your team can run the result.
How we scope
- Inventory the directory forests, domains, OUs and LDAP suffixes midPoint will read from or write to.
- Agree in writing which account and group attributes are provisioned, and which systems remain authoritative.
- Define correlation rules for matching existing directory accounts, and the duplicates or orphans to be reviewed.
How we build
- Configure the ConnId LDAP and Active Directory connectors against a non-production directory before any live write.
- Test synchronization, password change and group membership flows with representative accounts and sample data.
- Tune connector and task settings for batch size and reconciliation runs, then record the values and the reasons for them.
How we hand over
- Deliver connector configuration, mappings and service account permissions documented against the agreed scope.
- Walk your identity and directory administrators through runbooks for failed provisioning, password issues and reconciliation.
- Record test evidence and known limitations so your team can repeat checks after upgrades or directory changes.
How we support
- Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
- Ongoing support, upgrades and connector retesting are available as a retainer after handover.
- Confirm with Evolveum which connector versions and midPoint releases your chosen support subscription covers.

