Home | History | Annotate | Line # | Download | only in rfc
      1 
      2 
      3 
      4 
      5 
      6 
      7 Network Working Group                                        A. Grimstad
      8 Request for Comments: 2377                                      R. Huber
      9 Category: Informational                                             AT&T
     10                                                              S. Sataluri
     11                                                      Lucent Technologies
     12                                                                  M. Wahl
     13                                                      Critical Angle Inc.
     14                                                           September 1998
     15 
     16 
     17         Naming Plan for Internet Directory-Enabled Applications
     18 
     19 Status of this Memo
     20 
     21    This memo provides information for the Internet community.  It does
     22    not specify an Internet standard of any kind.  Distribution of this
     23    memo is unlimited.
     24 
     25 Copyright Notice
     26 
     27    Copyright (C) The Internet Society (1998).  All Rights Reserved.
     28 
     29 Abstract
     30 
     31    Application of the conventional X.500 approach to naming has
     32    heretofore, in the experience of the authors, proven to be an
     33    obstacle to the wide deployment of directory-enabled applications on
     34    the Internet.  We propose a new directory naming plan that leverages
     35    the strengths of the most popular and successful Internet naming
     36    schemes for naming objects in a hierarchical directory.  This plan
     37    can, we believe, by extending the X.500 approach to naming,
     38    facilitate the creation of an Internet White Pages Service (IWPS) and
     39    other directory-enabled applications by overcoming the problems
     40    encountered by those using the conventional X.500 approach.
     41 
     42 1.0 Executive Summary
     43 
     44    Application of the conventional X.500 approach to naming has
     45    heretofore, in the experience of the authors, proven to be an
     46    obstacle to the wide deployment of directory-enabled applications on
     47    the Internet.  The required registration infrastructure is either
     48    non-existent or largely ignored.  The infrastructure that does exist
     49    is cumbersome to use and tends to produce counterproductive results.
     50    The attributes used for naming have been confusing for users and
     51    inflexible to managers and operators of directory servers.
     52 
     53 
     54 
     55 
     56 
     57 
     58 Grimstad, et. al.            Informational                      [Page 1]
     59 
     61 RFC 2377                A Directory Naming Plan           September 1998
     62 
     63 
     64    This paper describes a directory naming plan for the construction of
     65    an Internet directory infrastructure to support directory-enabled
     66    applications that can serve as an alternative (or extension) to the
     67    conventional X.500 approach.
     68 
     69    The plan has the following two main features.  First, it bases the
     70    root and upper portions of the name hierarchy on the existing
     71    infrastructure of names from the Domain Name System (DNS). This
     72    component of the plan makes use of the ideas described in the
     73    companion paper to this plan, "Using Domains in LDAP Distinguished
     74    Names" [1].  And second, it provides a number of options for the
     75    assignment of names to directory leaf objects such as person objects,
     76    including an option that allows the reuse of existing Internet
     77    identifiers for people.
     78 
     79    Just as the conventional X.500 style of naming is not a formal
     80    standard, use of the naming plan described here is not obligatory for
     81    directory-enabled applications on the Internet. Other approaches are
     82    permissible. However, we believe widespread use of this plan will
     83    largely eliminate naming as a typically thorny issue when
     84    administrators set up an LDAP-based directory service.  Further, we
     85    strongly encourage developers of directory-enabled products,
     86    especially LDAP clients and user interfaces, to assume that this
     87    naming plan will see widespread use and design their products
     88    accordingly.
     89 
     90    Here, in summary, is our proposal.
     91 
     92    The upper portions of the hierarchical directory tree should be
     93    constructed using the components of registered DNS names using the
     94    domain component attribute "dc".  The directory name for the
     95    organization having the domain name "acme.com" will then be, e.g.,
     96 
     97       dc=acme, dc=com
     98 
     99    Organizations can add additional directory structure, for example to
    100    support implementation of access control lists or partitioning of
    101    their directory information, by using registered subdomains of DNS
    102    names, e.g., the subdomain "corporate.acme.com" can be used as the
    103    basis for the directory name
    104 
    105       dc=corporate, dc=acme, dc=com
    106 
    107    For naming directory leaf objects such as persons, groups, server
    108    applications and certification authorities in a hierarchical
    109    directory, we propose the use of either the "uid" (user identifier)
    110    or the "cn" (common name) attribute for the relative distinguished
    111    name. This plan does not constrain how these two attributes are used.
    112 
    113 
    114 
    115 Grimstad, et. al.            Informational                      [Page 2]
    116 
    118 RFC 2377                A Directory Naming Plan           September 1998
    119 
    120 
    121    One approach to their use, for example, is to employ the uid
    122    attribute as the RDN when reusing an existing store of identifiers
    123    and the cn attribute as the RDN when creating new identifiers
    124    specifically for the directory.  A convenient existing identification
    125    scheme for person objects is the RFC822 mailbox identifier. So an RDN
    126    for person employing this store of identifiers would be, e.g.,
    127 
    128       uid=John.Smith (a] acme.com
    129 
    130    For leaf objects not conveniently identified with such a scheme, the
    131    "cn" attribute is used, e.g.,
    132 
    133       cn=Reading Room
    134 
    135    Directory distinguished names will thus have the following structure,
    136    e.g.,
    137 
    138       uid=John.Smith (a] acme.com, dc=acme, dc=com
    139       uid=Mary.Jones (a] acme.com, dc=corporate, dc=acme, dc=com
    140       uid=J.Smith (a] worldnet.att.net, dc=legal, dc=acme, dc=com
    141       cn=Reading Room, dc=physics, dc=national-lab, dc=edu
    142 
    143 2.0 The Problem
    144 
    145    The X.500 Directory model [2] can be used to create a world-wide
    146    distributed directory. The Internet X.500 Directory Pilot has been
    147    operational for several years and has grown to a size of about 1.5
    148    million entries of varying quality.  The rate of growth of the pilot
    149    is far lower than the rate of growth of the Internet during the pilot
    150    period.
    151 
    152    There are a substantial number of contributing factors that have
    153    inhibited the growth of this pilot.  The common X.500 approach to
    154    naming, while not the preponderant problem, has contributed in
    155    several ways to limit the growth of an Internet White Pages Service
    156    based on X.500.
    157 
    158    The conventional way to construct names in the X.500 community is
    159    documented as an informative (i.e., not officially standardized)
    160    Annex B to X.521. The relative distinguished name (RDN) of a user
    161    consists of a common name (cn) attribute. This is meant to be what --
    162    in the user's particular society -- is customarily understood to be
    163    the name of that user. The distinguished name of a user is the
    164    combination of the name of some general object, such as an
    165    organization or a geographical unit, with the common name. There are
    166    two main problems with this style of name construction.
    167 
    168 
    169 
    170 
    171 
    172 Grimstad, et. al.            Informational                      [Page 3]
    173 
    175 RFC 2377                A Directory Naming Plan           September 1998
    176 
    177 
    178    First, the common name attribute, while seeming to be user-friendly,
    179    cannot be used generally as an RDN in practice.  In any significant
    180    set of users to be named under the same Directory Information Tree
    181    (DIT) node there will be collisions on common name.  There is no way
    182    to overcome this other than either by forcing uniqueness on common
    183    names, something they do not possess, or by using an additional
    184    attribute to prevent collisions.  This additional attribute normally
    185    needs to be unique in a much larger context to have any practical
    186    value.  The end result is a RDN that is very long and unpopular with
    187    users.
    188 
    189    Second, and more serious, X.500 has not been able to use any
    190    significant number of pre-existing names.  Since X.500 naming models
    191    typically use organization names as part of the hierarchy [2, 3],
    192    organization names must be registered.  As organization names are
    193    frequently tied to trademarks and are used in sales and promotions,
    194    registration can be a difficult and acrimonious process.
    195 
    196    The North American Directory Forum (NADF, now the North Atlantic
    197    Directory Forum but still the NADF) proposed to avoid the problem of
    198    registration by using names that were already registered in the
    199    "civil naming infrastructure" [4][5].  Directory distinguished names
    200    would be based on an organization's legal name as recognized by some
    201    governmental agency (county clerk, state secretary of state, etc.) or
    202    other registering entity such as ANSI.
    203 
    204    This scheme has the significant advantage of keeping directory
    205    service providers out of disputes about the right to use a particular
    206    name, but it leads to rather obscure names.  Among these obscurities,
    207    the legal name almost invariably takes a form that is less familiar
    208    and longer than what users typically associate with the organization.
    209    For example, in the US a large proportion of legal organization names
    210    end with the text ", Inc." as in "Acme, Inc."  Moreover, in the case
    211    of the US, the civil naming infrastructure does not operate
    212    nationally, so the organization names it provides must be located
    213    under state and regional DIT nodes, making them difficult to find
    214    while browsing the directory.  NADF proposes a way to algorithmically
    215    derive multi-attribute RDNs which would allow placement of entries or
    216    aliases in more convenient places in the DIT, but these derived names
    217    are cumbersome and unpopular.  For example, suppose Nadir is an
    218    organization that is registered in New Jersey civil naming
    219    infrastructure under the name "Nadir Networks, Inc."  Its civil
    220    distinguished name (DN) would then be
    221 
    222       o="Nadir Networks, Inc.", st=New Jersey, c=US
    223 
    224 
    225 
    226 
    227 
    228 
    229 Grimstad, et. al.            Informational                      [Page 4]
    230 
    232 RFC 2377                A Directory Naming Plan           September 1998
    233 
    234 
    235    while its derived name which is unambiguous under c=US directly is
    236 
    237       o="Nadir Networks, Inc." + st=New Jersey, c=US
    238 
    239    More generally, the requirement for registration of organizations in
    240    X.500 naming has led to the establishment of national registration
    241    authorities whose function is mainly limited to assignment of X.500
    242    organization names.  Because of the very limited attraction of X.500,
    243    interest in registering an organization with one of these national
    244    authorities has been minimal.  Finally, multi-national organizations
    245    are frustrated by a lack of an international registration authority.
    246 
    247 3.0 Requirements
    248 
    249    A directory naming plan must provide a guide for the construction of
    250    names (identifiers, labels) for directory objects that are
    251    unambiguous (identify only one directory object) within some context
    252    (namespace), at a minimum within one isolated directory server.
    253 
    254    A directory object is simply a set of attribute values. The
    255    association between a real-world object and a directory object is
    256    made by directory-enabled applications and is, in the general case,
    257    one to many.
    258 
    259    The following additional naming characteristics are requirements that
    260    this naming plan seeks to satisfy:
    261 
    262    a) hierarchical
    263 
    264    The Internet, consisting of a very large number of objects and
    265    management domains, requires hierarchical names.  Such names permit
    266    delegation in the name assignment process and partitioning of
    267    directory information among directory servers.
    268 
    269    b) friendly to loose coupling of directory servers
    270 
    271    One purpose of this naming plan is to define a naming pattern that
    272    will facilitate one form or another of loose coupling of potentially
    273    autonomous directory servers into a larger system.
    274 
    275    A name in such a loosely-coupled system should unambiguously identify
    276    one real-world object.  The real-world object may, however, be
    277    represented differently (i.e. by different directory objects having
    278    different attributes but the same DN) in different (e.g.
    279    independently managed) servers in the loosely-coupled system.  The
    280    plan does not attempt to produce names to overcome this likely
    281    scenario.  That is, it does not attempt to produce a single namespace
    282    for all directory objects. (This issue is considered in more detail
    283 
    284 
    285 
    286 Grimstad, et. al.            Informational                      [Page 5]
    287 
    289 RFC 2377                A Directory Naming Plan           September 1998
    290 
    291 
    292    in Section 5.1.)
    293 
    294    c) readily usable by LDAP clients and servers
    295 
    296    As of this writing, a substantial number of the Lightweight Directory
    297    Access Protocol (LDAP) [6][7] implementations are currently available
    298    or soon will be.  The names specified by this naming plan should be
    299    readily usable by these implementations and applications based on
    300    them.
    301 
    302    d) friendly to re-use of existing Internet name registries
    303 
    304    As described in Section 2 above, creation of new global name
    305    registries has been highly problematic.  Therefore, a fundamental
    306    requirement this plan addresses is to enable the reuse of existing
    307    Internet name registries such as DNS names and RFC822 mailbox
    308    identifiers when constructing directory names.
    309 
    310    e) minimally user-friendly
    311 
    312    Although we expect that user interfaces of directory-enabled
    313    applications will avoid exposing users to DNs, it is unlikely that
    314    users can be totally insulated from them.  For this reason, the
    315    naming plan should permit use of familiar information in name
    316    construction.  Minimally, a user should be capable of recognizing the
    317    information encoded in his/her own DN.  Names that are totally opaque
    318    to users cannot meet this requirement.
    319 
    320 4.0 Name Construction
    321 
    322    The paper assumes familiarity with the terminology and concepts
    323    behind the terms distinguished name (DN) and relative distinguished
    324    name (RDN) [2][8][9].
    325 
    326    We describe how DNs can be constructed using three attribute types,
    327    domainComponent (dc), userID (uid) and commonName (cn).  They are
    328    each described in turn.
    329 
    330 4.1 Domain Component (dc)
    331 
    332    The domain component attribute is defined and registered in RFC1274
    333    [3][10].  It is used in the construction of a DN from a domain name.
    334    Details of the construction algorithm is described in "Using Domains
    335    in LDAP Distinguished Names" [1].
    336 
    337    An organization wishing to deploy a directory following this naming
    338    plan would proceed as follows.  Consider an organization, for example
    339    "Acme, Inc.", having the registered domain name "acme.com".  It would
    340 
    341 
    342 
    343 Grimstad, et. al.            Informational                      [Page 6]
    344 
    346 RFC 2377                A Directory Naming Plan           September 1998
    347 
    348 
    349    construct the DN
    350 
    351       dc=acme, dc=com
    352 
    353    from its domain name.  It would then use this DN as the root of its
    354    subtree of directory information.
    355 
    356    The DN itself can be used to identify a directory organization object
    357    that represents information about the organization. The directory
    358    schema required to enable this is described below in section 5.2.
    359 
    360    The subordinates of the DN will be directory objects related to the
    361    organization.  The domain component attribute can be used to name
    362    subdivisions of the organization such as organizational units and
    363    localities.  Acme, for example, might use the domain names
    364    "corporate.acme.com" and "richmond.acme.com" to construct the names
    365 
    366       dc=corporate, dc=acme, dc=com
    367       dc=richmond, dc=acme, dc=com
    368 
    369    under which to place its directory objects.  The directory schema
    370    required to name organizationalUnit and locality objects in this way
    371    is described below in section 5.2.
    372 
    373    Note that subdivisions of the organization such as organizational
    374    units and localities could also be assigned RDNs using the
    375    conventional X.500 naming attributes, e.g.
    376 
    377       ou=corporate, dc=acme, dc=com
    378       l=richmond, dc=acme, dc=com.
    379 
    380    Use of the dc attribute for the RDN of directory objects of class
    381    "domain" is also possible [1].
    382 
    383 4.2 User ID (uid)
    384 
    385    The userid (uid) attribute is defined and registered in RFC1274
    386    [3][10].
    387 
    388    This attribute may be used to construct the RDN for directory objects
    389    subordinate to objects named according to the procedure described in
    390    Section 4.1.  This plan does not constrain how this attribute is
    391    used.
    392 
    393 4.3 Common Name (cn)
    394 
    395    The commonName (cn) attribute is defined and registered in X.500
    396    [3][11].
    397 
    398 
    399 
    400 Grimstad, et. al.            Informational                      [Page 7]
    401 
    403 RFC 2377                A Directory Naming Plan           September 1998
    404 
    405 
    406    This attribute may be used to construct the RDN for directory objects
    407    subordinate to objects named according to the procedure described in
    408    Section 4.1.  This plan does not constrain how this attribute is
    409    used.
    410 
    411 4.4 Examples of uid and cn Usage
    412 
    413    Although this plan places no constraints on the use of the uid and cn
    414    attributes for name construction, we would like to offer some
    415    suggestions by way of examples.
    416 
    417    In practice, we have used uid for the RDN for person objects were we
    418    could make use of an existing registry of names and cn for other
    419    objects.
    420 
    421    Examples of existing registries of identifiers for person objects are
    422    RFC822 mailbox identifiers, employee numbers and employee "handles".
    423    Aside from the convenience to administrators of re-use of an existing
    424    store of identifiers, if it is ever necessary to display to a user
    425    his/her DN, there is some hope that it will be recognizable when such
    426    identifiers are used.
    427 
    428    We have found RFC822 mailbox identifiers a particularly convenient
    429    source for name construction.  When a person has several e-mail
    430    addresses, one will be selected for the purpose of user
    431    identification.  We call this the "distinguished" e-mail address or
    432    the "distinguished" RFC822 mailbox identifier for the user.
    433 
    434    For example, if there is a user affiliated with the organization Acme
    435    having distinguished e-mail address J.Smith (a] acme.com, the uid
    436    attribute will be:
    437 
    438       uid=J.Smith (a] acme.com
    439 
    440    The domain component attributes of a user's DN will normally be
    441    constructed from the domain name of his/her distinguished e-mail
    442    address.  That is, for the user uid=J.Smith (a] acme.com the domain
    443    component attributes would typically be:
    444 
    445       dc=acme, dc=com
    446 
    447    The full LDAP DN for this user would then be:
    448 
    449       uid=J.Smith (a] acme.com, dc=acme, dc=com
    450 
    451    Directory administrators having several RFC822 identifiers to choose
    452    from when constructing a DN for a user should consider the following
    453    factors:
    454 
    455 
    456 
    457 Grimstad, et. al.            Informational                      [Page 8]
    458 
    460 RFC 2377                A Directory Naming Plan           September 1998
    461 
    462 
    463       o Machine-independent addresses are likely to be more stable,
    464         resulting in directory names that change less. Thus an
    465         identifier such as:
    466 
    467             js (a] acme.com
    468 
    469         may well be preferable to one such as:
    470 
    471             js (a] blaster.third-floor.acme.com.
    472 
    473       o Use of some form of "handle" for the "local" part that is
    474         distinct from a user's real name may result in fewer collisions
    475         and thereby lessen user pain and suffering.  Thus the
    476         identifier:
    477 
    478             js (a] acme.com
    479 
    480         may well be preferable to one such as:
    481 
    482             J.Smith (a] acme.com
    483 
    484    Practical experience with use of the RFC822 mailbox identifier scheme
    485    described here has shown that there are situations where it is
    486    convenient to use such identifies for all users in a particular
    487    population, although a few users do not, in fact, possess working
    488    mailboxes.  For example, an organization may have a existing unique
    489    identification scheme for all employees that is used as a alias to
    490    the employees' real mailboxes -- which may be quite heterogeneous in
    491    structure.  The identification scheme works for all employees to
    492    identify unambiguously each employee; it only works as an e-mail
    493    alias for those employees having real mailboxes.  For this reason it
    494    would be a bad assumption for directory-enabled applications to
    495    assume the uid to be a valid mailbox; the value(s) of the mail
    496    attribute should always be checked.
    497 
    498    It is important to emphasize that the elements of the domain name of
    499    an RFC822 identifier may, BUT NEED NOT, be the same as the domain
    500    components of the DN.  This means that the domain components provide
    501    a degree of freedom to support access control or other directory
    502    structuring requirements that need not be mechanically reflected in
    503    the user's e-mail address.  We do not want under any condition to
    504    force the user's e-mail address to change just to facilitate a new
    505    system requirement such as a modification in an access control
    506    structure.  It should also be noted that while we do not require that
    507    the domain components match the RFC822 identifier, we DO require that
    508    the concatenated domain components form a registered domain name,
    509    that is, one that is represented in the DNS. This automatically
    510    avoids name conflicts in the directory hierarchy.
    511 
    512 
    513 
    514 Grimstad, et. al.            Informational                      [Page 9]
    515 
    517 RFC 2377                A Directory Naming Plan           September 1998
    518 
    519 
    520    To provide an example of a DN which deviates from what might be
    521    considered the default structure, consider the following scenario.
    522 
    523    Suppose that J.Smith needs to be granted special permissions to
    524    information in the dc=acme, dc=com part of the LDAP DIT.  Since it
    525    will be, in general, easier to organize special users by their name
    526    structure than via groups (an arbitrary collection of DNs), we use
    527    subdomains for this purpose.  Suppose the special permissions were
    528    required by users in the MIS organizational unit.  A subdomain
    529    "mis.acme.com" is established, if it does not already exist,
    530    according to normal DNS procedures.  The special permissions will be
    531    granted to users with the name structure:
    532 
    533       uid=*, dc=mis, dc=acme, dc=com
    534 
    535    The DN of J.Smith in this case will be:
    536 
    537       uid=J.Smith (a] acme.com, dc=mis, dc=acme, dc=com
    538 
    539    In principal, there is nothing to prevent the domain name elements of
    540    the RFC822 identifier from being completely different from the domain
    541    components of the DN.  For instance, the DN for a J.Smith could be:
    542 
    543       uid=J.Smith (a] worldnet.att.net, dc=mis, dc=acme, dc=com
    544 
    545    While we do not REQUIRE that the domain name part of the uid match
    546    the dc components of the directory distinguished name, we suggest
    547    that this be done where possible. At a minimum, if the most
    548    significant pieces of the DN and the uid are the same (i.e.,
    549    "dc=acme, dc=com" and "acme.com") the likelihood, based on a
    550    knowledge of a user's e-mail address, of discovering an appropriate
    551    directory system to contact to find information about the user is
    552    greatly enhanced.
    553 
    554    The example above represents a situation where this suggestion isn't
    555    possible because some of the users in a population have mailbox
    556    identifiers that differ from the pattern of the rest of the users,
    557    e.g., most mailboxes are of the form local (a] acme.com, but a
    558    subpopulation have mailboxes from an ISP and therefore mailboxes of
    559    the form local (a] worldnet.att.net.
    560 
    561 5.0 Naming Plan and Directories
    562 
    563 5.1 Directory Services Considerations
    564 
    565    We envision the deployment of LDAP-based directory services on the
    566    Internet to take the form of loosely coupled LDAP servers. This
    567    coupling will occur at two levels.
    568 
    569 
    570 
    571 Grimstad, et. al.            Informational                     [Page 10]
    572 
    574 RFC 2377                A Directory Naming Plan           September 1998
    575 
    576 
    577    Firstly, LDAP servers will be loosely connected into islands (i.e. a
    578    set of servers sharing a single DN namespace). The glue connecting
    579    the islands will be LDAP referral [12] information configured into
    580    the LDAP servers. An LDAP search directed to any server in such an
    581    island can be answered, if the information is not available to that
    582    server, by an LDAP referral to another, more appropriate server
    583    within the same island.
    584 
    585    Secondly, various techniques will be used span LDAP islands. The
    586    concept that enables such techniques is the LDAP URL [13]. By
    587    combining a DNS host name and port (corresponding to one or more LDAP
    588    servers) with a DN, the LDAP URL provides unified high-level
    589    identification scheme (an LDAP URL namespace) for directory objects.
    590 
    591    Because an LDAP referral is expressed as one or more LDAP URL, these
    592    two levels of coupling may not sharply distinguished in practice.
    593 
    594    We do not envision the X.500 model of a single DIT (i.e. a single DN
    595    namespace) to be viable in an environment of competing service
    596    providers.  This naming plan does not attempt to produce DNs to hide
    597    the possibility that a given real-world object may have independently
    598    managed directory objects with the same DN associated with it.
    599 
    600 5.2 Directory Schema Implications of the Naming Plan
    601 
    602    The traditional directory schema(s) developed for the X.500 standard
    603    and its application to the Internet [4] require extension to be used
    604    with the naming plan developed here. The extensions described below
    605    attempt to reuse existing schema elements as much as possible. The
    606    directory objects for which extensions are required are:
    607    organization, organizational unit, and various classes of leaf
    608    objects. We describe the schema modifications below for organization,
    609    organizationalUnit and selected leaf classes.
    610 
    611    So as to continue to use existing structural object classes to the
    612    extent possible, we propose supplementing entries based on these
    613    classes with additional information from two new auxiliary object
    614    classes, dcObject and uidObject. They are specified using the
    615    notation in Section 4 of [14].
    616 
    617    The auxiliary object class dcObject is defined in "Using Domains in
    618    LDAP Distinguished Names" [1].
    619 
    620 
    621 
    622 
    623 
    624 
    625 
    626 
    627 
    628 Grimstad, et. al.            Informational                     [Page 11]
    629 
    631 RFC 2377                A Directory Naming Plan           September 1998
    632 
    633 
    634    The auxiliary object class uidObject is defined as:
    635 
    636    ( 1.3.6.1.1.3.1
    637      NAME uidObject
    638      SUP top
    639      AUXILIARY
    640      MUST uid )
    641 
    642 5.2.1 Organization Schema
    643 
    644    The dc attribute is employed to construct the RDN of an organization
    645    object.  This is enabled by adding the auxiliary class dcObject to
    646    the organization's objectClass attribute.
    647 
    648 5.2.2 Organizational Unit Schema
    649 
    650    The dc attribute is employed to construct the RDN of an
    651    organizationalUnit object (which is subordinate in the DIT to either
    652    an organization or an organizationalUnit object).  This is enabled by
    653    adding the auxiliary class dcObject to the organizational unit's
    654    objectClass attribute.
    655 
    656 5.2.3 Person Schema
    657 
    658    No schema extensions are required for person objects if either the
    659    inetOrgPerson [15] (preferred) or the newPilotPerson object classes
    660    are used. The attribute uid is permissible in each class. For
    661    consistency, the uidObject could be added to person entry objectClass
    662    attributes to assist applications filtering on this object class
    663    attribute value. Use of other classes for person objects with RDN
    664    constructed with the uid attribute such as organizationalPerson
    665    requires the use of the uidObject class.
    666 
    667    It has been traditional in X.500 and LDAP directory services to
    668    employ the common name (cn) attribute in naming.  While this naming
    669    plan doesn't require use of the cn attribute in naming, it should be
    670    stressed that it is a required attribute in any class derived from
    671    the person class and is still quite important.  It will play a
    672    significant role in enabling searches to find user entries of
    673    interest.
    674 
    675 5.2.4 Certification Authority Schema
    676 
    677    The certification authority (CA) object class is an auxiliary class,
    678    meaning it is essentially a set of additional attributes for a base
    679    class such as organizationalRole, organization, organizationalUnit or
    680    person.  Except in the case where the base structural class is
    681    inetOrgPerson, use of the uid attribute to construct the RDN of a CA
    682 
    683 
    684 
    685 Grimstad, et. al.            Informational                     [Page 12]
    686 
    688 RFC 2377                A Directory Naming Plan           September 1998
    689 
    690 
    691    will require the auxiliary class uidObject to permit the uid
    692    attribute to be used. In the cases where organizationalUnit or
    693    organization is the base class for a CA, use of the auxiliary class
    694    dcObject will permit the RDN of the CA to be a domain component.
    695 
    696 5.2.5 Server and Server Application Schema
    697 
    698    Servers and server applications are typically represented, for want
    699    of anything better, by entries of the object class applicationProcess
    700    (or a class derived from it).  Sometimes the class applicationEntity
    701    is used.  In either case, the uid attribute should probably not be
    702    employed to construct the RDN of a server or server application
    703    object.  The standard schema uses the attribute cn for such RDNs.
    704 
    705    Suppose one wants to use this naming plan both in the construction of
    706    DNs for SSL server certificates and for their storage in a directory.
    707    It is customary for clients connecting via SSL to compare the
    708    server's domain name (e.g. from the URL used to contact the server)
    709    with the value of the cn attribute in the subject field (i.e.
    710    subject's DN) of the server's certificate. For this reason, it is
    711    common practice to set the cn attribute to the server's domain name.
    712 
    713    The naming and schema to handle this situation is best explained by
    714    an example. Consider the server "host.acme.com". Following the
    715    algorithm in "Using Domains in LDAP Distinguished Names" [1], the DN
    716    dc=host, dc=acme, dc=com is constructed. To conform to the existing
    717    practices just described, the server's subject DN for the SSL server
    718    certificate should be cn=host.acme.com, dc=host, dc=acme, dc=com and
    719    the server's certificate should be stored in a directory entry with
    720    this name. This entry should use application process or application
    721    entity as its structural object class and strong authentication user
    722    as is auxiliary class.
    723 
    724 5.2.6 Name Forms
    725 
    726    For X.500 servers or LDAP servers following the X.500 model, our
    727    schema requires the definition of new name forms, structure rules,
    728    and DIT content rules.  Structure rules and DIT content rules are
    729    locally defined, and do not involve a globally significant object
    730    identifier.
    731 
    732    The following name forms are defined using the syntax of section 6.22
    733    of [14] for the convenience of those using such servers.
    734 
    735    Note that since the structural object classes organization,
    736    organizationalUnit, locality and organizationalPerson do not permit
    737    inclusion of the dc attribute, an auxiliary object class such as
    738    dcObject [1] must be used for instances of these classes.)
    739 
    740 
    741 
    742 Grimstad, et. al.            Informational                     [Page 13]
    743 
    745 RFC 2377                A Directory Naming Plan           September 1998
    746 
    747 
    748 5.2.6.1 Name Form for Domain Objects
    749 
    750    The OIDs in this group are under the
    751    iso.org.dod.internet.directory.NameForm branch of the OID tree
    752    (1.3.6.1.1.2).
    753 
    754    ( 1.3.6.1.1.2.1
    755      NAME domainNameForm
    756      OC domain
    757      MUST dc )
    758 
    759    The domainNameForm name form indicates that objects of structural
    760    object class domain have their RDN constructed from a value of the
    761    attribute dc.
    762 
    763 5.2.6.2 Name Form for Organization Objects
    764 
    765    ( 1.3.6.1.1.2.2
    766      NAME dcOrganizationNameForm
    767      OC organization
    768      MUST dc )
    769 
    770    The dcOrganizationNameForm name form indicates that objects of
    771    structural object class organization have their RDN constructed from
    772    a value of the attribute dc.
    773 
    774 5.2.6.3 Name Form for Organizational Unit Objects
    775 
    776    ( 1.3.6.1.1.2.3
    777      NAME dcOrganizationalUnitNameForm
    778      OC organizationalUnit
    779      MUST dc )
    780 
    781    The dcOrganizationalUnitNameForm name form indicates that objects of
    782    structural object class organizationalUnit have their RDN constructed
    783    from a value of the attribute dc.
    784 
    785 5.2.6.4 Name Form for Locality Objects
    786 
    787    ( 1.3.6.1.1.2.4
    788      NAME dcLocalityNameForm
    789      OC locality
    790      MUST dc )
    791 
    792    The dcLocalityNameForm name form indicates that objects of structural
    793    object class locality have their RDN constructed from a value of the
    794    attribute dc.
    795 
    796 
    797 
    798 
    799 Grimstad, et. al.            Informational                     [Page 14]
    800 
    802 RFC 2377                A Directory Naming Plan           September 1998
    803 
    804 
    805 5.2.6.5 Name Form for Organizational Person Objects
    806 
    807    ( 1.3.6.1.1.2.5
    808      NAME uidOrganizationalPersonNameForm
    809      OC organizationalPerson
    810      MUST uid )
    811 
    812    The uidOrganizationalPersonNameForm name form indicates that objects
    813    of structural object class organizationalPerson have their RDN
    814    constructed from a value of the attribute uid.
    815 
    816 6.0 Security Considerations
    817 
    818    Although access controls may be placed on portions of the DIT to deny
    819    browse access to unauthorized clients, it may be possible to infer
    820    directory names and DIT structure in such sensitive portions of the
    821    DIT from the results of DNS queries. Providing public visibility to
    822    some portions of the DIT may assist those make such inferences.
    823 
    824 7.0 Acknowledgments
    825 
    826    This plan has emerged in the course of a number of fruitful
    827    discussions, especially with David Chadwick, John Dale, Joe Gajewski,
    828    Mark Jackson, Ryan Moats, Tom Spencer and Chris Tzu.
    829 
    830 8.0 References
    831 
    832    [1]     Kille, S., Wahl, M., Grimstad, A., Huber, R., and S.
    833            Sataluri, "Using Domains in LDAP Distinguished Names", RFC
    834            2247, January 1998.
    835 
    836    [2]     X.500: The Directory -- Overview of Concepts, Models, and
    837            Service, CCITT Recommendation X.500, December, 1988.
    838 
    839    [3]     Barker, P., and S. Kille, "The COSINE and Internet X.500
    840            Schema", RFC 1274, November 1991.
    841 
    842    [4]     The North American Directory Forum, "A Naming Scheme for
    843            c=US", RFC 1255, September 1991.
    844 
    845    [5]     The North American Directory Forum, "NADF Standing Documents:
    846            A Brief Overview", RFC 1417, February 1993.
    847 
    848    [6]     Yeong, W., Howes, T., and S. Kille, "Lightweight Directory
    849            Access Protocol", RFC 1777, March 1995.
    850 
    851    [7]     Wahl, M., Howes, T., and S. Kille, "Lightweight Directory
    852            Access Protocol (v3)", RFC 2251, December 1997.
    853 
    854 
    855 
    856 Grimstad, et. al.            Informational                     [Page 15]
    857 
    859 RFC 2377                A Directory Naming Plan           September 1998
    860 
    861 
    862    [8]     Kille, S., "A String Representation of Distinguished Names",
    863            RFC 1779, March 1995.
    864 
    865    [9]     Wahl, M., Kille, S., and T. Howes, "Lightweight Directory
    866            Access Protocol (v3): UTF-8 String Representation of
    867            Distinguished Names", RFC 2253, December 1997.
    868 
    869    [10]    Wahl, M., "A Summary of the Pilot X.500 Schema for use
    870            in LDAPv3", Work in Progress.
    871 
    872    [11]    Wahl, M., "A Summary of the X.500 User Schema for use with
    873            LDAPv3", RFC 2256, December 1997.
    874 
    875    [12]    Howes, T., and M. Wahl, "Referrals and Knowledge References
    876            in LDAP Directories", Work in Progress.
    877 
    878    [13]    Howes, T., and M. Smith, "The LDAP URL Format", RFC 2255,
    879            December 1997.
    880 
    881    [14]    Wahl, M., Coulbeck, A., Howes, T., and S. Kille,
    882            "Lightweight Directory Access Protocol (v3): Attribute Syntax
    883            Definitions", RFC 2252, December 1997.
    884 
    885    [15]    Smith, M., "Definition of the inetOrgPerson Object Class",
    886            Work in Progress.
    887 
    888 
    889 
    890 
    891 
    892 
    893 
    894 
    895 
    896 
    897 
    898 
    899 
    900 
    901 
    902 
    903 
    904 
    905 
    906 
    907 
    908 
    909 
    910 
    911 
    912 
    913 Grimstad, et. al.            Informational                     [Page 16]
    914 
    916 RFC 2377                A Directory Naming Plan           September 1998
    917 
    918 
    919 12.  Authors' Addresses
    920 
    921    Al Grimstad
    922    AT&T
    923    Room 1C-429, 101 Crawfords Corner Road
    924    Holmdel, NJ 07733-3030
    925    USA
    926 
    927    EMail:  alg (a] att.com
    928 
    929 
    930    Rick Huber
    931    AT&T
    932    Room 1B-433, 101 Crawfords Corner Road
    933    Holmdel, NJ 07733-3030
    934    USA
    935 
    936    EMail:  rvh (a] att.com
    937 
    938 
    939    Sri Sataluri
    940    Lucent Technologies
    941    Room 4D-335, 101 Crawfords Corner Road
    942    Holmdel, NJ 07733-3030
    943    USA
    944 
    945    EMail:  srs (a] lucent.com
    946 
    947 
    948    Mark Wahl
    949    Critical Angle Inc.
    950    4815 W Braker Lane #502-385
    951    Austin, TX 78759
    952    USA
    953 
    954    EMail:  M.Wahl (a] critical-angle.com
    955 
    956 
    957 
    958 
    959 
    960 
    961 
    962 
    963 
    964 
    965 
    966 
    967 
    968 
    969 
    970 Grimstad, et. al.            Informational                     [Page 17]
    971 
    973 RFC 2377                A Directory Naming Plan           September 1998
    974 
    975 
    976 13.  Full Copyright Statement
    977 
    978    Copyright (C) The Internet Society (1998).  All Rights Reserved.
    979 
    980    This document and translations of it may be copied and furnished to
    981    others, and derivative works that comment on or otherwise explain it
    982    or assist in its implementation may be prepared, copied, published
    983    and distributed, in whole or in part, without restriction of any
    984    kind, provided that the above copyright notice and this paragraph are
    985    included on all such copies and derivative works.  However, this
    986    document itself may not be modified in any way, such as by removing
    987    the copyright notice or references to the Internet Society or other
    988    Internet organizations, except as needed for the purpose of
    989    developing Internet standards in which case the procedures for
    990    copyrights defined in the Internet Standards process must be
    991    followed, or as required to translate it into languages other than
    992    English.
    993 
    994    The limited permissions granted above are perpetual and will not be
    995    revoked by the Internet Society or its successors or assigns.
    996 
    997    This document and the information contained herein is provided on an
    998    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
    999    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   1000    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   1001    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   1002    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
   1003 
   1004 
   1005 
   1006 
   1007 
   1008 
   1009 
   1010 
   1011 
   1012 
   1013 
   1014 
   1015 
   1016 
   1017 
   1018 
   1019 
   1020 
   1021 
   1022 
   1023 
   1024 
   1025 
   1026 
   1027 Grimstad, et. al.            Informational                     [Page 18]
   1028 
   1030