What is a Directory?

A Directory is a database of objects on the network. Each object represents a physical object in the real world. Examples of objects that exist in a Directory are:

  • user objects

  • user group objects

  • printer objects

  • server objects

Each object in the Directory has properties or attributes and values associated with these properties. Examples of properties for a user object include:

  • user's name, first and last

  • email address

  • mailing address

  • department

  • manager

  • phone number

  • rights or privileges the user has to other objects in the Directory

Some attributes are required for certain objects and others do not need a value. If the employee Joe Smith works for the Operations department of Novell, his user object in the Directory could be JSmith, with a property name department and property value of Operations.

Each Directory object has a different set of properties associated with its object. The Directory Schema governs the types of objects, object properties, and property values allowed in the Directory. You can see a list of objects for the Directory by looking at the Administration tool provided with the Directory or the Schema documentation provided with the Directory.

Examples of Directories include Novell's eDirectory, Microsoft's Active Directory, Sun's ONE Directory, and others.

LDAP

Lightweight Directory Access Protocol (LDAP) is an open standard and the common protocol used to access Directories. In order to allow software developers to write applications to access the Directory via the LDAP protocol Directories need to support the LDAP protocol. You can request or submit data to the Directory through LDAP. For more information about LDAP, see http://www.ldapzone.com.

Directory Objects

Two classifications of objects exist in an LDAP compliant Directory:

  • Leaf objects

  • Container objects

Leaf objects are objects such as user, user group, workstation, and printer objects.

Container objects are objects that contain other objects and logically organize other objects in the Directory. Container objects include Country objects, Organization objects, and Organizational Unit objects.The Schema defines which objects a container object can contain.

Root Object

The Root object is a special kind of directory object that defines the top of the tree. All other container and leaf objects reside underneath the Root object.

Naming Convention

The LDAP protocol defines a naming convention for objects in an LDAP Directory tree. Be aware that the naming convention syntax in LDAP differs from eDirectory. We will use the LDAP naming convention in our programs.

The LDAP naming convention uses the common name of the object together with the context. The context of an object is the position of the object in the Directory tree. It allows the Directory to find the object. The common name of the object is the name of the object in the Directory. In Figure 1, user jDesman is the common name for that object. His distinguished LDAP name that you would use (if you were making an LDAP request for his object) is: cn=jDesman, ou=dev, ou=prv, o=novell. This name comes from the name attributes of his objects. The two container objects, Dev and Prv, are Organizational Unit objects. Novell is the Organization object.

LDAP naming conventions.

Figure 1: LDAP naming conventions.

For more information on LDAP naming, see http://www.ldapzone.com.

eDirectory

eDirectory is a full service LDAP version 3 compliant Directory. It manages every resource on the network instead of each server managing the resources connected to it.

eDirectory: From a Software Developer's Perspective

The eDirectory schema is extensible, meaning that you can add new classes or attributes to the schema depending on your application needs. eDirectory provides multiple interfaces from multiple languages and platforms. LDAP is the preferred connection protocol to eDirectory so the eDirectory interfaces support LDAP. As a developer, you have access to eDirectory from VB, C, C++, Java, PHP, Perl, or any interface that has LDAP classes or support. Novell has developed LDAP libraries for C, and Java. ActiveX controls have been developed for VB. LDAP classes for Java have been developed, as well as LDAP extensions for JNDI, eCommerce JavaBeans, and an LDAP JDBC driver.

As an eDirectory developer, you should be familiar with the schema of the Directory. Each API does have ways for you to programmatically see the schema of the Directory. An easier solution is to download the eDirectory Schema Reference from http://developer.novell.com. This document, provides information on attributes for each type of object in the Directory and is a significant resource for the Directory schema.

download sample files
Previous blank Table of Contents blank Next