Build an LDAP server in WINDOWS

Source: Internet
Author: User
Tags ldapsearch openldap

LDAP server:

Modify the include./schema/core. schema in slapd. conf:

Include./schema/core. schema
Include./schema/cosine. schema
Include./schema/misc. schema
Include./schema/inetorgperson. schema

Original article:

Specified specified cial solutions are available to build an LDAP directory. However most products are either very expensive or not standards compliant (e.g. Active Directory ).

OpenLDAP is an Opensource LDAP server designed for Unix platforms. A Windows release of this solution wocould be valuable for those who are stuck to a Microsoft Windows environment.

Thanks to Lucas Bergman, from FiveSight, such release is available. he developed the necessary patches and build process to deliver a binary package ready for use. the initial version hosted at FiveSight is no longer available, but Lucas keeps working on the windows port and built a new release, complete with installer: ( ). lucas is now lucky enough to work mainly on Unix and Matthias Mohr has taken the lead. his updated builds are available at:

For the impatients, or those who dont want to bother with config files, the Ilex company released another version with a more comprehensive installer, but an older version of OpenLDAP. this package is available at:


Download the OpenLDAP installer from:

Launch the installer, select language, accept license and choose target installation directory. the default is: c: Program FilesOpenLDAP. as spaces in directory names usually lead to trouble, choose another place, e.g. c: openldap.

Matthias improved the installer to automatically register OpenLDAP as an NT service and install BDB tools. Those are useful to fix a broken database after a system crash.

The installer let you choose service start up mode (auto or manual) and automatically builds a valid configuration. the OpenLDAP start up files are stored in c: openldapun, the directory data files end up in c: openldapvaropenldap-data.


The main OpenLDAP configuration file is slapd. conf. It has to be customized before launching the server.

This is just a quick start guide, please have a look at the official OpenLDAP documentation for more information.

Specify the Unicode data directory, by default:./ucdata.
Choose the needed LDAP schemas. schemas define directory structure, like columns and tables in a relational database. the core schema is mandatory, add the java schema if you intend to use OpenLDAP as a JNDI server.
Configure the path for OpenLDAP pid and args start up files. The first contains the server pid, the second between des command line arguments.
Choose the database type, by default bdb (Berkeley DB ).
Specify the server suffix. all entries in the directory will have this suffix, which represents the root of the directory tree. for example, with suffix "dc = guessant, dc = org", the fully qualified name of all entries in the database will end with: dc = guessant, dc = org.
Define the name of the administrator entry for the server, named the rootdn, along with its password rootpw. this is the super user of the server. the rootdn name must match the suffix defined above. as stated, all entry names must end with the suffix, and the rootdn is an entry.
Example configuration file:

Include./schema/core. schema

Pidfile./run/slapd. pid
Argsfile./run/slapd. args

Database bdb
Suffix "dc = guessant, dc = org"
Rootdn "cn = Manager, dc = guessant, dc = org"
Rootpw secret

The slapd.exe executable is the OpenLDAP server. double click on this file or launch it from a command line. do not perform CT any message, but leave the command window open for the next steps. if you want debug information, use the-d switch:

Slapd-d 1 Server test

The OpenLDAP command line tools can be used to test the server. The following command executes a search query on the server:

Ldapsearch-x-s base (objectclass = *) namingContextsType this command in a cmd window positioned in the OpenLDAP installation directory. For more information on search syntax, try ldapsearch -? .

In order to operate server administration, you can switch to a graphical LDAP client, such as the LDAP Browser/Editor developed by Jarek Gawor, available at: /~ Gawojar/ldap

Start the client and provide connection information:

The connection must succeed, but an error message is displayed in the status bar: List Failed. this error is expected as there is no entry in the database, double click on the message to get more details.

Build directory content

In order to insert the first entries in the database, create an init. ldif file and add the following content (according to the configuration specified in slapd. conf ):

Dn: dc = guessant, dc = org
Objectclass: top
Objectclass: dcObject
Objectclass: organization
O: Guessant
Dc: guessant

Dn: cn = Manager, dc = guessant, dc = org
Objectclass: organizationalRole
Cn: ManagerCreate this file directly in OpenLDAP installation directory or anywhere after adding the installation directory to the system PATH.

Load entries in directory (adjust slapd. conf and init. ldif files path as needed ):

Slapadd-f slapd. conf-l init. ldifThe slapadd command bypasses the LDAP server and applies changes directly to the BDB database. Restart the server to flush its cache.

Try a new connection with Ldap Browser to check the new entries. A named (I. e. not Anonymous) connection is necessary to add or change entries: uncheck Anonymous Bind and provide User Info.

According to example configuration, User DN is cn = Manager, check append base DN and use password secret.

Install as an NT service

In order to have the server always available, register OpenLDAP as a Windows service. If the option was not checked at installation time, use the following command:

Slapd installAnd to remove the service:

Slapd removeOpenLDAP daemon parameters can be modified by creating registry keys. Create a. reg file with the following content en register keys by double clicking on it:


"DebugLevel" = dword: 00000000
"ConfigFile" = ". \ slapd. conf"
"Urls" = "ldap: //" See README.txt file already ded in the distribution for more information on registry keys search algorithm.

DebugLevel is used to change trace level, ConfigFile is the configuration file path and Urls matches the syntax of the-h command line option.

For example, set Urls to ldap: // localhost: port/to set a different listen port.


Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.