LDAP 3 is still in development, but Netscape, Novell, and Microsoft have already committed to its use
The whole point of using a directory service is to create a single repository for all your network's authentication and configuration data and to control both users' and applications' access to that repository. To create a
single repository that provides access to services, file servers, databases, and
other applications, you need a communications link between the directory service
and proprietary applications. Lightweight Directory Access Protocol (LDAP)
provides this link.
As part 1 of this article explained, LDAP has progressed from a
TCP/IP-based X.500 directory access solution to its current status as a
potential industry standard for directory service communications (see my article
"LDAP and the Future of Directory Services, Part 1," October 1997).
Currently, the Internet Engineering Task Force (IETF) is working on LDAP 3. (The
most recent rewrite is LDAP 3.3. To keep abreast of developments, check the
University of Michigan's LDAP Web site at
http://www.umich.edu/~rsug/ldap/ldap.html.) LDAP 3 defines additional features
that will let the protocol more effectively communicate with different directory
services.
Although LDAP 3 is still in development, the big three in the networking
industry--Netscape, Novell, and Microsoft--have already committed to its use for
their individual directory service products. This second installment of this
two-part series examines how these vendors are implementing LDAP in their
directory service solutions, each of which is at a different stage of
development. Comparing these three LDAP implementations--Novell's LDAP Services
for Novell Directory Services (NDS), Netscape's Directory Server 3.0, and
Windows NT 5.0 Active Directory (AD)--demonstrates the protocol's flexibility in
different environments and provides additional insight into the directory
services.
Novell Directory Services and LDAP
Novell has a considerable advantage over Netscape and Microsoft because its
directory service solution has been on the market since 1993. This product was
originally called NetWare Directory Services because Novell designed it to store
information about NetWare resources. Novell expanded its utility, however, so
that it would store information about the entire enterprise network. To reflect
this expansion, Novell changed the name to Novell Directory Services in 1996.
Novell largely based NDS on the X.500 directory standard. NDS uses the same
organizational principles, many of the same object classes, and a slightly
altered namespace. Like X.500, NDS is a distributed directory that lets users
see data stored on multiple servers as a unified set.
NDS differs from X.500 in one important respect, however. The communication
between the servers follows the NetWare Core Protocol. NCP uses Novell's
proprietary IPX protocol for its network layer services.
As part of the effort to expand NDS's functionality beyond the NetWare
operating system, Novell has released versions that run on UNIX and promises an
NT version before the year end. At this time, however, NetWare servers most
often host the directory service. With NetWare servers, you can use Novell
Administrator for Windows NT to replicate NT domain user information into an NDS
tree. (For more information about this product, see my article "NAdminNT
Brings NT Domains and NDS Together," July 1997.)
Using LDAP Services for NDS
Because of the extensive period of development, deployment, and real-world
directory service experience, Novell's adaptation of NDS to use LDAP was a
relatively small task compared to Netscape's and Microsoft's efforts. In late
1996, Novell released its LDAP Services for NDS, a NetWare loadable module (NLM)
that publishes NDS data to LDAP clients on the Internet or an intranet.
NLM uses LDAP 2, which the IETF publishes as Request for Comments (RFC)
1777. Clients can use NLM to access any information stored in an NDS directory,
but they can't access non-X.500 directories.
To overcome this disadvantage, NLM adds manual mapping functions to the NDS
database. Novell bases NDS on the X.500 standard, but NDS's directory schema
specifies different names for certain objects and attributes, even when the
objects and attributes perform the same function as those in X.500. Therefore,
you must reconcile these names for the LDAP server module to effectively
communicate with NDS. For this purpose, Novell includes object class and
attribute mapping functions in the LDAP Services for NDS configuration screens.
(In the future, LDAP 3 will let a directory publish its schema as part of the
communications process.)
Letting network administrators manually map NDS object classes and
attributes to specific LDAP equivalents, as shown in Screen 1, provides two
important advantages. First, you can extend the directory schema. If an
application has new NDS object classes or if existing object classes have new
attributes, you can make these new elements available to LDAP clients.
Conversely, you can use manual mapping to limit the objects and attributes
available to LDAP clients. For example, suppose you want to let customers use an
LDAP client over the Internet to access employee telephone numbers and email
addresses stored in a directory, but you want to prevent them from seeing
confidential object information. By mapping only selected attributes, you
control the information available to LDAP clients without the need for
authentication.
The second important advantage is that LDAP Services for NDS provides
access control. NDS security operates at the server level by letting users bind
to the directory either with their standard NDS user names or anonymously with a
proxy user account (a single access account that all users share). If users bind
to the directory with their standard NDS user name, the passwords are not
encrypted. To remedy this problem, you can use LDAP's access control lists
(ACLs) to restrict access to the directory at the client level. ACLs let you
specify the level of access you want to give specific users. As Screen 2 shows,
you can grant access to specific objects and attributes.
Although Novell intends to upgrade its support for LDAP when IETF ratifies
the new version, the primary advantage of NDS and the LDAP Service for NDS is
that they are available now. Netscape and Microsoft are relying on new
technologies that have yet to undergo the ultimate testing of real-world use.
NT 5.0's AD and LDAP
One of the greatest stumbling blocks to the growth of NT as a network
operating system (NOS) has been the lack of an enterprise directory service.
Microsoft designed the trusted domain model currently in use for workgroup and
departmental computing. The model lacks the features (such as object hierarchy,
extensible schema, and a data distribution strategy) that would make it adequate
for large networks. Microsoft has promised a more effective directory service
since it first announced Cairo in 1993, but the company doesn't expect to
release this product (AD) until 1998 as part of NT 5.0.
Microsoft's new directory service, AD, uses Domain Name System (DNS)
locating technology, X.500 object naming, and LDAP communications. In an AD
implementation, the individual domains that formed the original NT directory
service will become DNS domains that are interconnected in a domain tree that
unifies the entire network.
Communication is an essential part of the AD strategy. One of the directory
service's most important features is its ability to subsume and manage other
directory services running on the same network. This feature lets you use the
information stored in the AD to authenticate user access to applications, such
as Lotus Notes, that maintain their own directories. You can also replicate
object data from other NOS-based directory services (e.g., NDS) and use AD tools
to manage that data.
AD includes subsets of several different communications protocols that
X.500, LDAP 2, and LDAP 3 use. These protocols are part of a set of APIs called
the Active Directory Service Interfaces (ADSI). ADSI creates interfaces between
AD and other applications and directory services. These interfaces let AD
communicate with the existing directories that both commercial and custom
network applications use.
LDAP 2 includes a collection of low-level C-based APIs (defined in RFC
1823) that let you implement client access to an LDAP server. AD supports these
APIs, but ADSI simplifies the programming tasks involved by providing COM-based
APIs. Thus, you can use simpler programming and scripting languages, such as
Visual Basic and Perl.
External providers, such as Kerberos and Secure Sockets Layer (SSL) 3.0,
provide authentication and security for LDAP communications in AD. These
external providers use a Security Support Provider Interface (SSPI) designed to
permit the use of other compliant providers as they become available. ADSI also
facilitates the creation and management of new directory service objects, using
LDAP to create equivalent objects in other participating directories.
AD supports several different object-naming systems that let users use the
notation they are most comfortable with to refer to directory objects. Apart
from the distinguished names that LDAP and X.500 use, AD recognizes objects
named using the RFC 1959 LDAP universal resource locator (URL) format, the RFC
822 Internet naming standard (e.g., john
smith@mycorp.com), and the
universal naming convention (UNC) that is native to NT. Microsoft's AD strategy
centers on the assumption that a network uses other directory services (such as
Lotus Notes or NDS) at the application and operating system levels. This
assumption is shrewd for two reasons. First, it puts Novell at a disadvantage.
Although Novell has a more highly developed NDS directory and a gateway for LDAP
access to that directory, Novell has done little to address the logistical
issues involved in using that gateway for practical purposes. For example, you
can use Netscape Communicator's and Microsoft Internet Explorer's (IE's) email
applications to search for users' telephone numbers and email addresses in an
NDS database. But little other functionality is readily available without custom
programming--and Novell provides no help (i.e., libraries or documentation) to
application developers in this area.
In contrast, Microsoft is concentrating on developing the tools needed to
create applications that use AD's services and on adapting existing code to use
the more flexible ADSI. If this strategy is successful, application developers
will be able to use gateways for whatever purpose they desire. Microsoft's
success will bring networks a giant step closer to the realization of a single,
all-purpose directory service.
Another reason why Microsoft's assumption is shrewd is that it positions AD
as a clearinghouse for existing network directory services. This approach is
smart because no AD code is available (other than an alpha version that lacked
many features and was limited to use with a single domain), and Microsoft
doesn't expect an official release until mid-1998.
If AD lives up to its touted capabilities, it will function as a
metadirectory for products, as shown in Figure 1. This ace in the hole could
help Microsoft regain those users who chose another directory service solution
because they were tired of waiting for Microsoft to release its product.
Netscape's Directory Server 3.0
Of the big three, Netscape has made the biggest commitment to LDAP 3 as a
directory service standard. Netscape's Directory Server 3.0 uses an LDAP server
as the basis for the directory service rather than as a gateway to a directory
stored on another type of server.
Basing a product on draft standard is risky because modifications to the
standard during the ratification process can easily cause the product to be
orphaned. However, Netscape has hired LDAP's original team of designers from the
University of Michigan to do the development work. Tim Howes, the inventor of
LDAP and the co-chairman of the IETF working group responsible for LDAP 3, is
leading the team.
Directory Server 3.0 contains many of the features proposed for LDAP 3,
such as intelligent referrals, support for SSL and Simple Authentication and
Security Layer (SASL) authentication, and extensible schema. The product can
also interact with the NT 4.0 directory service architecture by synchronizing NT
accounts with the LDAP directory or by using NT as an alternative authentication
medium, in case an LDAP directory authentication fails.
Unlike NDS and AD, Directory Server 3.0 does not support multimaster
replication. With multimaster replication, you can make changes to a particular
entry on the nearest directory server. This server then propagates the changes
to all the other servers. Instead of using multimaster replication, Directory
Server uses a master/slave relationship in which you must make all modifications
to a particular entry on that entry's master server. The master server then
replicates changes to the individual slave servers, as shown in Figure 2.
Problems can arise from both processes. The most serious problem in
multimaster replication is the conflict that can occur when two users at
different locations attempt to modify the same directory entry at nearly the
same time. NDS and AD devote considerable effort to avoid this problem. NDS
synchronizes the clocks on its servers and applies timestamps to all directory
communications, whereas AD uses update sequence numbers to identify its
transactions.
Netscape avoids this problem entirely by using a master/slave relationship
in Directory Server 3.0 but sacrifices an important element of
scalability in the process. In addition, although the master/slave relationship
prevents the directory from having to manage the more complex interserver
relationships involved in the use of multiple masters, this relationship imposes
significant delays when you must perform directory administration tasks from a
remote location.
Directory Server 3.0 provides services to Netscape's SuiteSpot family of
servers and the Netscape Communicator client. A software development kit is
available to help develop custom LDAP client implementations. Like NDS,
Directory Server 3.0 relies heavily on application developers and custom
programming to provide services outside of the vendor's family of products. For
example, before you can use Netscape's LDAP directory to authenticate users to
your email application, you must wait until the email vendor provides an LDAP
client or gateway between the two directories or you must create one yourself.
The Jury Is Still Out
You can't fairly assess these three directory service products yet because
only one (NDS) has been officially released. In addition, Netscape, Microsoft,
and Novell will certainly modify their products as LDAP 3 approaches completion.
Reaching the goal of having a single directory that can reliably support
all network applications and services is still some years away, even with
today's accelerated product cycles. Thus, you can't realistically assume that a
new product, such as Directory Server 3.0 or AD, will suddenly be a panacea for
all your directory service needs.
In the meantime, however, LDAP is useful as a gateway to directory
information. It lets Internet and intranet users use a standard Web browser to
access information. In addition, more full-featured LDAP clients, such as SWIX
(see the sidebar "LDAP Clients and Directory Services," page 193) can
give network administrators the ability to manage directory data from remote
locations with the protection of authenticated access.
For a complete greene on AD, this is very helpful even if somewhat out-of-date. I wish it were more current.