LDAP Libraries for C - Windows, Linux
1.0 LDAP Libraries for C
2.0 Platform-specific Information
2.1 Windows 2.2 Linux 2.2.1 System Requirements 2.2.2 Installation on Linux 2.2.3 Novell Import Convert Export Utility
3.0 Sample Programs
4.0 LDAP v2 and v3 Support
5.0 Bind
6.0 SSL Support
7.0 LDAP Controls
8.0 LDAP Extensions
9.0 LDAP Utilities
10.0 Dependencies
11.0 Known Issues and Solutions
12.0 OpenLDAP Copyrights
13.0 OpenSSL Acknowledgement
14.0 Revision History
14.1 Changes for the June 2005 NDK 15.1.1 New Functionality 14.2 Changes for the October 2004 NDK 15.2.1 New Functionality 15.2.2 Sample Code
15.0 Legal Notices
1.0 LDAP Libraries for C
LDAP (Lightweight Directory Access Protocol) is an emerging Internet standard for accessing directory information, allowing LDAP-enabled applications to access multiple directories. LDAP v3 supports such features as secure connections (through SSL and SASL), entry management, schema management, and LDAP controls and extensions for expanding LDAP's functionality. The LDAP Libraries for C kit enables you to write applications to access, manage, update, and search for information stored in Novell eDirectory and other LDAP-aware directories.
2.0 Platform-specific Information
The LDAP Libraries for C are supported on:
32-bit: - Microsoft Windows 2003 Server - Microsoft Windows 2008 Server - Microsoft Windows XP - Microsoft Windows vista - Microsoft Windows 7 - Microsoft Windows 8 64-bit: - Microsoft Windows 2008 Server - Microsoft Windows 2012 Server - Microsoft Windows vista - Microsoft Windows 7 - Microsoft Windows 2008 R2 Server - Microsoft Windows 8 During installation, your PATH variable is updated to include the following directories 32-bit: <Unzipped_Location>\pkg\win32\bin <Unzipped_Location>\pkg\win32\tools 64-bit: <Unzipped_Location>\pkg\win64\bin <Unzipped_Location>\pkg\win64\tools The kit includes the following libraries: ldapsdk.dll ldapssl.dll ldapx.dll Additionally, several template files are included in the tools directory for use with the DirLoad data handler. These files can be used to generate any number of unique test objects to populate a directory. The tools directory contains 2 sub-directories - tables and templates. The tables directory contains the files named cities, company, domain, first, initial, lastnames, titles, etc. The templates directory contains the file named attrs. 2.2 Linux 2.2.1 System Requirements The LDAP Libraries for C are supported on: - SLES 11 SP1, SP2, SP3 and later Support Packs - SLES 10 SP4 and later Support Packs - RHEL 5.4, 5.5, 5.6, 5.7, 5.8, 5.9 and later Support Packs - RHEL 6.2, 6.3, 6.4 and later Support Packs 2.2.2 Installation on Linux Extract the files to a directory on your Unix system. This process creates the following directories and populates with the files provided by the kit. - include This directory contains the header files needed to built your client application. - lib This directory contains the following library files provided with the kit. libldapsdk.so libldapx.so libldapssl.so libldapgss.so These library files were built with the platform's native compiler. The specific library files that you link depend on the type of application(s) you are building. The following libraries are used by the Novell Import Convert Export Utility and are also included: libldaphdlr.so libldif.so libdelim.so libdirload.so libsal.so libschhdlr.so Additionally, several template files are included in the tools directory for use with the DirLoad data handler. These files can be used to generate any number of unique test objects to populate a directory. The tools directory contains 2 sub-directories - tables and templates. The tables directory contains the files named cities, company, domain, first, initial, lastnames, titles, etc. The templates directory contains the file named attrs. When running applications, add the following path to the LD_LIBRARY_PATH environment variable: 32-bit: <install directory>/cldapsdk/lib 64-bit: <install directory>/cldapsdk/lib64 - tools This directory contains the LDAP command-line tools. - etc This directory contains Novell Import Convert Export Utility (ICE) default configuration file, ice.conf. - res This directory contains the following xlf files used by Novell Import Convert Export Utility. delim_en.xlf dirload_en.xlf ldaphdlr_en.xlf ldif_en.xlf schhdlr_en.xlf - man This directory contains the LDAP command-line tools man pages. To view the man pages, add the following path to the MANPATH environment variable : <install directory>/cldapsdk/man 2.2.3 Novell Import Convert Export Utility Set the following environment variables before running the Import Convert Export (ICE) utility. 1. Set ICE_CONF to <install directory>/cldapsdk/etc/ice.conf 2. Set ICE_RES_PATH to <install directory>/cldapsdk/res
3.0 Sample Programs
A directory named "samples" contains dozens of complete sample programs demonstrating the use of most LDAP APIs. The directory "samples\extensions" contains samples of Novell LDAP extensions. Novell's eDirectory supports several LDAP extensions such as obtaining effective rights, managing replicas and partitions, and refreshing the LDAP server. A directory named "samples" contains dozens of complete sample programs demonstrating the use of most LDAP APIs. The directory "samples\extensions" contains samples of Novell LDAP extensions. Novell's eDirectory supports several LDAP extensions such as obtaining effective rights, managing replicas and partitions, and refreshing the LDAP server. A simple batch file or makefile is also supplied in the samples directory to aid you in building samples or test programs. You must edit a few lines in the batch files to indicate the location of the LDAP SDK and the compiler in your environment. bldw32.bat - For Win32 platforms, using the MSVC compiler bldw64.bat - For Win64 platforms, using the MSVC compiler Makefile - For Unix systems.
4.0 LDAP v2 and v3 Support
This version of the LDAP Libraries for C supports mainly LDAPv3. Since the consensus in the LDAP community is to encourage everyone to update to LDAPv3, Novell has not made a commitment to ensure that these libraries support LDAPv2 servers.
5.0 Bind
eDirectory supports simple bind. However, for non-encrypted connections, the LDAP server must be configured to allow clear-text passwords. The LDAP Libraries for C kit includes SASL functions and bind functions that perform simple binds. For secure, encrypted connections to eDirectory, use the SSL connections with certificates.
6.0 SSL Support
SSL support is provided by a companion library (ldapssl or libldapssl). Applications using SSL need to link with this library. It provides functions for initializing SSL and creating LDAP session handles that are SSL enabled. An SSL-enabled session handle ensures that all data is encrypted between the client and the server. This product uses OpenSSL Version 0.9.6k.
7.0 LDAP Controls
LDAP servers may support controls. Query the root DSE to get a list of supported controls. See the GetDSE.c sample for coding example. The LDAP Libraries for C kit supplies functions to help applications use these controls.
8.0 LDAP Extensions
SDK support for LDAP extensions are provided by a companion library (ldapx or libldapx). Applications using extensions need to link with this library. eDirectory supports the following LDAP extensions for obtaining effective rights, managing replicas and partitions, and refreshing the LDAP server: 2.16.840.1.113719.1.27.100.1 Nds To Ldap Response 2.16.840.1.113719.1.27.100.2 Nds To Ldap Request 2.16.840.1.113719.1.27.100.3 Split Partition Request 2.16.840.1.113719.1.27.100.4 Split Partition Response 2.16.840.1.113719.1.27.100.5 Merge Partition Request 2.16.840.1.113719.1.27.100.6 Merge Partition Response 2.16.840.1.113719.1.27.100.7 Add Replica Request 2.16.840.1.113719.1.27.100.8 Add Replica Response 2.16.840.1.113719.1.27.100.9 Refresh Server Request 2.16.840.1.113719.1.27.100.10 Refresh Server Response 2.16.840.1.113719.1.27.100.11 Remove Replica Request 2.16.840.1.113719.1.27.100.12 Remove Replica Response 2.16.840.1.113719.1.27.100.13 Partition Entry Count Request 2.16.840.1.113719.1.27.100.14 Partition Entry Count Response 2.16.840.1.113719.1.27.100.15 Change Replica Type Request 2.16.840.1.113719.1.27.100.16 Change Replica Type Response 2.16.840.1.113719.1.27.100.17 Get Replica Info Request 2.16.840.1.113719.1.27.100.18 Get Replica Info Response 2.16.840.1.113719.1.27.100.19 List Replica Request 2.16.840.1.113719.1.27.100.20 List Replica Response 2.16.840.1.113719.1.27.100.21 Receive All Updates Request 2.16.840.1.113719.1.27.100.22 Receive All Updates Response 2.16.840.1.113719.1.27.100.23 Send All Updates Request 2.16.840.1.113719.1.27.100.24 Send All Updates Response 2.16.840.1.113719.1.27.100.25 Request Partition Sync Request 2.16.840.1.113719.1.27.100.26 Request Partition Sync Response 2.16.840.1.113719.1.27.100.27 Request Schema Sync Request 2.16.840.1.113719.1.27.100.28 Request Schema Sync Response 2.16.840.1.113719.1.27.100.29 Abort Partition Operation Request 2.16.840.1.113719.1.27.100.30 Abort Partition Operation Response 2.16.840.1.113719.1.27.100.31 Get Bind DN Request 2.16.840.1.113719.1.27.100.32 Get Bind DN Response 2.16.840.1.113719.1.27.100.33 Get Effective Privileges Request 2.16.840.1.113719.1.27.100.34 Get Effective Privileges Response 2.16.840.1.113719.1.27.100.35 Set Replication Filter Request 2.16.840.1.113719.1.27.100.36 Set Replication Filter Response 2.16.840.1.113719.1.27.100.37 Get Replication Filter Request 2.16.840.1.113719.1.27.100.38 Get Replication Filter Response 2.16.840.1.113719.1.27.100.39 Create Orphan Partition Request 2.16.840.1.113719.1.27.100.40 Create Orphan Partition Response 2.16.840.1.113719.1.27.100.41 Remove Orphan Partition Request 2.16.840.1.113719.1.27.100.42 Remove Orphan Partition Response Extensions to trigger eDirectory background processes via ldap_trigger_back_process(): 2.16.840.1.113719.1.27.100.43 Trigger Backlinker Request 2.16.840.1.113719.1.27.100.44 Trigger Backlinker Response 2.16.840.1.113719.1.27.100.47 Trigger Janitor Request
2.16.840.1.113719.1.27.100.48 Trigger Janitor Response 2.16.840.1.113719.1.27.100.49 Trigger Limber Request 2.16.840.1.113719.1.27.100.50 Trigger Limber Response 2.16.840.1.113719.1.27.100.51 Trigger Skulker Request
2.16.840.1.113719.1.27.100.52 Trigger Skulker Response 2.16.840.1.113719.1.27.100.53 Trigger Schema Synch Request 2.16.840.1.113719.1.27.100.54 Trigger Schema Synch Response 2.16.840.1.113719.1.27.100.55 Trigger Partition Purge Request 2.16.840.1.113719.1.27.100.56 Trigger Partition Purge Response 2.16.840.1.113719.1.27.100.79 Monitor Events Request 2.16.840.1.113719.1.27.100.80 Monitor Events Response 2.16.840.1.113719.1.27.100.81 Event Notification 2.16.840.1.113719.1.27.100.84 filteredEventMonitorRequest 2.16.840.1.113719.1.27.103.1 createGroupingRequest 2.16.840.1.113719.1.27.103.2 endGroupingRequest 2.16.840.1.113719.1.148.100.1 Put Login Configuration 2.16.840.1.113719.1.27.103.2 endGroupingRequest The Novell Import Convert Export utility uses the following extensions. They are not general extensions designed for developer use but are designed to support the LDAP Bulk Update Replication Protocol (LBURP). 2.16.840.1.113719.1.142.100.1 Start Framed Protocol Request 2.16.840.1.113719.1.142.100.2 Start Framed Protocol Response 2.16.840.1.113719.1.142.100.4 End Framed Protocol Request 2.16.840.1.113719.1.142.100.5 End Framed Protocol Response 2.16.840.1.113719.1.142.100.6 Lburp Operation Request 2.16.840.1.113719.1.142.100.7 Lburp Operation Response To use any Novell extensions, the LDAP server must be running on eDirectory version 8.5 or higher. To obtain a copy, see Novell's developer product site: http://www.novell.com/download/ The LDAP Libraries for C kit includes functions to help applications use these extensions. If you used an early beta version of eDirectory 8.5, be aware that the OIDs for the extensions changed for beta 5 and the final release.
9.0 LDAP Utilities
This release includes the command line version of the Novell Import Convert Export utility (ice, ice.exe, or ice.nlm). This utility performs all the functions of the legacy LDAP utilities. Novell recommends using this utility instead of the legacy LDAP utilities. Note that the Novell Import Convert Export utility will work on any LDAP v2 or v3 server. However, it will take advantage of the fast LBURP protocol with eDirectory 8.5 or higher. NetWare NLMs are limited to names with a maximum of 8 characters; therefore the NetWare platform requires shorter names for the LDAP utilities. They have been renamed as follows for the NetWare platform: LDAP Utility ldapadd ldapdelete ldapmodify ldapsearch ldapmodrdn ndsindex ice These utilities are located in the tools directory. You need to either copy them to the system directory or include the directory in the PATH variable.
10.0 Dependencies
For full functionality, the LDAP Libraries for C kit is dependent upon the following: - LDAP Extensions. The LDAP extensions for partition and replica management, getting effective rights, and refreshing the LDAP server require eDirectory 8.5. To obtain a version, see the Novell downloads page at (http://www.novell.com/download/).
11.0 Known Issues and Solutions
12.0 OpenLDAP Copyrights
Portions of the source for the LDAP Libraries for C are based on the Directory SDK (Version 2.0) available from OpenLDAP.org. The following have contributed to the source code. - Copyright 1990, 1995 Regents of the University of Michigan. All rights reserved. - Copyright 1987 Regents of the University of California - Copyright 1991 by the Massachusetts Institute of Technology - Copyright 1994 Enrique Silvestre Mora, Universitat Jaume I, Spain. - Copyright 1992, 1993, 1994 Henry Spencer. - Copyright 1992, 1993, 1994 The Regents of the University of California. - Copyright 1998, 1999 The OpenLDAP Foundation, Redwood City, CA All rights reserved. - Copyright 1997, 1998, 1999 Computing Research Labs, New Mexico State University - Copyright 1999 PADL Software Pty Ltd.
13.0 OpenSSL Acknowledgement
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/).
14.0 Revision History
14.1 Changes for the June 2005 NDK
14.1.1 New Functionality
14.2 Changes for the October 2004 NDK
14.2.1 New Functionality
14.2.2 Sample Code
15.0 Legal Notices
Novell, Inc. makes no representations or warranties with respect to the contents or use of this documentation, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. Further, Novell, Inc. reserves the right to revise this publication and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. Further, Novell, Inc. makes no representations or warranties with respect to any software, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. Further, Novell, Inc. reserves the right to make changes to any and all parts of Novell software, at any time, without any obligation to notify any person or entity of such changes. You may not use, export, or re-export this product in violation of any applicable laws or regulations including, without limitation, U.S. export regulations or the laws of the country in which you reside. All files provided in this release are subject to the Novell Developer License Agreement, which can be found in the license.txt file provided in this download. Copyright 2004 Novell, Inc. All rights reserved. No part of this publication may be reproduced, photocopied, stored on a retrieval system, or transmitted without the express written consent of the publisher. Novell is a registered trademark of Novell, Inc. in the United States and other countries. All third-party trademarks are the property of their respective owners.
(C) 2013 NetIQ Corporation and its affiliates. All Rights Reserved.
For information about NetIQ trademarks, see http://www.netiq.com/company/legal/.