mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-27 03:20:22 +08:00
1012 lines
37 KiB
Plaintext
1012 lines
37 KiB
Plaintext
|
||
|
||
|
||
|
||
|
||
|
||
Network Working Group A. Grimstad
|
||
Request for Comments: 2377 R. Huber
|
||
Category: Informational AT&T
|
||
S. Sataluri
|
||
Lucent Technologies
|
||
M. Wahl
|
||
Critical Angle Inc.
|
||
September 1998
|
||
|
||
|
||
Naming Plan for Internet Directory-Enabled Applications
|
||
|
||
Status of this Memo
|
||
|
||
This memo provides information for the Internet community. It does
|
||
not specify an Internet standard of any kind. Distribution of this
|
||
memo is unlimited.
|
||
|
||
Copyright Notice
|
||
|
||
Copyright (C) The Internet Society (1998). All Rights Reserved.
|
||
|
||
Abstract
|
||
|
||
Application of the conventional X.500 approach to naming has
|
||
heretofore, in the experience of the authors, proven to be an
|
||
obstacle to the wide deployment of directory-enabled applications on
|
||
the Internet. We propose a new directory naming plan that leverages
|
||
the strengths of the most popular and successful Internet naming
|
||
schemes for naming objects in a hierarchical directory. This plan
|
||
can, we believe, by extending the X.500 approach to naming,
|
||
facilitate the creation of an Internet White Pages Service (IWPS) and
|
||
other directory-enabled applications by overcoming the problems
|
||
encountered by those using the conventional X.500 approach.
|
||
|
||
1.0 Executive Summary
|
||
|
||
Application of the conventional X.500 approach to naming has
|
||
heretofore, in the experience of the authors, proven to be an
|
||
obstacle to the wide deployment of directory-enabled applications on
|
||
the Internet. The required registration infrastructure is either
|
||
non-existent or largely ignored. The infrastructure that does exist
|
||
is cumbersome to use and tends to produce counterproductive results.
|
||
The attributes used for naming have been confusing for users and
|
||
inflexible to managers and operators of directory servers.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Grimstad, et. al. Informational [Page 1]
|
||
|
||
RFC 2377 A Directory Naming Plan September 1998
|
||
|
||
|
||
This paper describes a directory naming plan for the construction of
|
||
an Internet directory infrastructure to support directory-enabled
|
||
applications that can serve as an alternative (or extension) to the
|
||
conventional X.500 approach.
|
||
|
||
The plan has the following two main features. First, it bases the
|
||
root and upper portions of the name hierarchy on the existing
|
||
infrastructure of names from the Domain Name System (DNS). This
|
||
component of the plan makes use of the ideas described in the
|
||
companion paper to this plan, "Using Domains in LDAP Distinguished
|
||
Names" [1]. And second, it provides a number of options for the
|
||
assignment of names to directory leaf objects such as person objects,
|
||
including an option that allows the reuse of existing Internet
|
||
identifiers for people.
|
||
|
||
Just as the conventional X.500 style of naming is not a formal
|
||
standard, use of the naming plan described here is not obligatory for
|
||
directory-enabled applications on the Internet. Other approaches are
|
||
permissible. However, we believe widespread use of this plan will
|
||
largely eliminate naming as a typically thorny issue when
|
||
administrators set up an LDAP-based directory service. Further, we
|
||
strongly encourage developers of directory-enabled products,
|
||
especially LDAP clients and user interfaces, to assume that this
|
||
naming plan will see widespread use and design their products
|
||
accordingly.
|
||
|
||
Here, in summary, is our proposal.
|
||
|
||
The upper portions of the hierarchical directory tree should be
|
||
constructed using the components of registered DNS names using the
|
||
domain component attribute "dc". The directory name for the
|
||
organization having the domain name "acme.com" will then be, e.g.,
|
||
|
||
dc=acme, dc=com
|
||
|
||
Organizations can add additional directory structure, for example to
|
||
support implementation of access control lists or partitioning of
|
||
their directory information, by using registered subdomains of DNS
|
||
names, e.g., the subdomain "corporate.acme.com" can be used as the
|
||
basis for the directory name
|
||
|
||
dc=corporate, dc=acme, dc=com
|
||
|
||
For naming directory leaf objects such as persons, groups, server
|
||
applications and certification authorities in a hierarchical
|
||
directory, we propose the use of either the "uid" (user identifier)
|
||
or the "cn" (common name) attribute for the relative distinguished
|
||
name. This plan does not constrain how these two attributes are used.
|
||
|
||
|
||
|
||
Grimstad, et. al. Informational [Page 2]
|
||
|
||
RFC 2377 A Directory Naming Plan September 1998
|
||
|
||
|
||
One approach to their use, for example, is to employ the uid
|
||
attribute as the RDN when reusing an existing store of identifiers
|
||
and the cn attribute as the RDN when creating new identifiers
|
||
specifically for the directory. A convenient existing identification
|
||
scheme for person objects is the RFC822 mailbox identifier. So an RDN
|
||
for person employing this store of identifiers would be, e.g.,
|
||
|
||
uid=John.Smith@acme.com
|
||
|
||
For leaf objects not conveniently identified with such a scheme, the
|
||
"cn" attribute is used, e.g.,
|
||
|
||
cn=Reading Room
|
||
|
||
Directory distinguished names will thus have the following structure,
|
||
e.g.,
|
||
|
||
uid=John.Smith@acme.com, dc=acme, dc=com
|
||
uid=Mary.Jones@acme.com, dc=corporate, dc=acme, dc=com
|
||
uid=J.Smith@worldnet.att.net, dc=legal, dc=acme, dc=com
|
||
cn=Reading Room, dc=physics, dc=national-lab, dc=edu
|
||
|
||
2.0 The Problem
|
||
|
||
The X.500 Directory model [2] can be used to create a world-wide
|
||
distributed directory. The Internet X.500 Directory Pilot has been
|
||
operational for several years and has grown to a size of about 1.5
|
||
million entries of varying quality. The rate of growth of the pilot
|
||
is far lower than the rate of growth of the Internet during the pilot
|
||
period.
|
||
|
||
There are a substantial number of contributing factors that have
|
||
inhibited the growth of this pilot. The common X.500 approach to
|
||
naming, while not the preponderant problem, has contributed in
|
||
several ways to limit the growth of an Internet White Pages Service
|
||
based on X.500.
|
||
|
||
The conventional way to construct names in the X.500 community is
|
||
documented as an informative (i.e., not officially standardized)
|
||
Annex B to X.521. The relative distinguished name (RDN) of a user
|
||
consists of a common name (cn) attribute. This is meant to be what --
|
||
in the user's particular society -- is customarily understood to be
|
||
the name of that user. The distinguished name of a user is the
|
||
combination of the name of some general object, such as an
|
||
organization or a geographical unit, with the common name. There are
|
||
two main problems with this style of name construction.
|
||
|
||
|
||
|
||
|
||
|
||
Grimstad, et. al. Informational [Page 3]
|
||
|
||
RFC 2377 A Directory Naming Plan September 1998
|
||
|
||
|
||
First, the common name attribute, while seeming to be user-friendly,
|
||
cannot be used generally as an RDN in practice. In any significant
|
||
set of users to be named under the same Directory Information Tree
|
||
(DIT) node there will be collisions on common name. There is no way
|
||
to overcome this other than either by forcing uniqueness on common
|
||
names, something they do not possess, or by using an additional
|
||
attribute to prevent collisions. This additional attribute normally
|
||
needs to be unique in a much larger context to have any practical
|
||
value. The end result is a RDN that is very long and unpopular with
|
||
users.
|
||
|
||
Second, and more serious, X.500 has not been able to use any
|
||
significant number of pre-existing names. Since X.500 naming models
|
||
typically use organization names as part of the hierarchy [2, 3],
|
||
organization names must be registered. As organization names are
|
||
frequently tied to trademarks and are used in sales and promotions,
|
||
registration can be a difficult and acrimonious process.
|
||
|
||
The North American Directory Forum (NADF, now the North Atlantic
|
||
Directory Forum but still the NADF) proposed to avoid the problem of
|
||
registration by using names that were already registered in the
|
||
"civil naming infrastructure" [4][5]. Directory distinguished names
|
||
would be based on an organization's legal name as recognized by some
|
||
governmental agency (county clerk, state secretary of state, etc.) or
|
||
other registering entity such as ANSI.
|
||
|
||
This scheme has the significant advantage of keeping directory
|
||
service providers out of disputes about the right to use a particular
|
||
name, but it leads to rather obscure names. Among these obscurities,
|
||
the legal name almost invariably takes a form that is less familiar
|
||
and longer than what users typically associate with the organization.
|
||
For example, in the US a large proportion of legal organization names
|
||
end with the text ", Inc." as in "Acme, Inc." Moreover, in the case
|
||
of the US, the civil naming infrastructure does not operate
|
||
nationally, so the organization names it provides must be located
|
||
under state and regional DIT nodes, making them difficult to find
|
||
while browsing the directory. NADF proposes a way to algorithmically
|
||
derive multi-attribute RDNs which would allow placement of entries or
|
||
aliases in more convenient places in the DIT, but these derived names
|
||
are cumbersome and unpopular. For example, suppose Nadir is an
|
||
organization that is registered in New Jersey civil naming
|
||
infrastructure under the name "Nadir Networks, Inc." Its civil
|
||
distinguished name (DN) would then be
|
||
|
||
o="Nadir Networks, Inc.", st=New Jersey, c=US
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Grimstad, et. al. Informational [Page 4]
|
||
|
||
RFC 2377 A Directory Naming Plan September 1998
|
||
|
||
|
||
while its derived name which is unambiguous under c=US directly is
|
||
|
||
o="Nadir Networks, Inc." + st=New Jersey, c=US
|
||
|
||
More generally, the requirement for registration of organizations in
|
||
X.500 naming has led to the establishment of national registration
|
||
authorities whose function is mainly limited to assignment of X.500
|
||
organization names. Because of the very limited attraction of X.500,
|
||
interest in registering an organization with one of these national
|
||
authorities has been minimal. Finally, multi-national organizations
|
||
are frustrated by a lack of an international registration authority.
|
||
|
||
3.0 Requirements
|
||
|
||
A directory naming plan must provide a guide for the construction of
|
||
names (identifiers, labels) for directory objects that are
|
||
unambiguous (identify only one directory object) within some context
|
||
(namespace), at a minimum within one isolated directory server.
|
||
|
||
A directory object is simply a set of attribute values. The
|
||
association between a real-world object and a directory object is
|
||
made by directory-enabled applications and is, in the general case,
|
||
one to many.
|
||
|
||
The following additional naming characteristics are requirements that
|
||
this naming plan seeks to satisfy:
|
||
|
||
a) hierarchical
|
||
|
||
The Internet, consisting of a very large number of objects and
|
||
management domains, requires hierarchical names. Such names permit
|
||
delegation in the name assignment process and partitioning of
|
||
directory information among directory servers.
|
||
|
||
b) friendly to loose coupling of directory servers
|
||
|
||
One purpose of this naming plan is to define a naming pattern that
|
||
will facilitate one form or another of loose coupling of potentially
|
||
autonomous directory servers into a larger system.
|
||
|
||
A name in such a loosely-coupled system should unambiguously identify
|
||
one real-world object. The real-world object may, however, be
|
||
represented differently (i.e. by different directory objects having
|
||
different attributes but the same DN) in different (e.g.
|
||
independently managed) servers in the loosely-coupled system. The
|
||
plan does not attempt to produce names to overcome this likely
|
||
scenario. That is, it does not attempt to produce a single namespace
|
||
for all directory objects. (This issue is considered in more detail
|
||
|
||
|
||
|
||
Grimstad, et. al. Informational [Page 5]
|
||
|
||
RFC 2377 A Directory Naming Plan September 1998
|
||
|
||
|
||
in Section 5.1.)
|
||
|
||
c) readily usable by LDAP clients and servers
|
||
|
||
As of this writing, a substantial number of the Lightweight Directory
|
||
Access Protocol (LDAP) [6][7] implementations are currently available
|
||
or soon will be. The names specified by this naming plan should be
|
||
readily usable by these implementations and applications based on
|
||
them.
|
||
|
||
d) friendly to re-use of existing Internet name registries
|
||
|
||
As described in Section 2 above, creation of new global name
|
||
registries has been highly problematic. Therefore, a fundamental
|
||
requirement this plan addresses is to enable the reuse of existing
|
||
Internet name registries such as DNS names and RFC822 mailbox
|
||
identifiers when constructing directory names.
|
||
|
||
e) minimally user-friendly
|
||
|
||
Although we expect that user interfaces of directory-enabled
|
||
applications will avoid exposing users to DNs, it is unlikely that
|
||
users can be totally insulated from them. For this reason, the
|
||
naming plan should permit use of familiar information in name
|
||
construction. Minimally, a user should be capable of recognizing the
|
||
information encoded in his/her own DN. Names that are totally opaque
|
||
to users cannot meet this requirement.
|
||
|
||
4.0 Name Construction
|
||
|
||
The paper assumes familiarity with the terminology and concepts
|
||
behind the terms distinguished name (DN) and relative distinguished
|
||
name (RDN) [2][8][9].
|
||
|
||
We describe how DNs can be constructed using three attribute types,
|
||
domainComponent (dc), userID (uid) and commonName (cn). They are
|
||
each described in turn.
|
||
|
||
4.1 Domain Component (dc)
|
||
|
||
The domain component attribute is defined and registered in RFC1274
|
||
[3][10]. It is used in the construction of a DN from a domain name.
|
||
Details of the construction algorithm is described in "Using Domains
|
||
in LDAP Distinguished Names" [1].
|
||
|
||
An organization wishing to deploy a directory following this naming
|
||
plan would proceed as follows. Consider an organization, for example
|
||
"Acme, Inc.", having the registered domain name "acme.com". It would
|
||
|
||
|
||
|
||
Grimstad, et. al. Informational [Page 6]
|
||
|
||
RFC 2377 A Directory Naming Plan September 1998
|
||
|
||
|
||
construct the DN
|
||
|
||
dc=acme, dc=com
|
||
|
||
from its domain name. It would then use this DN as the root of its
|
||
subtree of directory information.
|
||
|
||
The DN itself can be used to identify a directory organization object
|
||
that represents information about the organization. The directory
|
||
schema required to enable this is described below in section 5.2.
|
||
|
||
The subordinates of the DN will be directory objects related to the
|
||
organization. The domain component attribute can be used to name
|
||
subdivisions of the organization such as organizational units and
|
||
localities. Acme, for example, might use the domain names
|
||
"corporate.acme.com" and "richmond.acme.com" to construct the names
|
||
|
||
dc=corporate, dc=acme, dc=com
|
||
dc=richmond, dc=acme, dc=com
|
||
|
||
under which to place its directory objects. The directory schema
|
||
required to name organizationalUnit and locality objects in this way
|
||
is described below in section 5.2.
|
||
|
||
Note that subdivisions of the organization such as organizational
|
||
units and localities could also be assigned RDNs using the
|
||
conventional X.500 naming attributes, e.g.
|
||
|
||
ou=corporate, dc=acme, dc=com
|
||
l=richmond, dc=acme, dc=com.
|
||
|
||
Use of the dc attribute for the RDN of directory objects of class
|
||
"domain" is also possible [1].
|
||
|
||
4.2 User ID (uid)
|
||
|
||
The userid (uid) attribute is defined and registered in RFC1274
|
||
[3][10].
|
||
|
||
This attribute may be used to construct the RDN for directory objects
|
||
subordinate to objects named according to the procedure described in
|
||
Section 4.1. This plan does not constrain how this attribute is
|
||
used.
|
||
|
||
4.3 Common Name (cn)
|
||
|
||
The commonName (cn) attribute is defined and registered in X.500
|
||
[3][11].
|
||
|
||
|
||
|
||
Grimstad, et. al. Informational [Page 7]
|
||
|
||
RFC 2377 A Directory Naming Plan September 1998
|
||
|
||
|
||
This attribute may be used to construct the RDN for directory objects
|
||
subordinate to objects named according to the procedure described in
|
||
Section 4.1. This plan does not constrain how this attribute is
|
||
used.
|
||
|
||
4.4 Examples of uid and cn Usage
|
||
|
||
Although this plan places no constraints on the use of the uid and cn
|
||
attributes for name construction, we would like to offer some
|
||
suggestions by way of examples.
|
||
|
||
In practice, we have used uid for the RDN for person objects were we
|
||
could make use of an existing registry of names and cn for other
|
||
objects.
|
||
|
||
Examples of existing registries of identifiers for person objects are
|
||
RFC822 mailbox identifiers, employee numbers and employee "handles".
|
||
Aside from the convenience to administrators of re-use of an existing
|
||
store of identifiers, if it is ever necessary to display to a user
|
||
his/her DN, there is some hope that it will be recognizable when such
|
||
identifiers are used.
|
||
|
||
We have found RFC822 mailbox identifiers a particularly convenient
|
||
source for name construction. When a person has several e-mail
|
||
addresses, one will be selected for the purpose of user
|
||
identification. We call this the "distinguished" e-mail address or
|
||
the "distinguished" RFC822 mailbox identifier for the user.
|
||
|
||
For example, if there is a user affiliated with the organization Acme
|
||
having distinguished e-mail address J.Smith@acme.com, the uid
|
||
attribute will be:
|
||
|
||
uid=J.Smith@acme.com
|
||
|
||
The domain component attributes of a user's DN will normally be
|
||
constructed from the domain name of his/her distinguished e-mail
|
||
address. That is, for the user uid=J.Smith@acme.com the domain
|
||
component attributes would typically be:
|
||
|
||
dc=acme, dc=com
|
||
|
||
The full LDAP DN for this user would then be:
|
||
|
||
uid=J.Smith@acme.com, dc=acme, dc=com
|
||
|
||
Directory administrators having several RFC822 identifiers to choose
|
||
from when constructing a DN for a user should consider the following
|
||
factors:
|
||
|
||
|
||
|
||
Grimstad, et. al. Informational [Page 8]
|
||
|
||
RFC 2377 A Directory Naming Plan September 1998
|
||
|
||
|
||
o Machine-independent addresses are likely to be more stable,
|
||
resulting in directory names that change less. Thus an
|
||
identifier such as:
|
||
|
||
js@acme.com
|
||
|
||
may well be preferable to one such as:
|
||
|
||
js@blaster.third-floor.acme.com.
|
||
|
||
o Use of some form of "handle" for the "local" part that is
|
||
distinct from a user's real name may result in fewer collisions
|
||
and thereby lessen user pain and suffering. Thus the
|
||
identifier:
|
||
|
||
js@acme.com
|
||
|
||
may well be preferable to one such as:
|
||
|
||
J.Smith@acme.com
|
||
|
||
Practical experience with use of the RFC822 mailbox identifier scheme
|
||
described here has shown that there are situations where it is
|
||
convenient to use such identifies for all users in a particular
|
||
population, although a few users do not, in fact, possess working
|
||
mailboxes. For example, an organization may have a existing unique
|
||
identification scheme for all employees that is used as a alias to
|
||
the employees' real mailboxes -- which may be quite heterogeneous in
|
||
structure. The identification scheme works for all employees to
|
||
identify unambiguously each employee; it only works as an e-mail
|
||
alias for those employees having real mailboxes. For this reason it
|
||
would be a bad assumption for directory-enabled applications to
|
||
assume the uid to be a valid mailbox; the value(s) of the mail
|
||
attribute should always be checked.
|
||
|
||
It is important to emphasize that the elements of the domain name of
|
||
an RFC822 identifier may, BUT NEED NOT, be the same as the domain
|
||
components of the DN. This means that the domain components provide
|
||
a degree of freedom to support access control or other directory
|
||
structuring requirements that need not be mechanically reflected in
|
||
the user's e-mail address. We do not want under any condition to
|
||
force the user's e-mail address to change just to facilitate a new
|
||
system requirement such as a modification in an access control
|
||
structure. It should also be noted that while we do not require that
|
||
the domain components match the RFC822 identifier, we DO require that
|
||
the concatenated domain components form a registered domain name,
|
||
that is, one that is represented in the DNS. This automatically
|
||
avoids name conflicts in the directory hierarchy.
|
||
|
||
|
||
|
||
Grimstad, et. al. Informational [Page 9]
|
||
|
||
RFC 2377 A Directory Naming Plan September 1998
|
||
|
||
|
||
To provide an example of a DN which deviates from what might be
|
||
considered the default structure, consider the following scenario.
|
||
|
||
Suppose that J.Smith needs to be granted special permissions to
|
||
information in the dc=acme, dc=com part of the LDAP DIT. Since it
|
||
will be, in general, easier to organize special users by their name
|
||
structure than via groups (an arbitrary collection of DNs), we use
|
||
subdomains for this purpose. Suppose the special permissions were
|
||
required by users in the MIS organizational unit. A subdomain
|
||
"mis.acme.com" is established, if it does not already exist,
|
||
according to normal DNS procedures. The special permissions will be
|
||
granted to users with the name structure:
|
||
|
||
uid=*, dc=mis, dc=acme, dc=com
|
||
|
||
The DN of J.Smith in this case will be:
|
||
|
||
uid=J.Smith@acme.com, dc=mis, dc=acme, dc=com
|
||
|
||
In principal, there is nothing to prevent the domain name elements of
|
||
the RFC822 identifier from being completely different from the domain
|
||
components of the DN. For instance, the DN for a J.Smith could be:
|
||
|
||
uid=J.Smith@worldnet.att.net, dc=mis, dc=acme, dc=com
|
||
|
||
While we do not REQUIRE that the domain name part of the uid match
|
||
the dc components of the directory distinguished name, we suggest
|
||
that this be done where possible. At a minimum, if the most
|
||
significant pieces of the DN and the uid are the same (i.e.,
|
||
"dc=acme, dc=com" and "acme.com") the likelihood, based on a
|
||
knowledge of a user's e-mail address, of discovering an appropriate
|
||
directory system to contact to find information about the user is
|
||
greatly enhanced.
|
||
|
||
The example above represents a situation where this suggestion isn't
|
||
possible because some of the users in a population have mailbox
|
||
identifiers that differ from the pattern of the rest of the users,
|
||
e.g., most mailboxes are of the form local@acme.com, but a
|
||
subpopulation have mailboxes from an ISP and therefore mailboxes of
|
||
the form local@worldnet.att.net.
|
||
|
||
5.0 Naming Plan and Directories
|
||
|
||
5.1 Directory Services Considerations
|
||
|
||
We envision the deployment of LDAP-based directory services on the
|
||
Internet to take the form of loosely coupled LDAP servers. This
|
||
coupling will occur at two levels.
|
||
|
||
|
||
|
||
Grimstad, et. al. Informational [Page 10]
|
||
|
||
RFC 2377 A Directory Naming Plan September 1998
|
||
|
||
|
||
Firstly, LDAP servers will be loosely connected into islands (i.e. a
|
||
set of servers sharing a single DN namespace). The glue connecting
|
||
the islands will be LDAP referral [12] information configured into
|
||
the LDAP servers. An LDAP search directed to any server in such an
|
||
island can be answered, if the information is not available to that
|
||
server, by an LDAP referral to another, more appropriate server
|
||
within the same island.
|
||
|
||
Secondly, various techniques will be used span LDAP islands. The
|
||
concept that enables such techniques is the LDAP URL [13]. By
|
||
combining a DNS host name and port (corresponding to one or more LDAP
|
||
servers) with a DN, the LDAP URL provides unified high-level
|
||
identification scheme (an LDAP URL namespace) for directory objects.
|
||
|
||
Because an LDAP referral is expressed as one or more LDAP URL, these
|
||
two levels of coupling may not sharply distinguished in practice.
|
||
|
||
We do not envision the X.500 model of a single DIT (i.e. a single DN
|
||
namespace) to be viable in an environment of competing service
|
||
providers. This naming plan does not attempt to produce DNs to hide
|
||
the possibility that a given real-world object may have independently
|
||
managed directory objects with the same DN associated with it.
|
||
|
||
5.2 Directory Schema Implications of the Naming Plan
|
||
|
||
The traditional directory schema(s) developed for the X.500 standard
|
||
and its application to the Internet [4] require extension to be used
|
||
with the naming plan developed here. The extensions described below
|
||
attempt to reuse existing schema elements as much as possible. The
|
||
directory objects for which extensions are required are:
|
||
organization, organizational unit, and various classes of leaf
|
||
objects. We describe the schema modifications below for organization,
|
||
organizationalUnit and selected leaf classes.
|
||
|
||
So as to continue to use existing structural object classes to the
|
||
extent possible, we propose supplementing entries based on these
|
||
classes with additional information from two new auxiliary object
|
||
classes, dcObject and uidObject. They are specified using the
|
||
notation in Section 4 of [14].
|
||
|
||
The auxiliary object class dcObject is defined in "Using Domains in
|
||
LDAP Distinguished Names" [1].
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Grimstad, et. al. Informational [Page 11]
|
||
|
||
RFC 2377 A Directory Naming Plan September 1998
|
||
|
||
|
||
The auxiliary object class uidObject is defined as:
|
||
|
||
( 1.3.6.1.1.3.1
|
||
NAME uidObject
|
||
SUP top
|
||
AUXILIARY
|
||
MUST uid )
|
||
|
||
5.2.1 Organization Schema
|
||
|
||
The dc attribute is employed to construct the RDN of an organization
|
||
object. This is enabled by adding the auxiliary class dcObject to
|
||
the organization's objectClass attribute.
|
||
|
||
5.2.2 Organizational Unit Schema
|
||
|
||
The dc attribute is employed to construct the RDN of an
|
||
organizationalUnit object (which is subordinate in the DIT to either
|
||
an organization or an organizationalUnit object). This is enabled by
|
||
adding the auxiliary class dcObject to the organizational unit's
|
||
objectClass attribute.
|
||
|
||
5.2.3 Person Schema
|
||
|
||
No schema extensions are required for person objects if either the
|
||
inetOrgPerson [15] (preferred) or the newPilotPerson object classes
|
||
are used. The attribute uid is permissible in each class. For
|
||
consistency, the uidObject could be added to person entry objectClass
|
||
attributes to assist applications filtering on this object class
|
||
attribute value. Use of other classes for person objects with RDN
|
||
constructed with the uid attribute such as organizationalPerson
|
||
requires the use of the uidObject class.
|
||
|
||
It has been traditional in X.500 and LDAP directory services to
|
||
employ the common name (cn) attribute in naming. While this naming
|
||
plan doesn't require use of the cn attribute in naming, it should be
|
||
stressed that it is a required attribute in any class derived from
|
||
the person class and is still quite important. It will play a
|
||
significant role in enabling searches to find user entries of
|
||
interest.
|
||
|
||
5.2.4 Certification Authority Schema
|
||
|
||
The certification authority (CA) object class is an auxiliary class,
|
||
meaning it is essentially a set of additional attributes for a base
|
||
class such as organizationalRole, organization, organizationalUnit or
|
||
person. Except in the case where the base structural class is
|
||
inetOrgPerson, use of the uid attribute to construct the RDN of a CA
|
||
|
||
|
||
|
||
Grimstad, et. al. Informational [Page 12]
|
||
|
||
RFC 2377 A Directory Naming Plan September 1998
|
||
|
||
|
||
will require the auxiliary class uidObject to permit the uid
|
||
attribute to be used. In the cases where organizationalUnit or
|
||
organization is the base class for a CA, use of the auxiliary class
|
||
dcObject will permit the RDN of the CA to be a domain component.
|
||
|
||
5.2.5 Server and Server Application Schema
|
||
|
||
Servers and server applications are typically represented, for want
|
||
of anything better, by entries of the object class applicationProcess
|
||
(or a class derived from it). Sometimes the class applicationEntity
|
||
is used. In either case, the uid attribute should probably not be
|
||
employed to construct the RDN of a server or server application
|
||
object. The standard schema uses the attribute cn for such RDNs.
|
||
|
||
Suppose one wants to use this naming plan both in the construction of
|
||
DNs for SSL server certificates and for their storage in a directory.
|
||
It is customary for clients connecting via SSL to compare the
|
||
server's domain name (e.g. from the URL used to contact the server)
|
||
with the value of the cn attribute in the subject field (i.e.
|
||
subject's DN) of the server's certificate. For this reason, it is
|
||
common practice to set the cn attribute to the server's domain name.
|
||
|
||
The naming and schema to handle this situation is best explained by
|
||
an example. Consider the server "host.acme.com". Following the
|
||
algorithm in "Using Domains in LDAP Distinguished Names" [1], the DN
|
||
dc=host, dc=acme, dc=com is constructed. To conform to the existing
|
||
practices just described, the server's subject DN for the SSL server
|
||
certificate should be cn=host.acme.com, dc=host, dc=acme, dc=com and
|
||
the server's certificate should be stored in a directory entry with
|
||
this name. This entry should use application process or application
|
||
entity as its structural object class and strong authentication user
|
||
as is auxiliary class.
|
||
|
||
5.2.6 Name Forms
|
||
|
||
For X.500 servers or LDAP servers following the X.500 model, our
|
||
schema requires the definition of new name forms, structure rules,
|
||
and DIT content rules. Structure rules and DIT content rules are
|
||
locally defined, and do not involve a globally significant object
|
||
identifier.
|
||
|
||
The following name forms are defined using the syntax of section 6.22
|
||
of [14] for the convenience of those using such servers.
|
||
|
||
Note that since the structural object classes organization,
|
||
organizationalUnit, locality and organizationalPerson do not permit
|
||
inclusion of the dc attribute, an auxiliary object class such as
|
||
dcObject [1] must be used for instances of these classes.)
|
||
|
||
|
||
|
||
Grimstad, et. al. Informational [Page 13]
|
||
|
||
RFC 2377 A Directory Naming Plan September 1998
|
||
|
||
|
||
5.2.6.1 Name Form for Domain Objects
|
||
|
||
The OIDs in this group are under the
|
||
iso.org.dod.internet.directory.NameForm branch of the OID tree
|
||
(1.3.6.1.1.2).
|
||
|
||
( 1.3.6.1.1.2.1
|
||
NAME domainNameForm
|
||
OC domain
|
||
MUST dc )
|
||
|
||
The domainNameForm name form indicates that objects of structural
|
||
object class domain have their RDN constructed from a value of the
|
||
attribute dc.
|
||
|
||
5.2.6.2 Name Form for Organization Objects
|
||
|
||
( 1.3.6.1.1.2.2
|
||
NAME dcOrganizationNameForm
|
||
OC organization
|
||
MUST dc )
|
||
|
||
The dcOrganizationNameForm name form indicates that objects of
|
||
structural object class organization have their RDN constructed from
|
||
a value of the attribute dc.
|
||
|
||
5.2.6.3 Name Form for Organizational Unit Objects
|
||
|
||
( 1.3.6.1.1.2.3
|
||
NAME dcOrganizationalUnitNameForm
|
||
OC organizationalUnit
|
||
MUST dc )
|
||
|
||
The dcOrganizationalUnitNameForm name form indicates that objects of
|
||
structural object class organizationalUnit have their RDN constructed
|
||
from a value of the attribute dc.
|
||
|
||
5.2.6.4 Name Form for Locality Objects
|
||
|
||
( 1.3.6.1.1.2.4
|
||
NAME dcLocalityNameForm
|
||
OC locality
|
||
MUST dc )
|
||
|
||
The dcLocalityNameForm name form indicates that objects of structural
|
||
object class locality have their RDN constructed from a value of the
|
||
attribute dc.
|
||
|
||
|
||
|
||
|
||
Grimstad, et. al. Informational [Page 14]
|
||
|
||
RFC 2377 A Directory Naming Plan September 1998
|
||
|
||
|
||
5.2.6.5 Name Form for Organizational Person Objects
|
||
|
||
( 1.3.6.1.1.2.5
|
||
NAME uidOrganizationalPersonNameForm
|
||
OC organizationalPerson
|
||
MUST uid )
|
||
|
||
The uidOrganizationalPersonNameForm name form indicates that objects
|
||
of structural object class organizationalPerson have their RDN
|
||
constructed from a value of the attribute uid.
|
||
|
||
6.0 Security Considerations
|
||
|
||
Although access controls may be placed on portions of the DIT to deny
|
||
browse access to unauthorized clients, it may be possible to infer
|
||
directory names and DIT structure in such sensitive portions of the
|
||
DIT from the results of DNS queries. Providing public visibility to
|
||
some portions of the DIT may assist those make such inferences.
|
||
|
||
7.0 Acknowledgments
|
||
|
||
This plan has emerged in the course of a number of fruitful
|
||
discussions, especially with David Chadwick, John Dale, Joe Gajewski,
|
||
Mark Jackson, Ryan Moats, Tom Spencer and Chris Tzu.
|
||
|
||
8.0 References
|
||
|
||
[1] Kille, S., Wahl, M., Grimstad, A., Huber, R., and S.
|
||
Sataluri, "Using Domains in LDAP Distinguished Names", RFC
|
||
2247, January 1998.
|
||
|
||
[2] X.500: The Directory -- Overview of Concepts, Models, and
|
||
Service, CCITT Recommendation X.500, December, 1988.
|
||
|
||
[3] Barker, P., and S. Kille, "The COSINE and Internet X.500
|
||
Schema", RFC 1274, November 1991.
|
||
|
||
[4] The North American Directory Forum, "A Naming Scheme for
|
||
c=US", RFC 1255, September 1991.
|
||
|
||
[5] The North American Directory Forum, "NADF Standing Documents:
|
||
A Brief Overview", RFC 1417, February 1993.
|
||
|
||
[6] Yeong, W., Howes, T., and S. Kille, "Lightweight Directory
|
||
Access Protocol", RFC 1777, March 1995.
|
||
|
||
[7] Wahl, M., Howes, T., and S. Kille, "Lightweight Directory
|
||
Access Protocol (v3)", RFC 2251, December 1997.
|
||
|
||
|
||
|
||
Grimstad, et. al. Informational [Page 15]
|
||
|
||
RFC 2377 A Directory Naming Plan September 1998
|
||
|
||
|
||
[8] Kille, S., "A String Representation of Distinguished Names",
|
||
RFC 1779, March 1995.
|
||
|
||
[9] Wahl, M., Kille, S., and T. Howes, "Lightweight Directory
|
||
Access Protocol (v3): UTF-8 String Representation of
|
||
Distinguished Names", RFC 2253, December 1997.
|
||
|
||
[10] Wahl, M., "A Summary of the Pilot X.500 Schema for use
|
||
in LDAPv3", Work in Progress.
|
||
|
||
[11] Wahl, M., "A Summary of the X.500 User Schema for use with
|
||
LDAPv3", RFC 2256, December 1997.
|
||
|
||
[12] Howes, T., and M. Wahl, "Referrals and Knowledge References
|
||
in LDAP Directories", Work in Progress.
|
||
|
||
[13] Howes, T., and M. Smith, "The LDAP URL Format", RFC 2255,
|
||
December 1997.
|
||
|
||
[14] Wahl, M., Coulbeck, A., Howes, T., and S. Kille,
|
||
"Lightweight Directory Access Protocol (v3): Attribute Syntax
|
||
Definitions", RFC 2252, December 1997.
|
||
|
||
[15] Smith, M., "Definition of the inetOrgPerson Object Class",
|
||
Work in Progress.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Grimstad, et. al. Informational [Page 16]
|
||
|
||
RFC 2377 A Directory Naming Plan September 1998
|
||
|
||
|
||
12. Authors' Addresses
|
||
|
||
Al Grimstad
|
||
AT&T
|
||
Room 1C-429, 101 Crawfords Corner Road
|
||
Holmdel, NJ 07733-3030
|
||
USA
|
||
|
||
EMail: alg@att.com
|
||
|
||
|
||
Rick Huber
|
||
AT&T
|
||
Room 1B-433, 101 Crawfords Corner Road
|
||
Holmdel, NJ 07733-3030
|
||
USA
|
||
|
||
EMail: rvh@att.com
|
||
|
||
|
||
Sri Sataluri
|
||
Lucent Technologies
|
||
Room 4D-335, 101 Crawfords Corner Road
|
||
Holmdel, NJ 07733-3030
|
||
USA
|
||
|
||
EMail: srs@lucent.com
|
||
|
||
|
||
Mark Wahl
|
||
Critical Angle Inc.
|
||
4815 W Braker Lane #502-385
|
||
Austin, TX 78759
|
||
USA
|
||
|
||
EMail: M.Wahl@critical-angle.com
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Grimstad, et. al. Informational [Page 17]
|
||
|
||
RFC 2377 A Directory Naming Plan September 1998
|
||
|
||
|
||
13. Full Copyright Statement
|
||
|
||
Copyright (C) The Internet Society (1998). All Rights Reserved.
|
||
|
||
This document and translations of it may be copied and furnished to
|
||
others, and derivative works that comment on or otherwise explain it
|
||
or assist in its implementation may be prepared, copied, published
|
||
and distributed, in whole or in part, without restriction of any
|
||
kind, provided that the above copyright notice and this paragraph are
|
||
included on all such copies and derivative works. However, this
|
||
document itself may not be modified in any way, such as by removing
|
||
the copyright notice or references to the Internet Society or other
|
||
Internet organizations, except as needed for the purpose of
|
||
developing Internet standards in which case the procedures for
|
||
copyrights defined in the Internet Standards process must be
|
||
followed, or as required to translate it into languages other than
|
||
English.
|
||
|
||
The limited permissions granted above are perpetual and will not be
|
||
revoked by the Internet Society or its successors or assigns.
|
||
|
||
This document and the information contained herein is provided on an
|
||
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
|
||
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
|
||
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
|
||
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
|
||
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Grimstad, et. al. Informational [Page 18]
|
||
|