Skip to content

Fortified IDDocs

LdapClient

Configuration reference for reusable outbound LDAP v3 connections.

The LdapClient module manages connections and access to LDAP directory services.

Each module instance manages a connection pool for one logical directory destination. A destination can contain several equivalent servers for failover. Configure separate named module instances for unrelated directories, or increase the number of instances to raise throughput.

The module provides an internal event-bus service with a JSON-based protocol and a Java library for simplified use.

This module is used for all internal LDAP access, including the bundled LDAP valves.

NameDescriptionDefaultMandatory
nameDestination name. Unique identifier for a specific configuration/connection/service. This value must be unique for all ldapclient configurations."default"
instancesNumber of instances to deploy.1
connectionLDAP connection configuration.{}
NameDescriptionDefaultMandatory
hostHostname or Ip-address to LDAP directory service. (Mandatory unless hosts is used)
portLDAP server port used with host and as the default for hosts entries that omit a port.636 with SSL; otherwise 389
hostsList of LDAP directory service hosts:ports. If more than one is specified, fail-over is enabled. When this property is used, host and port properties are optional.
bind_dnDN of the account used to authenticate the connection pool.""
bind_passwordPassword of the account used to authenticate the connection pool.""
pool_min_connectionsMinimum number of pooled LDAP connections. Must be at least 1.1
pool_max_connectionsMaximum number of pooled LDAP connections. Must not be lower than pool_min_connections.16
connect_timeout_msSpecifies the maximum length of time in milliseconds that a connection attempt should be allowed to continue before giving up. A value of zero indicates that there should be no connect timeout.10000
response_timeout_msSpecifies the maximum length of time in milliseconds that an operation should be allowed to block while waiting for a response from the server. A value of zero indicates that there should be no timeout.2000
abandon_on_timeoutSpecifies whether the LDAP client should attempt to abandon any request for which no response is received in the maximum response timeout period.true
follow_referralsSpecifies whether associated connections should attempt to follow any referrals that they encounter, using the referral connector for the associated connection.false
use_keep_aliveSpecifies whether to use the SO_KEEPALIVE option for the underlying sockets used by associated connections.false
use_lingerSpecifies whether to use the SO_LINGER option for the underlying sockets used by associated connections.false
linger_timeout_secsSO_LINGER timeout in seconds.30
use_schemaSpecifies whether to try to use schema information when reading data from the server (e.g., to select the appropriate matching rules for the attributes included in a search result entry). false
use_sslSpecifies if SSL/TLS should be used or not.true
ssl_trust_allTurns on/off trust validation for SSL/TLS connections. false
ssl_truststore_pathPath to custom SSL truststore. If not specified, the default Java truststore will be used.
ssl_truststore_passwordCustom truststore password
ssl_truststore_typeTruststore type used for the custom truststore."JKS"
ssl_truststore_validate_timeTurns on/off peer certificate validity check.true
is_active_directoryTurns on/off Active Directory specific paginated search results.true

Basic with no fail-over

{
"connection" : {
"host" : "ldap-host",
"port" : 389
}
}

Enable failover by using hosts and adding more hosts

{
"connection" : {
"hosts" : "ldap-host:389,other-ldap:389"
}
}

The LdapClient can record an audit trail for write operations (add, modify, delete). Audit logging is disabled by default and must be explicitly enabled per operation type.

When audit is enabled, the caller is expected to supply an AuditContext containing the subject (the authenticated user performing the operation) and a correlation ID. The LDAP valves automatically construct this context from the session and the pipe trace ID.

The audit block is placed at the top level of the module config, alongside connection.

NameDescriptionDefaultMandatory
audit.createRecord an audit event when an LDAP entry is added.false
audit.updateRecord an audit event when an LDAP entry is modified.false
audit.deleteRecord an audit event when an LDAP entry is deleted.false

Any write operation will generate an event.

  • LDAP_001 - Object created

    • traceId, if present
    • object, the dn
    • attrNames, list of attribute names
    • attrCounts, attribute count
  • LDAP_002 - Object creation failed

    • traceId, if present
    • object, the dn
    • resultCode from ldap if any
  • LDAP_003 - LDAP object deleted

    • traceId, if present
    • object, the dn
  • LDAP_004 - LDAP object deletion failed

    • traceId, if present
    • object, the dn
  • LDAP_007 - LDAP object updated
    • traceId, if present
    • object, the dn
    • attrNames, list of attribute names
    • attrCounts, attribute co
  • LDAP_008 - LDAP update failed
    • traceId, if present
    • object, the dn

LDAP_005 - LDAP object moved

  • traceId, if present
  • object, the dn
  • new_location

LDAP_006 - LDAP failed object move

  • traceId, if present
  • object, the dn