Console terminology: In the Maverics Console, this section is called
Identity Fabric. The YAML configuration uses the
connectors key to define
identity provider integrations.Overview
The LDAP Authentication connector supports both LDAP and LDAPS (LDAP over TLS) protocols for secure directory integration. It authenticates end users via LDAP bind operations against the directory. For attribute-only lookups without authentication, see the LDAP Attribute Provider.Use Cases
- Legacy app SSO with on-premises directories — Extend single sign-on to applications that authenticate against LDAP directories, without rewriting the application or migrating users out of the directory
- IdP consolidation for LDAP-dependent apps — Route authentication through the Orchestrator so LDAP-bound applications can participate in a unified authentication layer, reducing the need for standalone LDAP integrations per app
- Hybrid identity bridge — Combine LDAP bind authentication with cloud IdP sessions so users in on-premises directories can access both legacy and modern applications through a single login experience
- Combined authentication and attribute retrieval — Authenticate users and retrieve directory attributes (group memberships, email, department) in a single connector for header injection or policy evaluation
Setup
- Console UI
- Configuration
To create an LDAP Authentication connector in the Maverics Console:Settings
- Navigate to Identity Fabric in the Console sidebar.
- Click Create and select LDAP Authentication.
- Enter a Name for the connector.
- Enter the URL of the LDAP server (e.g.,
ldaps://ldap.example.com:636). - Enter the Service Account Username (bind DN used to connect to the server).
- Enter the Service Account Password.
- Enter the Base DN for LDAP searches (e.g.,
dc=example,dc=com). - Enter the Username Search Key — the attribute used to filter on during query and bind operations (e.g.,
uidfor OpenLDAP,sAMAccountNamefor AD). - Optionally select an Authentication Search Scope from the dropdown to control the search depth (e.g.,
wholeSubtree). - Click Save.
- In the connector settings, scroll to the Template and Assets section.
- Upload a Template File — an HTML file using Go Template syntax that renders the login form (e.g.,
ldap-login.html). - Under Methods, configure the language parsing method:
- Parsing Method Type — How the Orchestrator determines the user’s language. Options include
http.request.header(from theAccept-Languageheader) orhttp.request.query(from a URL query parameter). - Parsing Method Name — The specific header or query parameter name to read the language from (e.g.,
Accept-Languagefor headers, orui_localfor a query parameter).
- Parsing Method Type — How the Orchestrator determines the user’s language. Options include
- Under Localization, add one or more language entries:
- Language — A BCP 47 language tag (e.g.,
en,fr,es). - Upload the corresponding JSON localization file for each language.
- Language — A BCP 47 language tag (e.g.,
- Click Save.
Custom Login Page
WhencustomLogin.templateFile is configured, the Orchestrator serves a custom HTML page for LDAP authentication instead of the default login form. The template file uses Go Template syntax with the following variables:
| Variable | Type | Description |
|---|---|---|
.LoginURL | string | The URL the form must POST credentials to |
.RedirectURL | string | The originally requested URL — include as a hidden form field so the user is redirected after login |
.Error | string | An error message if the previous login attempt failed (empty on first load) |
.Language | string | The resolved BCP 47 language tag for the current request |
.Localization | object | The parsed localization data from the JSON file matching the current language |
POST request to {{ .LoginURL }} with the following form fields:
username— the user’s login namepassword— the user’s passwordredirectURL— the value of{{ .RedirectURL }}
ldap-login.html
Localization
The custom login page supports standards-based language localization using BCP 47 language tags. The Orchestrator determines the user’s preferred language and loads the corresponding localization file, making its contents available as.Localization in the Go Template.
Language Detection
ThecustomLogin.parseLanguageFrom block controls how the Orchestrator determines the user’s preferred language:
http.request.header— Parses the language from an HTTP request header. SetnametoAccept-Languageto use the browser’s default language preference.http.request.query— Parses the language from a URL query parameter. Setnameto the query parameter name (e.g.,ui_localfor URLs like?ui_local=fr).
Localization File Format
Each localization file is a JSON object with key-value pairs. The keys are referenced in the Go Template as fields on.Localization:
en.json
fr.json
{{ .Localization.<key> }} (e.g., {{ .Localization.title }}).
Troubleshooting
- Test LDAP connectivity from the Orchestrator host — Use
ldapsearchor a similar tool to verify the Orchestrator can reach the LDAP server on the configured port. Network firewalls or DNS issues are common causes of connection failures. - Verify the service account has read permissions on the baseDN — The bind DN specified in
serviceAccountUsernamemust have sufficient permissions to search thebaseDNsubtree and read the attributes listed inuserAttributes. - For LDAPS, ensure the TLS profile includes the correct CA certificate — If the LDAP server uses a private CA, the TLS profile referenced by the
tlsfield must include the CA certificate viacaFile. Self-signed certificates requireinsecureSkipVerify: true(not recommended for production). - Check attribute names in mapping — LDAP attribute names are case-insensitive in the protocol but must match the directory schema. Common sources of confusion:
mailvsemail,cnvscommonName,sAMAccountNamevsuid. - Custom login page not rendering — Verify that the
customLogin.templateFilepath is correct and the file is readable by the Orchestrator process. Check Orchestrator logs for template parsing errors. - Localization not switching languages — Confirm that the
parseLanguageFrom.typeandparseLanguageFrom.namevalues match how your application sends language preferences. Verify the BCP 47 tags in thelocalizationmap match the tags sent by the client.
Related Pages
LDAP Attribute Provider
LDAP attribute lookups without authentication
Active Directory
LDAP-based connector optimized for Active Directory environments
Identity Fabric
Overview of all identity providers
Continuity
IdP failover connector