home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_i / draft-ietf-ids-dirnaming-00.txt < prev    next >
Text File  |  1996-11-25  |  33KB  |  749 lines

  1.  
  2. IDS Working Group                                            Al Grimstad
  3. INTERNET-DRAFT                                                Rick Huber
  4.                                                             Sri Sataluri
  5.                                                                     AT&T
  6.                                                            November 1996
  7.  
  8.  
  9.              NAMING PLAN FOR AN INTERNET DIRECTORY SERVICE
  10.                Filename: draft-ietf-ids-dirnaming-00.txt
  11.  
  12.  
  13. Status of this Memo
  14.  
  15. This document is an Internet-Draft.  Internet-Drafts are working
  16. documents of the Internet Engineering Task Force (IETF), its areas, and
  17. its working groups.  Note that other groups may also distribute working
  18. documents as Internet-Drafts.
  19.  
  20. Internet-Drafts are draft documents valid for a maximum of six months
  21. and may be updated, replaced, or obsoleted by other documents at any
  22. time.  It is inappropriate to use Internet- Drafts as reference
  23. material or to cite them other than as ``work in progress.''
  24.  
  25. To learn the current status of any Internet-Draft, please check the
  26. ``1id-abstracts.txt'' listing contained in the Internet- Drafts Shadow
  27. Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
  28. munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
  29. ftp.isi.edu (US West Coast).
  30.  
  31. Distribution of this document is unlimited.  Editorial comments should
  32. be sent directly to the authors.  Technical discussion will take place
  33. on the IETF Integrated Directory Services mailing list,
  34. ietf-ids@umich.edu.
  35.  
  36.            This Internet Draft expires April 15, 1997.
  37.  
  38. Abstract
  39.  
  40. Application of the conventional X.500 approach to naming has, in the
  41. experience of the authors, proven to be an obstacle to the creation of
  42. directory services.  We propose a new directory naming plan that
  43. leverages the strengths of the most popular and successful Internet
  44. naming schemes for naming objects in a hierarchical directory.  This
  45. plan can, we believe, facilitate the creation of an Internet White
  46. Pages Service (IWPS) by overcoming the problems encountered by those
  47. using the conventional recommended X.500 approach to naming.
  48.  
  49. 1.0 EXECUTIVE SUMMARY
  50.  
  51. The conventional approach to naming taken by the X.500 community has,
  52. in the experience of the authors, shown itself to be an obstacle to the
  53. creation of directory services.  The required registration
  54. infrastructure is either non-existent or largely ignored.  The
  55. infrastructure that does exist is cumbersome to use and tends to
  56. produce counterproductive results.  The attributes used for naming have
  57. been confusing for users and inflexible to managers and operators of
  58. directory services.
  59.  
  60. We propose an alternative approach -- which can co-exist with current
  61. X.500 naming practices -- for the construction of the Internet White
  62. Pages Service (IWPS).  The existing infrastructure of names in the
  63. Internet, that is, names from the Domain Name System (DNS) and mailbox
  64. identifiers structured according to RFC822, can adequately supply the
  65. need for names in the construction of an IWPS.  Further, with the
  66. proper construction of the IWPS, RFC822 identifiers can play a role
  67. that is entirely analogous to the role distinguished names play in
  68. X.500.
  69.  
  70. Here, in summary, is our proposal.
  71.  
  72. For naming entries of users, server applications and certification
  73. authorities in a hierarchical directory (e.g., one accessed via LDAP),
  74. we propose the use of the user identifier attribute "uid" for the
  75. relative distinguished name.  The value of this attribute should be an
  76. RFC822 address, e.g.,
  77.  
  78.     uid=John.Smith@acme.com
  79.  
  80. The upper portions of the hierarchical directory tree should be
  81. constructed using the components of registered DNS names using the
  82. domain component attribute "dc".  The directory name for the
  83. organization having the domain name acme.com will then be, e.g.,
  84.  
  85.     dc=acme, dc=com
  86.  
  87. Organizations can add additional directory structure, for example to
  88. support implementation of access control lists or partitioning of their
  89. directory information, by using registered subdomains of DNS names,
  90. e.g.,
  91.  
  92.     dc=corporate, dc=acme, dc=com
  93.  
  94. Directory distinguished names will thus have the following structure,
  95. e.g.,
  96.  
  97.     uid=John.Smith@acme.com, dc=acme, dc=com
  98.     uid=Mary.Jones@acme.com, dc=corporate, dc=acme, dc=com
  99.     uid=J.Smith@worldnet.att.net, dc=legal, dc=acme, dc=com
  100.  
  101. Searching the directory based on exact matching of the uid attribute
  102. should be optimized in the directory service such that it is
  103. essentially equivalent to searching using a directory distinguished
  104. name.
  105.  
  106. External mechanisms can be used to locate the proper directory server
  107. to query to obtain directory information.
  108.  
  109. 2.0 THE PROBLEM 
  110.  
  111. The X.500 Directory model [1] can be used to create a world-wide
  112. distributed directory. The Internet X.500 Directory Pilot has been
  113. operational for several years and has grown to a size of about 1.5
  114. million entries of varying quality.  The rate of growth of the pilot is
  115. far lower than the rate of growth of the Internet during the pilot
  116. period.
  117.  
  118. There are a substantial number of contributing factors that have
  119. inhibited the growth of this pilot.  The common X.500 approach to
  120. naming, while not the preponderant problem, has contributed in several
  121. ways to limit the growth of an Internet White Pages Service based on
  122. X.500.
  123.  
  124. 2.1 Naming Problems
  125.  
  126. The conventional way to construct names in the X.500 community is
  127. documented as an informative (i.e., not officially standardized) Annex
  128. B to X.521. The relative distinguished name (RDN) of a user consists of
  129. a common name (cn) attribute. This is meant to be what, in the user's
  130. particular society, is customarily understood to be the name of that
  131. user. The distinguished name of a user is the combination of the name
  132. of some general object, such as an organization or a geographical unit,
  133. with the common name. There are two main defects to this style of name
  134. construction.
  135.  
  136. First, the common name attribute, while seeming to be user-friendly,
  137. cannot be used generally as an RDN in practice.  In any significant set
  138. of users to be named under the same Directory Information Tree (DIT)
  139. node there will be collisions on common name.  There is no way to
  140. overcome this other than either forcing uniqueness on common names,
  141. something they do not possess, or using an additional attribute to
  142. prevent collisions.  This additional attribute normally needs to be
  143. unique in a much larger context to have any practical value.  The end
  144. result is a RDN that is very long and unpopular with users.
  145.  
  146. Second, and more serious, X.500 has not been able to use any
  147. significant number of pre-existing names.  Since X.500 naming models
  148. typically use organization names as part of the hierarchy [2, 3],
  149. organization names must be registered.  As organization names are
  150. frequently tied to trademarks and are used in sales and promotions,
  151. registration can be a difficult and acrimonious process.
  152.  
  153. The North American Directory Forum (NADF, now the North Atlantic
  154. Directory Forum but still the NADF) proposed to avoid the problem of
  155. registration by using names that were already registered in the "civil
  156. naming infrastructure" [3].  Directory distinguished names would be
  157. based on an organization's legal name as recognized by some
  158. governmental agency (county clerk, state secretary of state, etc.) or
  159. other registering entity such as ANSI.
  160.  
  161. This scheme has the significant advantage of keeping directory service
  162. providers out of disputes about the right to use a particular name, but
  163. it leads to rather obscure names.  Among these obscurities, the legal
  164. name almost invariably takes a form that is less familiar and longer
  165. than what users typically associate with the organization.  For
  166. example, in the US a large proportion of legal organization names end
  167. with the text ", Inc." as in "Acme, Inc."  Moreover, in the case of the
  168. US, the civil naming infrastructure does not operate nationally, so the
  169. organization names it provides must be located under state and regional
  170. DIT nodes, making them difficult to find while browsing the directory.
  171. NADF proposes a way to algorithmically derive multi-attribute RDNs
  172. which would allow placement of entries or aliases in more convenient
  173. places in the DIT, but these derived names are cumbersome and
  174. unpopular.  For example, suppose Nadir is an organization that is
  175. civilly registered in New Jersey under the name "Nadir Networks, Inc."
  176. Its civil distinguished name (DN) would then be
  177.  
  178.     o="Nadir Networks, Inc.", st=New Jersey, c=US
  179.  
  180. while its derived name which is unambiguous under c=US directly is
  181.  
  182.     o="Nadir Networks, Inc." + st=New Jersey, c=US
  183.  
  184. More generally, the requirement for registration of organizations in
  185. X.500 naming has led to the establishment of national registration
  186. authorities whose function is mainly limited to assignment of X.500
  187. organization names.  Because of the very limited attraction of X.500,
  188. interest in registering an organization with one of these national
  189. authorities has been minimal. Finally, multi-national organizations are
  190. frustrated by a lack of an international registration authority.
  191.  
  192. 2.2 Directory Models
  193.  
  194. The Internet community proposed the Light-weight Directory Access
  195. Protocol [4], initially, as an access method for X.500 directories.
  196. However, more recently, many different directories are starting to use
  197. LDAP as an access protocol.  Many software companies have endorsed the
  198. LDAP protocol and are starting to sell stand-alone hierarchical
  199. directories that use LDAP as the access protocol.
  200.  
  201. The meeting documented in RFC1588, held in conjunction with the Houston
  202. IETF in November 1993, has the following as one of its conclusions
  203. [5]:
  204.  
  205.       It is evident that there are and will be several [directory]
  206.       technologies in use.  In order to provide a white pages directory
  207.       service that accommodates multiple technologies, we should
  208.       promote interoperation and work toward a specification of the
  209.       simplest common communication form that is powerful enough to
  210.       provide the necessary functionality.  This "common ground"
  211.       approach aims to provide the ubiquitous WPS (White Pages Service)
  212.       with a high functionality and a low entry cost.
  213.  
  214. In other words, at that time (November 1993) people already felt that
  215. X.500 was not the one and only answer; we needed to try out other tools
  216. and look for ways to tie all the resulting directories together.  The
  217. Internet community gave X.500 a fair chance [6] but it did not succeed
  218. on a large enough scale to become the overall Internet White Pages
  219. Service (IWPS).
  220.  
  221. The X.500 Directory, via its knowledge model, attempts to build a
  222. world-wide directory in a top-down fashion.  This approach has only met
  223. with partial success.  The advent of the LDAP protocol and its
  224. popularity and the possible ubiquitous availability of stand-alone LDAP
  225. directory server technology will, in our opinion, stimulate the
  226. creation of directories in a bottom-up fashion.  These directory
  227. servers or directory islands will be loosely tied together via LDAP
  228. referrals and other external mechanisms.
  229.  
  230. 2.3 Addressing the Problems
  231.  
  232. This paper describes a directory naming plan that is a radical
  233. departure from the traditional X.500 naming scheme -- the X.500 scheme
  234. has not been generally accepted by the Internet community and has been
  235. found to be very clumsy in implementing and administering directory
  236. services by the authors.
  237.  
  238. This naming plan is straightforward to implement by both classic X.500
  239. systems and islands of stand-alone LDAP servers. Its unique strength
  240. lies in its use of the existing Internet naming schemes -- RFC822
  241. addresses and the Domain Name System. Further, by use of an attribute,
  242. the user ID attribute, and a tree structure based on the DNS, the plan,
  243. if broadly implemented, may well simplify the construction of external
  244. mechanisms to locate appropriate LDAP servers.
  245.  
  246. The naming plan focus is on naming Internet user and server
  247. applications.  It is not applicable to objects such as the X.500
  248. residential person which typically lack e-mail mailboxes (we believe
  249. that such entries are useless in this day and age).  Because it is a
  250. hierarchical plan using typed attribute values (tags), the naming plan
  251. can co-exist with other hierarchical plans using other typed attributes
  252. such as a plan for residential persons and the conventional X.521 Annex
  253. B plan.
  254.  
  255. 3.0 TECHNOLOGICAL ASSUMPTIONS
  256.  
  257. We assume that our fundamental protocol interface to systems offering
  258. general directory services will be the TCP/IP-based Lightweight
  259. Directory Access Protocol (LDAP) [4].  Objects are named in this
  260. protocol in a hierarchical fashion and represented as described in RFC
  261. 1779 [7].  We also assume that user authentication and other security
  262. services based on it will increasingly depend on the use of the Secure
  263. Sockets Layer (SSL) or variant protocol and the structure of user and
  264. server certificates (certified public cryptographic keys) as described
  265. in an Internet Draft [8].
  266.  
  267. 4.0 RFC822 IDENTIFICATION
  268.  
  269. The one universally accepted scheme of user identification (actually
  270. user maildrop identification) in the Internet today is the RFC822 [9]
  271. syntax for e-mail addresses. The syntax of an RFC822 identifier is:
  272.  
  273.     local@domain
  274.  
  275. where
  276.  
  277.     "domain"      is a hierarchically structured identifier as defined
  278.                   by the Domain Name System (DNS), and
  279.  
  280.     "local"      is an identifier for a user (literally a maildrop)
  281.                   that is valid within the domain "domain".
  282.  
  283. Examples of such identifiers are J.Smith@acme.com and
  284. S.Johnson@corporate.acme.com.
  285.  
  286. Each user for whom information is maintained in a directory service
  287. will have at least one e-mail address structured according to RFC822.
  288. While the user may well have many such addresses, one will be selected
  289. for the purpose of user identification.  We call this the
  290. "distinguished" e-mail address or the "distinguished" RFC822 identifier
  291. for the user.
  292.  
  293. 5.0 DIRECTORY DISTINGUISHED NAMES
  294.  
  295. 5.1 Overview of Distinguished Names
  296.  
  297. The general structure of a name in LDAP, termed a distinguished name
  298. (DN), is:
  299.  
  300.     attribute, attribute, ... attribute
  301.  
  302. An "attribute" is a pairing of a type identifier and a value separated
  303. by "=". For example, cn=Samuel Johnson is an attribute with type
  304. identifier "cn", short for common name, and value "Samuel Johnson".
  305.  
  306. The order of the attributes in a DN is significant. Like DNS
  307. identifiers, DNs are hierarchical and "little endian", that is, the
  308. most global piece comes last. An example of a DN is:
  309.  
  310.     cn=Samuel Johnson, o=Famous Lexicographers, c=GB
  311.  
  312. where:
  313.  
  314.     cn=Samuel Johnson means the attribute type "cn" has the value
  315.     "Samuel Johnson",
  316.  
  317.     o=Famous Lexicographers means that the attribute type "o", short
  318.     for organization name, has the value "Famous Lexicographers", and
  319.  
  320.     c=GB means that the attribute type "c", short for country name, has
  321.     the value "GB", the international abbreviation for the country
  322.     Great Britain.
  323.  
  324. The set of all DNs forms a tree structure that is called the Directory
  325. Information Tree (DIT).
  326.  
  327. 5.2 Directory Distinguished Names
  328.  
  329. Suppose an organization, e.g., Acme, wants to bring up a Directory
  330. Service.  It either has a registered DNS name or it should get one.
  331.  
  332. Given a DNS name, we will use a form of DN construction largely based
  333. on RFC1279 [10].  This RFC shows how to map an RFC822 e-mail address to
  334. a DN.  We differ from it in two respects: (1) we use a mapping that
  335. starts at the root of the DIT; and (2) we use the attribute type user
  336. ID (userid or uid) for the first attribute of the DN. The value of the
  337. uid attribute is a complete RFC822 address that may but need not be
  338. related to the DN of the parent entry.
  339.  
  340. The pattern for a user's DN will be:
  341.  
  342.     uid=RFC822 identifier, dc=A, ..., dc=Z
  343.  
  344. We consider each of the two attribute types, uid and dc, used to form
  345. the DN in turn.
  346.  
  347. 5.2.1 User ID (uid)
  348.  
  349. The userid (uid) attribute is defined and registered in RFC1274 [2].
  350.  
  351. The value of the user ID attribute for the user's name will be the
  352. user's distinguished e-mail address in RFC822 syntax.  For example, if
  353. there is a user affiliated with the organization Acme having
  354. distinguished e-mail address J.Smith@acme.com, the uid attribute will
  355. be:
  356.  
  357.     uid=J.Smith@acme.com
  358.  
  359. We require uid=J.Smith@acme.com to be a working e-mail address.  The
  360. whole idea here is that users will remember a working e-mail address;
  361. we shouldn't plague them with broken RFC822 addresses constructed for
  362. the convenience of the directory service only.  The A or MX record for
  363. the domain name can point to either a customer or network service
  364. provider host.
  365.  
  366. Since an RFC822 identifier unambiguously identifies a user, it can be
  367. used (by system processes) to search a particular directory system
  368. (e.g. an LDAP server or a related set of LDAP servers) to find a user's
  369. entry.  The user need not -- and we assume typically will not -- even
  370. know his/her DN.  See Section 8.1.
  371.  
  372. Directory administrators having several RFC822 identifiers to choose
  373. from when constructing a DN for a user should consider the following
  374. factors:
  375.  
  376.     o Machine-independent addresses are likely to be more stable,
  377.       resulting in directory names that change less. Thus an identifier
  378.       such as:
  379.  
  380.           js@acme.com
  381.  
  382.       may well be preferable to one such as:
  383.  
  384.          js@blaster.third-floor.acme.com.
  385.  
  386.     o Use of some form of "handle" for the "local-part" that is distinct
  387.       from a user's real name may result in fewer collisions and less
  388.       user pain and suffering when a preferred handle is unavailable
  389.       because it is already in use. Thus the identifier:
  390.  
  391.           js@acme.com
  392.  
  393.       may well be preferable to one such as:
  394.  
  395.           J.Smith@acme.com
  396.  
  397. 5.2.2 Domain Component (dc)
  398.  
  399. The domain component attribute is defined and registered in RFC1274
  400. [2].
  401.  
  402. The domain component attributes of a user's DN will normally be
  403. constructed from the domain name of his/her distinguished e-mail
  404. address.  That is, for the user uid=J.Smith@acme.com the domain
  405. component attributes would typically be:
  406.  
  407.     dc=acme, dc=com
  408.  
  409. The full LDAP DN for this user would then be:
  410.  
  411.     uid=J.Smith@acme.com, dc=acme, dc=com
  412.  
  413. It is important to emphasize that the elements of the domain name of
  414. the RFC822 identifier may, BUT NEED NOT, be the same as the domain
  415. components of the DN.  This means that the domain components provide a
  416. degree of freedom to support access control or other directory
  417. structuring requirements that need not be mechanically reflected in the
  418. user's e-mail address.  We do not want under any condition to force the
  419. user's e-mail address to change just to facilitate a new system
  420. requirement such as a modification in an access control structure.  It
  421. should also be noted that while we do not require that the domain
  422. components match the RFC822 identifier, we DO require that the
  423. concatenated domain components form a registered domain name, that is
  424. one that is represented in the DNS. This avoids name conflicts in the
  425. directory hierarchy.
  426.  
  427. To provide an example of a DN which deviates from what might be
  428. considered the default structure, consider the following scenario.
  429.  
  430. Suppose that J.Smith needs to be granted special permissions to
  431. information in the dc=acme, dc=com part of the LDAP DIT.  Since it will
  432. be, in general, easier to organize special users by their name
  433. structure than via groups (an arbitrary collection of DNs), we use
  434. subdomains for this purpose.  Suppose the special permissions were
  435. required by users in the MIS organizational unit.  A subdomain
  436. "mis.acme.com" is established, if it does not already exist, according
  437. to normal DNS procedures.  The special permissions will be granted to
  438. users with the name structure:
  439.  
  440.     uid=*, dc=mis, dc=acme, dc=com
  441.  
  442. The DN of J.Smith is this case will be:
  443.  
  444.     uid=J.Smith@acme.com, dc=mis, dc=acme, dc=com
  445.  
  446. In principal, there is nothing to prevent the domain name elements of
  447. the RFC822 identifier from being completely different from the domain
  448. components of the DN.  For instance, the DN for a J.Smith could be:
  449.  
  450.     uid=J.Smith@worldnet.att.net, dc=mis, dc=acme, dc=com
  451.  
  452. While we do not REQUIRE that the domain name part of the uid match the
  453. dc components of the directory distinguished name, we suggest that this
  454. be done where possible. At a minimum, if the most significant pieces of
  455. the DN and the uid are the same (i.e., "dc=acme, dc=com" and
  456. "acme.com") the likelihood, based on a knowledge of a user's e-mail
  457. address, of discovering an appropriate directory system to contact to
  458. find information about the user is greatly enhanced.
  459.  
  460. 6.0 NAMING FOR CERTIFICATES
  461.  
  462. The certified public keys, certificates, used in SSL and other forms of
  463. strong (i.e. cryptographically based) authentication are structured
  464. according to the ITU X.509 standard.  A certificate contains two names
  465. of importance, the name of the "subject" and the "issuer".  The subject
  466. will be either a user or a server; the issuer will be a certification
  467. authority.  The encoding of these names differs significantly from the
  468. encoding of LDAP names which are simply character strings.  In
  469. particular, the attribute types used in names are encoded as globally
  470. unique "object identifiers."  The object identifiers relevant to the
  471. names considered in this naming plan are assigned in either the X.500
  472. standards (ITU X.520) or RFC1274, the COSINE and Internet X.500 Schema
  473. [2].
  474.  
  475. 6.1 User Certificates
  476.  
  477. For user certificates issued by a certification authority, the subject
  478. name will be the proper X.509 representation of the user hierarchical
  479. DNs described in this paper.
  480.  
  481. 6.2 Server/Site Certificates
  482.  
  483. As certificates are used more and more for authentication, applications
  484. that run as processes on systems need to be named so that they can also
  485. be located in the directory.  Since the name of the subject is encoded
  486. in a certificate, for application instances to be portable, we need a
  487. naming scheme that is independent of the underlying hardware platform
  488. and its IP address or DNS host name.
  489.  
  490. In existing Internet products that use certificates, the terms "Server
  491. Certificate" and "Site Certificate" have been (mis-)used to identify
  492. application instances.
  493.  
  494. We propose that application instances be named similar to individuals
  495. as entities under a specific branch of the DIT and be given appropriate
  496. unique RFC822 identifiers.  The RFC822 identifier so chosen is not
  497. constrained by the naming plan.  As illustrated in the three examples
  498. below, it can be either host-independent (1,2) or host dependent (3).
  499. If host-independent, it can be based on a subdomain (2) of the
  500. organization's domain name or, if such registration is convenient,
  501. based on the domain name (1) itself.
  502.  
  503. A few examples of application instance names are:
  504.  
  505.     uid=dirsrv0@acme.com, dc=sales, dc=acme, dc=com                (1)
  506.     uid=certsrv0@sales.acme.com, dc=sales, dc=acme, dc=com         (2)
  507.     uid=gnarlysrv0@surf.sales.acme.com, dc=sales, dc=acme, dc=com  (3)
  508.  
  509. This name is used in the construction of the server's certificate.
  510.  
  511. A consequence of this method of constructing names is that application
  512. instances have mailboxes. This can be thought of as an opportunity to
  513. provide users with a predictable contact for resolution of operational
  514. problems with the application much like postmaster@DOMAIN is the
  515. predictable contact for e-mail problems at DOMAIN.
  516.  
  517. 6.3 Certification Authority Certificates
  518.  
  519. A certification authority (CA) is the trusted guarantor for a user or
  520. server certificate.  The CA's name appears in the "issuer" field of the
  521. certificate it issues.  The names of several CAs are already built into
  522. popular Internet Web browsers such as the Netscape Navigator and the
  523. Microsoft Internet Explorer.  Some examples of such CA names are:
  524.  
  525.     cn=Certification Authority, o=AT&T, c=US
  526.     cn=Directory Services, o=AT&T, c=US
  527.     cn=Certificate Services, o=AT&T, c=US
  528.  
  529. These names use the traditional X.500 attributes for naming. These
  530. attributes are common name (cn), organization name (o) and country name
  531. (c).  To maintain compatibility, the appropriate CAs can be
  532. incorporated in any LDAP-based directory service with these existing
  533. names.
  534.  
  535. In future, new certification authorities should be assigned names
  536. following the structure described in this document.
  537.  
  538. 7.0 CONSUMER DIRECTORY SERVICES
  539.  
  540. Consumer customers are typically supported by on-line service
  541. providers, such as AT&T WorldNet, America On-Line, CompuServe, etc.
  542. Entries for these customers can also be represented in the LDAP DIT by
  543. names with the following structure (reflecting current e-mail address
  544. assignment practice):
  545.  
  546.     uid=J.Smith@worldnet.att.net, dc= worldnet, dc=att, dc=net
  547.  
  548. Modifications in this practice (to avoid the M.Jones99 problem) by
  549. using additional subdomains of worldnet.att.net can be easily
  550. accommodated by the scheme described here, but such ideas are left to
  551. the discretion of the on-line service provider.
  552.  
  553. 8.0 IMPLEMENTATION ISSUES
  554.  
  555. 8.1 Directory Services Considerations
  556.  
  557. This naming plan has been designed so that a user's entry can be found
  558. uniquely using nothing but the user's distinguished e-mail address --
  559. assuming that the query is sent to the right LDAP directory server.
  560. Systems having the user's DN in hand can, of course, directly access
  561. the user's entry via LDAP.
  562.  
  563. An LDAP search request with the following components will either (1)
  564. find uniquely the entry of a user with the provided distinguished
  565. e-mail address, or (2) indicate that no user has the provided e-mail
  566. address as a distinguished e-mail address:
  567.  
  568.     baseObject: root
  569.     scope: wholeSubtree
  570.     filter: equalityMatch (uid == distinguished e-mail address)
  571.  
  572. A search such as this is possible in LDAP servers being planned
  573. because, unlike X.500 servers, the LDAP servers we envision are not
  574. universally interconnected in one global system according to the X.500
  575. knowledge model.  In X.500 such a search would propagate to all the
  576. servers in the system; in the envisioned LDAP system it would be
  577. limited to one server (or potentially a small set of servers).
  578.  
  579. In a world of LDAP islands, the issue of finding the right island to
  580. which to direct a directory query arises.  The new version of LDAP
  581. under design in the IETF [11] has a referral mechanism.  Given a query,
  582. a server can return a referral to an other LDAP server that might hold
  583. the data. This approach can be used to tie together the servers holding
  584. the distributed data of an LDAP island.  By generalizing this concept
  585. one can imagine building a simple referral server that knows about the
  586. LDAP islands of the Internet. It would compare the naming information
  587. in a query it receives with its knowledge of LDAP islands and return a
  588. referral to the appropriate island.
  589.  
  590. It has been traditional in X.500 and LDAP directory services to employ
  591. the common name (cn) attribute in naming.  While this naming plan
  592. doesn't use the cn attribute, it should be stressed that it is still
  593. quite important.  It will play a significant role in enabling searches
  594. to find user entries of interest.  To this end, what is typically done
  595. is to have multiple values of the common name attribute in the user's
  596. entry.  Thus the entry for J.Smith@acme.com might well have the common
  597. name attribute values "John Smith", "John Q. Smith" and "John Quincy
  598. Smith" to optimize matching of search requests.
  599.  
  600. The attribute rfc822mailbox (or mail) is normally used to hold a user's
  601. e-mail address in X.500 and LDAP directory services.  A user with
  602. multiple e-mail addresses will not be assigned multiple DNs simply
  603. because of the multiple addresses.  As described above, one of these
  604. e-mail addresses -- a machine-independent and fairly static one -- will
  605. be elected the distinguished e-mail address and used to construct the
  606. DN.  If it is desirable to make available the other e-mail addresses,
  607. they can be stored in the user's rfc822mailbox attribute.  It is
  608. technically possible, although undesirable because potentially
  609. confusing, that the rfc822mailbox attribute does NOT contain the
  610. distinguished e-mail address as one of its values.
  611.  
  612. 8.2 Alternative DN Structures
  613.  
  614. Some organizations may wish to be represented by a scheme based upon a
  615. more classic X.500/NADF naming system [12].  These organizations can be
  616. accommodated in the scheme without significant problems or naming
  617. conflicts.
  618.  
  619. The approach we take should not preclude participation in a larger
  620. directory service, so names held in the stand-alone LDAP directory
  621. shouldn't collide unnecessarily with names held by other directory
  622. service operators.  (If two directory service providers hold
  623. information with respect to the same DN, these are two different views
  624. of the same real world object, not two unrelated objects that
  625. accidentally share a "name.")  Naming based on DNS meets this
  626. criterion.  Disciplined use of X.500 naming can also meet this
  627. criterion.
  628.  
  629. To enable a consistent searching strategy, we strongly recommend the
  630. user ID (uid) attribute, although not part of the DN, have a valid
  631. RFC822 identifier for the user.  The LDAP DIT structure will follow the
  632. typical X.500/NADF approach as follows:
  633.  
  634. Organizations wishing to pursue this approach will need to register
  635. their organization's name with the appropriate authority as generally
  636. accepted in the X.500/NADF community. This means that US organizations
  637. will register with ANSI.  The resort to the civil naming infrastructure
  638. of states and counties should be actively discouraged.  The names
  639. constructed from this civil naming infrastructure (a la NADF), while
  640. meeting the technical criteria for non-ambiguity and right to use, are
  641. typically long and unwieldy.
  642.  
  643. Suppose the US company "XYZ Widgets" expressed a wish to follow this
  644. approach.  A typical user name might be
  645.  
  646.    uid=J.User@xyzwidgets.com, o="XYZ Widgets, Inc.", c=US
  647.  
  648. where o="XYZ Widgets, Inc.", c=US is an ANSI registered name.  (The
  649. "alphanumeric string" registered with ANSI is 'XYZ Widgets, Inc.',
  650. where the single quotes mark off what is registered but are not part of
  651. the registered information.)
  652.  
  653. To support structured access control within the company the analogous
  654. form to the registration of a subdomain in the mainline approach is the
  655. creation of an organizational unit node.
  656.  
  657. 8.3 Tagless Naming
  658.  
  659. The LDAP names of the form "cn=John Smith, ou= Corporate Sales, ou=
  660. South East Region, o= Acme Service Corporation Inc., l= Monmouth,
  661. st=New Jersey, c= US" are perpetually confusing to users.  It is also
  662. hard for an intermediate system to add tags correctly if a user does
  663. not supply them.
  664.  
  665. This naming plan is eminently suited for the support of tag-less
  666. naming.  While supporting strong typing,  we use a limited number of
  667. tags -- uid for all leaf objects and dc for all non-leaf objects, and
  668. hence adding tags is straight-forward.  In the rare cases when users
  669. must supply DNs, they will therefore do so without having to know about
  670. tags.
  671.  
  672. 9.0 SECURITY CONSIDERATIONS
  673.  
  674. Security considerations are not part of this paper.
  675.  
  676. 10.0 ACKNOWLEDGMENTS
  677.  
  678. This plan has emerged in the course of a number of fruitful
  679. discussions, especially with Joe Gajewski, Mark Jackson, Ryan Moats,
  680. Tom Spencer and Chris Tzu.
  681.  
  682.  
  683. 11.0 REFERENCES
  684.  
  685. [1]     X.500: The Directory -- Overview of Concepts, Models, and
  686.         Service, CCITT Recommendation X.500, December, 1988.
  687.  
  688. [2]     P.Barker, and S. Kille, "The COSINE and Internet X.500 Schema",
  689.     RFC1274, 11/27/1991.
  690.  
  691. [3]     The North American Directory Forum, "A Naming Scheme for c=US",
  692.     RFC1255, September 1991.
  693.  
  694. [4]     W. Yeong, T. Howes, and S. Kille, "Lightweight Directory Access
  695.     Protocol", RFC1777, 03/28/1995. (Work is also underway in the
  696.     IETF to produce an extended version of LDAP.)
  697.  
  698. [5]     J. Postel, and C. Anderson, "White Pages Meeting Report",
  699.     RFC1588, February 1994.
  700.  
  701. [6]     Sollins, K., "Plan for Internet Directory Services", RFC 1107,
  702.     July 1989.
  703.  
  704. [7]     S. Kille, "A String Representation of Distinguished Names",
  705.     RFC1779, 03/28/1995.
  706.  
  707. [8]     A. Freier, P. Karlton, and P. Kocher, "The SSL Protocol Version
  708.         3.0", Work in Progress, Internet Draft
  709.     <draft-freier-ssl-version3-01.txt>, March 1996.
  710.  
  711. [9]     D. Crocker, "Standard for the format of ARPA Internet text
  712.     messages", RFC822, 08/13/1982.
  713.  
  714. [10]    S. Kille, "X.500 and Domains", RFC1279, 11/27/1991.
  715.  
  716. [11]    M. Wahl, T. Howes, S. Kille, "Lightweight Directory Access
  717.         Protocol (v3)", Work in Progress, Internet Draft
  718.         <draft-ietf-asid-ldapv3-protocol-03.txt>, October 22, 1996.
  719.  
  720. [12]    The North American Directory Forum, "NADF Standing Documents: A
  721.     Brief Overview", RFC 1417, The North American Directory Forum",
  722.     NADF, February 1993.
  723.  
  724. 12.  Authors' Address
  725.  
  726.        Al Grimstad
  727.        AT&T
  728.        Room 1C-429, 101 Crawfords Corner Road
  729.        Holmdel, NJ 07733-3030
  730.        USA
  731.  
  732.        EMail:  alg@att.com
  733.  
  734.        Rick Huber
  735.        AT&T
  736.        Room 1B-433, 101 Crawfords Corner Road
  737.        Holmdel, NJ 07733-3030
  738.        USA
  739.  
  740.        EMail:  rvh@att.com
  741.  
  742.        Sri Sataluri
  743.        AT&T
  744.        Room 4G-202, 101 Crawfords Corner Road
  745.        Holmdel, NJ 07733-3030
  746.        USA
  747.  
  748.        EMail:  sri@att.com
  749.