Solaris ISP Server 2.0 Administration Guide

Avoiding Schema Dependence

Because the Solaris ISP Server schema is still evolving, developing code that depends on it could make your program hard to maintain. Future releases of the product may have schema changes that are not compatible with the current schema. Any program that uses schema-dependent code, such as hard-coded object class or attribute names or assuming certain directory information tree structure, would have to be modified and recompiled with the new schema specifics.

To avoid this problem as much as possible, isolate any schema specifics in your code. When you need a specific detail, such as the distinguished name of a configuration entry, use the ISP Directory Information API to get it. If you need information that IDIA does not provide, use the LDAP client library and isolate the functionality in separate functions or classes in your code and reuse them.

ISP Directory Information API

The ISP Directory Information API provides C and Java programming language access to the directory services. The functions return information specific to the directory information tree (DIT) used by Solaris ISP Server. By default, the header file is located at /opt/SUNWisp/include/isp_dir_api.h, and the library is located at /opt/SUNWisp/lib/libispdir.so.1. The Java package is com.sun.isp.idia.

The directory information API includes the following:

ispGetLdapInfo(3X)

This C functions provides the distinguished name and password for binding to the LDAP server with access to a particular region of the directory information tree (DIT).

ispGetLdapServers(3X)

This C function provides the names and port numbers of LDAP directory servers configured on the network.

ispGetTopDn(3X)

This C function provides the distinguished name of the root domain (top-level domain entry in the DIT, under which Solaris ISP Server information is stored).

ispLdapService(3X)

This Java class provides information on LDAP servers configured on the network. Various class methods return the root domain entry in the DIT and distinguished names and passwords for binding to the directory.

LDAP Client Library

The LDAP client library is an implementation of the LDAP v3 standard. It provides support for client applications communicating with an LDAP server such as Sun Directory Services.

By default, the header files are located at /usr/include/ldap.h and /usr/include/lber.h, and the library is located at /usr/lib/libldap.so.3. The LDAP client library man pages are located in /usr/share/man, in section 3.