RFC 1943

Building an X.500 Directory Service in the US

๐Ÿ“… published May 1996, from ietf

Building an X.500 Directory Service in the US ๐ŸŽ€

Okay bestie, here's the title block first ๐Ÿ’–

  • Network Working Group ๐ŸŒธ
  • Author: B. Jennings, Sandia National Laboratory
  • RFC number: 1943
  • Category: Informational
  • Date: May 1996
  • Obsoletes / Updates: The title block doesn't list anything this RFC obsoletes or updates.

Status of this Memo ๐Ÿ“œ

Okay, the boring-but-important bit. This memo gives info to the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited, so share it with everyone ๐Ÿ’…

Abstract โœจ

So this doc lays out what you need to run an X.500 Directory Service in the United States. It came out of the Integrated Directory Services Working Group in the Internet Engineering Task Force, and the goal is an electronic White Pages Directory Service inside an organization in the US that also connects to a wide-area Directory infrastructure. It's giving infrastructure goals ๐Ÿงš

Getting a White Pages Directory Service to work inside an organization takes teamwork between the technical, legal and data management folks. It also helps a LOT if higher management is really committed to taking part in a wide-area Directory Service ๐Ÿซถ

The recommendations here come from real experience taking part in the Internet White Pages project, so they're not just theory ๐Ÿ”ฅ

Table of Contents ๐Ÿ—‚๏ธ

   1.0     Introduction                                            2
   1.1     Purpose of this Document                                2
   1.2     Introduction to Directory Services                      2
   2.0     The X.500 Protocol                                      4
   2.1     Introduction                                            4
   2.2     Directory Model                                         4
   2.3     Information Model                                       5
   2.4     Benefits and Uses for X.500 Directory Service           6
   2.5     Other Applications of X.500                             7
   3.0     Legal Issues                                            8
   3.1     Introduction                                            8
   3.2     Purpose of the Directory                                8
   3.3     User Rights                                             9
   3.4     Data Integrity                                          9
   3.5     Protection of the Data                                 10
   3.6     Conclusions                                            10
   4.0     Infrastructure                                         11
   4.1     Introduction                                           11
   4.2     A Well Maintained Infrastructure                       11
   4.3     DUA Interfaces for End Users                           12
   5.0     Datamanagement & Pilot Projects                        13
   5.1     Simple Internet White Pages Service                    13
   5.2     InterNIC                                               13
   5.3     ESnet                                                  14
   6.0     Recommendations                                        14
   6.1     General                                                14
   6.2     Getting Started                                        14
   6.3     Who are the Customers                                  14
   6.4     What are the Contents of the Directory                 15
   6.5     What are the Rights of the Individuals                 15
   6.6     Data Integrity                                         16
   6.7     Data Security                                          16
   6.8     Data Administration                                    17
   6.9     Conclusion                                             17
   7.0     References                                             18
   8.0     Glossary                                               19
   9.0     Security Considerations                                22
   10.0    Author's Address                                       22

1.0 Introduction ๐Ÿฆ‹

1.1 Purpose of this Document ๐Ÿ’ญ

This doc is for anyone planning to build a directory service for an organization in the US. It walks through the technical, legal, and organizational sides of a directory service, and it describes the different options for organizations that want to run an X.500 Directory service. It also shows those options with examples from current X.500 service providers โœจ

1.2 Introduction to Directory Services ๐ŸŒˆ

Okay so an electronic directory server is basically a process that hands out a list of information over electronic access. The content can vary, but it should be clearly defined by what the directory is for. Info about people, organizations, services, and network hardware are just a few examples of what a directory service can serve up ๐Ÿ“ The whole vibe of X.500 is making the directory intuitive and as easy to use as calling directory assistance. X.500 is an international standard that the International Organization for Standardization (IS) and the ITU-T (formerly CCITT) ratified in 1988 [1] ๐ŸŽ€

The Directory is meant to be a global service made up of independently operated, distributed Directory Service Agents (DSAs). Together they provide info in the form of a White Pages Phone Directory ๐Ÿ“–

Email really benefits from a global electronic White Pages, since network users can look up addressing info in a way that feels natural. Hunting down names and addresses by hand, especially electronic addresses, can eat up a huge chunk of time ๐Ÿ˜ญ A White Pages directory service lets people find their communication partners in a user-friendly way, using things like common name, surname, and organization to run searches at different levels.

To make global communication over computer networks work efficiently, a global electronic White Pages service is absolutely essential ๐Ÿซถ That kind of directory could also hold telephone and fax numbers, postal addresses, and platform type, which helps translate documents between users on different systems. An electronic White Pages can also be super useful for local stuff, like replacing paper directories or improving personnel administration. An electronic directory is way easier to produce and way more up to date than paper ones, which are often out of date the second they're printed ๐Ÿ’€

The Internet White Pages Project gives lots of US companies a chance to pilot X.500 in their organizations. It works as a globally distributed directory service, so organizations from all kinds of industries can make themselves known on the Internet and give access to their staff as they want main character energy for sure ๐Ÿ‘‘

Some organizations, like ESnet, agreed to manage directory info for other organizations. ESnet keeps data at their site for all the national laboratories. They help organizations define their directory information tree (DIT) structure, and they give free access to the X.500 Directory through Gopher, WWW, DUAs, whois and finger ๐Ÿงš

The InterNIC is another directory services provider on the Internet. As of [June 1995], they hold X.500 directory data for 52 organizations, and they give free access to that data through X.500 DUA, E-Mail, whois, Gopher and WWW ๐Ÿ’–

If you want the most current list of X.500 providers, check out RFC 1632 - Catalog of Available X.500 Implementations [2] ๐Ÿ“š

2.0 The X.500 Protocol ๐Ÿง 

2.1 Introduction ๐ŸŒธ

This chapter has the basic technical info an organization needs to start deploying an X.500 Directory Service. It gives a quick intro to the X.500 protocol and all the cool stuff X.500 can do ๐Ÿ’…

2.2 The Directory Model ๐Ÿ—บ๏ธ

The X.500 Directory Model is a distributed collection of independent systems that work together to provide a logical database of information for a global Directory Service. Directory info about a particular organization is kept locally in a Directory System Agent (DSA). That info is structured according to specified standards, and sticking to those standards is what makes the distributed model possible ๐Ÿ”ฅ One organization can keep info about other organizations, and an organization can also run on its own, separate from the global model, as a stand-alone system. DSAs that operate within the global model can swap info with other DSAs using the X.500 protocol ๐Ÿซถ

DSAs that are interconnected form the Directory Information Tree (DIT). The DIT is a virtual hierarchical data structure. An X.500 pilot using QUIPU software introduced the idea of a "root" DSA that represents the world. Below the root are "countries," and below the countries are "organizations." Organizations can then define "organizational units" and/or "people." This DIT is the structure behind the White Pages X.500 services ๐ŸŒณ

Each DSA provides info for the global directory. Directories can figure out which place in that hierarchy holds a certain part of the directory. Each directory manages info through a defined set of attributes, arranged in a structure called the Directory Information Base (DIB) ๐Ÿงฉ

A DSA is accessed through a Directory User Agent (DUA). A DUA talks to the Directory by communicating with one or more DSAs as needed to answer a specific query. A DUA can be an IP protocol like whois or finger, or a fancier application that gives GUI access to the DSA. People can use a DSA directly, or a computer application can automate the access ๐Ÿค–

2.3 The Information Model ๐Ÿชž

On top of the Directory Model, the X.500 standard also defines the information model used in the Directory Service. All info in the Directory is stored in "entries," and each entry belongs to at least one "object class." In the White Pages application of X.500, the object classes are country, organization, organizational unit and person ๐Ÿ’œ

The object classes an entry belongs to define the attributes associated with that entry. Some attributes are mandatory and others are optional. System administrators can define their own attributes and register them with regulating authorities, who then make those attributes available on a large scale ๐ŸŒˆ

Every entry has a Relative Distinguished Name (RDN), which uniquely identifies the entry. An RDN is made up of the DIT information and the actual entry ๐ŸŽฏ

The Directory runs under a set of rules known as the Directory schema. The schema defines correct use of attributes and keeps things consistent across the whole global Directory Service ๐Ÿ™ˆ

Under the White Pages object class "Person," there are three mandatory attributes:

     objectClass     commonName      surName

These attributes, together with the DIT structure above, define the RDN ๐Ÿ’…

An example of an entry under Sandia National Laboratory is shown here:

@c=US@o=Sandia National Laboratory@ou=Employees@cn=Barbara Jennings

Look at that entry, it's so organized ๐ŸŒˆโœจ

                                   root
                                   /  \
                                  /    \
                                c=US    c=CA
                                /  \
                               /    \
                  o=Sandia National   o=ESnet
                    Laboratory
                   /   \
                  /     \
            ou=Employees  ou=Guests
              /                \
             /                  \
     cn=Barbara Jennings        cn=Paul Brooks

okay so look at this tree ๐ŸŒณ it's the DIT example: root at the top, then c=US and c=CA. Under US you've got o=Sandia National Laboratory and o=ESnet, and Sandia splits into ou=Employees and ou=Guests, with cn=Barbara Jennings and cn=Paul Brooks at the bottom. It's giving org chart, bestie ๐Ÿ’…

Every organization gets to pick the DIT layout that fits them best โœจ and honestly the DIT usually ends up looking a LOT like the org itself, which is so iconic. The naming rules are what shape the tree, and those rules are what make each element's unique Relative Distinguished Name (RDN) ๐ŸŽ€. The DIT can also depend on whether the DSA info is kept in a flat file or a database, so this part is important ๐Ÿ‘€ If you go with a flat file and the tree gets too complex or intricate, searching through it takes longer ๐Ÿ’€ so plan your DIT carefully! For recommended schema stuff on DIT structuring, check out RFC1274 [3] ๐Ÿ“š

2.4 Benefits and Uses for X.500 Directory Service ๐ŸŒธ

The X.500 Directory is built for independently run segments that can scale all the way up to global distribution ๐ŸŒ For local use, the perks are:

  • the distributed setup means an organization may split up managing a bunch of DSAs between different people and still keep the overall structure together ๐Ÿงฉ;
  • the service is super robust, so it can feed info to a wide range of applications ๐Ÿ”ฅ Global projects have to stick to one specific DIT, but independent X.500 setups may define their own unique DITs, object classes and attributes based on what they actually need ๐Ÿฆ‹;
  • X.500 is way better than paper directories ๐Ÿ“–โžก๏ธ๐Ÿ’ป because you can update and modify stuff interactively. That means a company can keep the most current info around with less cost and effort ๐Ÿ’ธ;
  • since X.500 is electronic, other electronic apps may interact with it without any human intervention ๐Ÿค–.

The perks for global use are:

  • the distributed nature of X.500 is perfect for huge global apps like the White Pages Directory, and maintenance can be done in a distributed way ๐ŸŒ;
  • X.500 has great searching from any level in the DIT. Add "User Friendly Naming" and searches become super intuitive ๐Ÿฅฐ;
  • there are DUA interfaces for the White Pages service for all types of workstations ๐Ÿ’ป. For an overview of X.500 software, reference RFC1632 โœจ;
  • X.500 is an international standard, and using one ensures interoperability across the whole worldwide base ๐ŸŒ๐Ÿ’œ.

2.5 Other Applications of X.500 ๐Ÿงš

Besides the White Pages, X.500 can be used as a source for any kind of info that needs a distributed storage base ๐Ÿ—‚๏ธ

The University of Michigan is literally using X.500 for electronic mail routing ๐Ÿ“ฌ Any mail coming to the university domain, umich.edu; gets expanded out to a local address stored in the rfc822Mailbox attribute ๐Ÿ’Œ They also run a standard X.500 name server that does name lookups for over 200,000 names ๐Ÿคฏ and they use the Lightweight Directory Access Protocol (LDAP) [11].

An implementation of the X.500 Standard directory service has been built into the Open Software Foundation (OSF) Distributed Computing Environment (DCE) ๐Ÿ–ฅ๏ธ This piece, called the Global Directory Service (GDS), gives distributed application clients a place to find their application servers. When other clients ask, the GDS hands back the unique network address for a particular DCE resource. Since it's based on an international standard, GDS can offer access to resources among users and organizations worldwide ๐ŸŒŽ And this scalable service works in DCE environments of every size, from very small to very large ๐Ÿ“ˆ

Lookup services can be plugged into all sorts of apps ๐Ÿ” Cambridge University in Great Britain put the X.500 directory service into an employee locator app. Using badge sensors at strategic spots, the app can figure out where an employee is on campus, and as someone moves around, the sensors register their location in an X.500 Directory ๐Ÿ‘€ very main character energy.

Digital Signature Service (DSS) and Privacy Enhanced Mail (PEM) work on the principle of a directory key server, which generates and hands users "public" codes that match previously registered "private" codes ๐Ÿ” Only the recipient can decipher messages sent this way. The X.509 [4] standard for key certificates fits right into the structure of the X.500 Directory Service, no cap ๐Ÿ’–


3.1 Introduction

Okay, so legally speaking, the United States doesn't have any specific rules yet for info provided through an electronic directory service ๐Ÿ™ˆ Lots of groups tied to the Internet noticed the privacy and data integrity issues and wrote up directives to address them. Two of the big areas they cover are the rights of people listed in the directory, and the responsibility admins have to guarantee that the data is correct ๐Ÿ’…

Registries holding info about an individual are basically freely transferred and unregulated in the US, unless the data provider is an agency or a holder of sensitive info as defined by federal legislation. That can also differ for each state ๐Ÿ—บ๏ธ An agency is defined as any executive department, military department, Government corporation, Government controlled corporation, or other establishment in the executive branch of the Government (including the Executive Office of the President), or any independent regulatory agency. Sensitive data can be financial records, medical records, and certain legal documents. As mentioned, each state has its own legislation on sensitive or private data. Registered people have very little recourse to control their listed info, short of filing a lawsuit against the info provider ๐Ÿ˜ญ

If you're transferring data across country lines, it's important to remember that other countries may have their own laws regulating data ๐ŸŒ Before requesting list info from those countries, an administrator should review the applicable legislation and have some mechanism in place for how the data will be handled once it crosses the border ๐Ÿ›‚ Policy Statements for some countries have been written up and are provided through Code of Conduct papers ๐Ÿ“

3.2 Purpose of the Directory ๐ŸŽฏ

The operational intent, including the presentation data, the list registrants and the access rights, has to be clearly defined and stated. Right away this gives you the skeleton of the DIT, and eventually a statement like this may provide a basis that legally justifies the directory ๐Ÿ’œ

All data presented must be defined in the purpose ๐Ÿงพ For example, say a directory is only for professional addressing info. An entry would include name, postal address, office telephone, facsimile number, electronic mail address and company name. Private address info, like a home address or home phone, would be prohibited, and so would any other info not directly related to addressing ๐Ÿ™…โ€โ™€๏ธ

3.3 User Rights ๐ŸŽ€

The North American Directory Forum (NADF) published a document that lays out the User Bill of Rights [5] ๐Ÿ“œ It defines an individual's rights when it comes to the public release of personal or private info. Among other things, the user has the right to be notified when their info gets included in a data registry, and the right to examine it and have incorrect info changed ๐Ÿฅน

This paper was written specifically for the North American Directory Forum, and it recommends complying with US or Canadian laws that regulate privacy and access info ๐Ÿ‡บ๐Ÿ‡ธ๐Ÿ‡จ๐Ÿ‡ฆ

Even though current US legislation doesn't cover all the suggestions in this document, the controller of the data is responsible for respecting individuals' rights ๐Ÿซถ These recommended rules can be seen as respect for the individual, and a considerate controller will follow these guidelines within any boundaries they're mandated to follow โœจ

3.4 Data Integrity ๐Ÿ”Ž

An information provider is responsible for guaranteeing the data they make available to users ๐Ÿ’… A data source's integrity depends heavily on how accurate and timely its contents are. Interoperable data sources need to agree on these factors too. How well a provider can guarantee the validity of the data it presents reflects on how valid the provider is overall ๐Ÿ˜Œ RFC 1355 [6] suggests that a data source publish accuracy statements describing the process the individual NIC will use to keep the database accurate ๐Ÿ“‹

In the European community, it's a legal requirement that the information provider guarantee accurate data ๐Ÿ‡ช๐Ÿ‡บ

The controller of the info needs to be certain of the primary source of the data ๐Ÿ•ต๏ธโ€โ™€๏ธ When possible, the controller should set up routines of random checks to validate the registry data for correctness ๐ŸŽฒ

3.5 Data Security ๐Ÿ”

A Directory Service with non-authenticated access from the Internet is really hard to protect from unauthorized use ๐Ÿ˜ฌ Each organization defines what counts as unauthorized use within its directory purpose statement. A typical misuse is when someone tries to duplicate the directory for unauthorized purposes ๐Ÿ‘€ Other security measures include Access Control Lists (ACLs), limits on the number of entries returned to a query, and time to search flags. Keep in mind that these controls affect the legitimate user just as much as the user they're meant to block ๐Ÿšง

โš ๏ธ An alternative that may help protect against misuse is to create and display an attribute with each entry stating non-approved usage. This feature also gives evidence of restricted use if a legal case is ever needed to stop unauthorized access.

Again, the responsibility falls on the data provider or the implementor of the directory service ๐Ÿ›ก๏ธ Astute programmers will create or use existing tools to protect against data destruction, falsification, and misuse ๐Ÿ’ช

3.6 Conclusions ๐Ÿ‘‘

User Rights, Data Integrity and Protection of data shouldn't be treated as just a way to follow legal rulings. They should be the intention of a good data source ๐Ÿ’– A successful Directory Service has to understand the requirements of the people listed in it, as well as the requirements of the directory users ๐Ÿซถ

Generally speaking, at the very least, the following conditions should be observed ๐Ÿ“

  1. Define the purpose of the Directory.
  2. Initially inform all registrants of their inclusion in a Directory.
  3. Prevent the use of data beyond the stated purpose.
  4. Limit the attributes associated to an entry within boundaries of the purpose.
  5. Work towards a suitable level of security.
  6. Develop a mechanism to correct or remove faulty data or information that should not be in the Directory.

4.0 Infrastructure ๐Ÿ—๏ธ

4.1 Introduction ๐Ÿงฑ

okay so the White Pages Project, currently run by Performance Systems International (PSI), gives sites a reliable QUIPU infrastructure ๐Ÿงš if they want to run their own X.500 directory ๐Ÿ’– It started way back in 1989 as the NYSERNet White Pages Pilot Project, and it was the first production-quality field test of OSI technology running on top of the TCP/IP suite of protocols [7] โœจ bestie, that's iconic. This pilot X.500 Directory was basically a real-time testbed for all the administrative and usage issues that pop up ๐Ÿ”ฅ Today more than 30 countries take part in this globally distributed project, with over 1 million entries ๐ŸŒ The White Pages pilot is one of 37 other pilots working together to provide information in the Nameflow-PARADISE directory, which is a European project ๐ŸŒˆ slay

Initially the software was public domain, QUIPU X.500 [8] ๐Ÿ’… This "shareware" application, combined with the administrative services PSI provided free of charge, let a truly distributed X.500 Directory Service actually operate ๐Ÿซถ

Given the Internet rules of operation, the lack of US regulations, the suggestions of the North American Directory Forum and the Internet Engineering Task Force (IETF), the complications that come with multi-distributed data as a service can be overwhelming ๐Ÿ˜ญ PSI took on that challenge to provide such a service, and it continues to ensure operations today ๐Ÿ‘‘

4.2 A Well Maintained Infrastructure ๐ŸŽ€

This distributed information service is a cohesive effort from all of the participating organizations ๐Ÿซถ The ISO Development Environment (ISODE) implementation of the OSI Directory gave everyone the attributes and uniformity to make that teamwork happen โœจ

The primary DSA for the PSI Project is named Alpaca ๐Ÿฆ™ It runs on a Sun Sparc 10 with 120 megabytes of memory, and this host is the Master for the DSAs of 117 organizations under c=US ๐Ÿ‘‘ Alpaca has redundancy from two sources: Fruit Bat, operated by PSI, and Pied Tamarin, operated by the InterNIC. Slave updates are sent to this host every night from the individual DSAs ๐ŸŒ™

The data presentation is hierarchical and emulates the common white pages telephone book ๐Ÿ“– The info includes, at minimum, a common name, voice phone listing, and electronic mail addressing. Each entry has a uniqueness attached to it: the relative distinguished name, which is made up of the entire directory information tree. The DITs can vary slightly, but each one must contain an organization and a person ๐Ÿ’œ How the directory is used and how the organization is actually structured both shape the overall DIT structure. Here's the list of commonly used attributes ๐Ÿ‘‡

commonName      physicalDeliveryOfficeName      stateOrProvinceName
description     photo                           streetAddress
userid          postOfficeBox                   surname
favouriteDrink  postalAddress                   telephoneNumber
title           rfc822Mailbox                   facsimileTelephoneNumber

4.3 DUA Interfaces for End Users ๐Ÿ“ฑ

There are a bunch of user interfaces on the market today that give Directory User Agent access to the X.500 Directory ๐Ÿ” Standard protocols such as fred, whois, whois++, and finger are used widely ๐Ÿงš Interfaces are also available through World-wide Web browsers and electronic mail ๐Ÿ’Œ

Vendors providing DUAs include ISODE Consortium, NeXor, and Control Data Corporation โœจ These applications work together with the vendor-provided DSAs.

Historically, DUA interfaces were hard to implement and needed the entire OSI stack ๐Ÿ˜ฉ Putting one of these on a PC or Apple platform took skillful programming, and the executables for those platforms were usually very large ๐Ÿ’€ The IETF has since defined and standardized the Lightweight Directory Access Protocol (LDAP) [11] ๐ŸŒธ It's a protocol for accessing on-line Directory services that offers comparable functionality to the Directory Access Protocol (DAP). It runs directly over TCP and is used by nearly all X.500 clients. LDAP doesn't have the overhead of the various OSI layers, and it runs on top of TCP/IP โœจ no notes

The functionality varies by specific DUA ๐ŸŽ€ Each one offers access to the X.500 Directory. Most offer the ability to make modifications to entries, and there are a few that offer Kerberos authentication ๐Ÿ”

More info on LDAP clients for specific platforms is on the University of Michigan WWW server: http://www.umich.edu/~rsug/ldap.

Another interface that has been tested and recommended for users by our Dutch (Surfnet) colleagues is Directory Enquiry (DE) ๐Ÿ’œ It was originally developed by University College London for the Paradise project in Europe, and the engineers at Surfnet selected DE as the best interface for "dumb" terminals ๐Ÿ–ฅ๏ธ They also translated the interface into Dutch for their local users [12] ๐Ÿงก

Ideally, users should be able to reach X.500 directly from their electronic mail applications ๐Ÿ“ฌ Vendors (other than the ones mentioned above) have been slow to bring the X.500 Standards into their electronic mail applications ๐Ÿข

5.0 Datamanagement & Pilot Projects ๐Ÿฆ‹

5.1 Simple Internet White Pages Service ๐Ÿ“‡

A wide variety of directory service retrieval protocols has popped up since the original Internet White Pages started in 1989 ๐Ÿ•ฐ๏ธ To make sure decentralized implementations can interoperate with other providers, the IETF Integrated Directory Services Working Group is working on a draft that focuses on the common information and operational modeling issues that all Internet White Pages Services (IWPS) must conform to ๐Ÿง 

Utilizing current information servers, the conceptual model covers naming, schema, and query and response issues for a narrowly defined subset of directory services ๐Ÿ’ก The goal is to establish a simple set of information objects, paired with a basic set of process requirements, that will form a basis which can lead to ubiquitous IWPS ๐ŸŒˆ With that goal in mind, it will be easier to provide a consistent User view of the various directory services ๐Ÿ‘€

5.2 InterNIC ๐ŸŒ

The InterNIC [9] is a collaborative project of two organizations working together to offer the Internet community a full scope of network information services ๐Ÿค Established in January 1993 by the National Science Foundation, the InterNIC provides registration services and directory and database services to the Internet.

(Internet a global network of more than 13,000 computers networks, connecting over 1.7 million computers and used by an estimated 13 million people.)

In keeping up with the exponential growth of the Internet, the InterNIC provides a guide to navigate the maze of available resources ๐Ÿ—บ๏ธ

InterNIC provides two types of services: directory and database services, and registration services ๐Ÿ“‹ AT&T provides the directory and database services, acting as the pointer to numerous resources on the network offering X.500 to help users easily locate other users and organizations on the Internet ๐Ÿงญ

5.3 ESnet โšก

The Energy Sciences Network [10] is a nationwide computer data communications network whose primary purpose is to support multiple program, open scientific research ๐Ÿ”ฌ As part of this support, ESnet offers networking services including information access and retrieval, directory services, group communications series, remote file access services, and infrastructure services ๐Ÿ“ก As an early member of the White-Pages Pilot Project, ESnet continues to be part of the worldwide distributed directory service based on the ISO/OSI X.500 standard ๐Ÿซง There are over nineteen ESnet organizations represented in the directory, comprising over 120,000 entries, and ESnet provides access to seven other sites via the X.500 DSAs ๐Ÿ’œ

6.0 Recommendations ๐Ÿ“

6.1 General ๐Ÿง

The X.500 Directory technology is available through several options ๐Ÿ’ผ Vendors can provide consultation for schema design, as well as supply, install, and support the software that performs the required operations. For smaller organizations, or companies that don't want to administer their own DSA, there are providers who will maintain the DSAs remotely and provide this service to the Internet ๐Ÿ› ๏ธ Those with network and management expertise can either operate independently or join one of several white pages directory projects. Careful consideration must be given to the initial investment and the required maintenance process ๐Ÿ’ฐ

6.2 Getting Started ๐Ÿš€

Successful initialization of a directory service requires a systematic approach ๐Ÿ—‚๏ธ The complexity of offering this type of service becomes more apparent as implementation progresses ๐Ÿ˜… Several aspects must be considered as this service becomes a cooperative effort among the technical, administrative, organizational, and legal disciplines. Procedures must be defined and agreed to at the initial phase of implementing an X.500 Directory service [13]. The following are issues that should be addressed in these procedures ๐Ÿ“Œ

6.3 Who are the Customers? ๐Ÿ›๏ธ

Defining the customer and the customer requirements will determine the scope of service to offer ๐ŸŽฏ What is the primary purpose for the directory service? A company may find it desirable to do away with a paper directory while simultaneously providing the current directory information. The directory may be for internal use only or expanded to any users with Internet access. Will the customer use the directory for e-mail address only, or is other locational information such as postal address and telephone number a requirement? ๐Ÿ“ฎ

The directory may provide information to electronic customers, such as distributed computing applications, as well ๐Ÿค– In this case, the data must be provided in machine readable format ๐Ÿ’ป

Will the customers extend across country boundaries? ๐ŸŒ Information may be considered private by one country and not by another. It is necessary to be aware of the legalities and restrictions for the locality using the data.

Some countries have published a Code of Conduct with the IETF, explicitly stating the legal restrictions on directory and list data. Check the archives to determine if the country with whom information will be shared has presented such information. ๐Ÿ‘€

6.4 What are the contents of the Directory? ๐Ÿ“‡

The information presented in the directory is tightly coupled with the purpose ๐ŸŽฏ If the purpose is to provide addressing information for individuals, then customary information would include: Name, address, phone, e-mail address, facsimile number, pager, etc. If the use of the directory is to facilitate electronic mail routing, then the destination mail address needs to be included for each user. No other information should be presented in the directory if it is not directly related to the purpose ๐Ÿ™…โ€โ™€๏ธ

If the directory is internal only, it may be desirable to include the registrant's title as well. Remember that information available on the Internet is generally open to anyone who wants to access it ๐Ÿ‘€ Individuals wishing to target a specific market may access directories to create customer mailing lists ๐Ÿ“ฌ

The structure or schema of the X.500 Directory must be an initial consideration ๐Ÿงฉ Will the hierarchy follow the company structure, or is a different approach more practical? How many entries will there be in the directory: five or 50,000? A complex hierarchy for thousands of users may affect the efficiency of queries ๐ŸŒ

6.5 What are the rights of the individuals? โš–๏ธ

The directory's subjects shall have well defined rights, bestie ๐Ÿ’… Those rights might come from company policy, legal restrictions, and what the directory is ultimately used for. For a basic Internet White Pages Service, those rights may include:

  1. the option of inclusion in the directory
  2. the right of access to the information
  3. the right to have inaccurate entries corrected

An employee's terms and conditions may affect these rights ๐ŸŽ€ Joining any organization means you inevitably agree to give up some personal privacy and accept certain restrictions ๐Ÿ™ˆ

Every organization should develop and publish the "rights" that list registrants can expect ๐Ÿ“œโœจ


6.6. Data Integrity ๐Ÿงฉ

The info that goes in the directory can come from all kinds of places ๐Ÿ“ Demographic details may come from the human resources department, and email addresses may come from the computer network department. To guarantee data integrity, it is advised that the data be identified and maintained as corporate information ๐Ÿซถ

How fresh the data needs to be is different for each DSA ๐Ÿฆ‹ Updates might be needed as often as once a day or as rarely as once a month, but updates must be provided on a regular basis. If the data is time sensitive, include an attribute that shows the most recent maintenance date โฐ

A regular check for data accuracy should be part of the directory administration ๐Ÿ’– Faulty information may put an organization in breach of data protection laws and possibly make the company look unreliable ๐Ÿ˜ญ


6.7. Data Security ๐Ÿ”

Securing networked information resources is inherently complex ๐ŸŒˆ Attempts must be made to preserve the security of the data. That can include access control lists (ACLs), limiting the number of responses allowed to queries, or controlling internal and external access to the directory ๐Ÿ‘‘

The 1993 recommendations added a complex access control model that is designed to tightly restrict what users can access in the Directory ๐Ÿ”’ Local protection is configured by the implementor. A secure X.500 Directory should provide tools to protect against destruction, falsification, and loss of data โœจ

There is not a tool yet that protects against the misuse of data ๐Ÿ’€

There are flags and limits that can be set from within the application, and they act somewhat as a barrier against unwanted use. The catch is that any restrictions will also affect legitimate users ๐Ÿฅบ One suggestion is to post a notice of illegitimate use within each entry. That only serves as a deterrent, and as an asset should legal action be required ๐Ÿ“

Again, caution must be taken when data moves across country and state borders. In the US, data regulations differ from state to state ๐Ÿ—บ๏ธ


6.8. Data Administration ๐Ÿ—‚๏ธ

The X.500 Directory service is decentralized, so each organization has complete control over its data ๐Ÿฐ As part of a global service, though, the operation of the DSA must be monitored and maintained in a consistent manner ๐Ÿ” Authorization must be given to the local manager of the information, and in some cases, the subjects in the directory may also have modification privileges ๐Ÿ™Œ

Once the service is running, guaranteed operation cannot be overstated ๐Ÿšจ Maintaining the local Directory will be an integral part of normal administrative procedures within the organization, and it must be defined and agreed upon in the initial stages of development ๐Ÿ“‹


6.9. Conclusion ๐ŸŽ€

Setting up a Directory service within an organization takes a great deal of cooperative effort ๐Ÿค It is essential to get commitment from the integral parties of the organization at the start. That includes the technical, legal, and data management components ๐Ÿ’œ Executive level commitment makes it much easier to get the cooperation needed โญ

Operational procedures must be clearly defined, because inclusion in a globally distributed service has wide visibility ๐ŸŒ Adherence to these procedures must be maintained to the highest degree possible. Misinformation may result in unintentional legal violations, and unreliable access or data can adversely affect a company's reputation ๐Ÿ˜ฌ

An X.500 Directory can be extremely useful for an organization if it operates as designed ๐Ÿงš It may serve as the "hub" of information routing and the basis for several everyday activities. A successful service will be one of the most important communication tools in the computer network environment ๐Ÿ”ฅ For people to make use of the service, they must be able to rely on consistent and accurate information ๐Ÿ’…โœจ


References ๐Ÿ“š

  1. CCITT Blue Book, Volume VIII - Fascicle VIII.8, November 1988.
  2. RFC 1632; A Revised Catalog of Available X.500 Implementations. A. Getchell; ESnet, S. Sataluri; AT&T.
  3. RFC 1274; The COSINE and Internet X.500 Schema. P. Barker & S. Kille.
  4. CCITT Blue Book, Volume VIII - Fascicle VIII - Rec. X.509, November 1988.
  5. RFC 1295; User Bill of Rights for entries and listing in the Public Directory. Networking Working Group; IETF, January 1992.
  6. STD 35, RFC 1355; Privacy and Accuracy Issues in Network Information Center Databases. Curran, Marine, August 1992.
  7. RFC 1006, ISO Transport Class 2 Non-use of Explicit Flow Control over TCP RFC 1006 extension. Y. Pouffary, June 1995.
  8. Colin Robbins, NEXOR Ltd., Nottingham, London. c.robbins@nexor.co.uk
  9. InterNIC; Collaborative effort of AT&T and Network Solutions; info@internic.net
  10. ESnet; Managed and funded by the US Department of Energys Energy Research Office in Scientific Computing (DOE/ER/OSC).
  11. RFC 1777; Lightweight Directory Access Protocol, W. Yeong, T. Howes, S. Kille, March 1995.
  12. Building a Directory Service, Final Report test phase SURFnet X.500 pilot project, June 1995.
  13. The X.500 Directory Services: a discussion of the concerns raised by the existence of a global Directory, Julia M. Hill, Vol.2/No.1 Electronic Networking, Spring 1992.
  14. Directory Services and Privacy Issues, E. Jeunik and E. Huizer.
  15. The Little Black Book; Mail Bonding with OSI Directory Services, Marshall T. Rose, Simon & Schuster Company, 1992.
  16. NYSERNet White Pages Pilot Project: Status Report; NYSERNet Technical Report #89-12-31-1, Marshall T. Rose, December 1989.
  17. RFC 1798, Connection-less Lightweight Directory Access Protocol, A. Young, June 1995.
  18. RFC 1781; Using the OSI Directory to Achieve User Friendly Naming, S. Kille, March 1995.
  19. draft-ietf-pds-iwps-design-spec-01.txt, Tony Genovese; Microsoft, Work in Progress, July 1995.
  20. draft-ietf-ids-privacy-00.txt, B. Jennings; Sandia National Laboratories, S. Sataluri; AT&T, Work in Progress, November 1994.

Glossary โœจ

okay bestie, the glossary is basically your X.500 and friends cheat sheet ๐Ÿ“š every term gets its own little definition, so let's go ๐Ÿ’…

  • ACL: Access Control List ๐Ÿ” a mechanism to restrict access to data stored in an X.500 Directory Service. no cap, this is the bouncer of the directory ๐Ÿšช
  • Attribute: a collection of attributes that belongs to an entry in the Directory Service, and holds information about that entry ๐Ÿงพ
  • c=: countryName ๐ŸŒ an object class definition that specifies a country. when it's used as part of the directory name, it tells you which country the named object is physically located in. it's giving geography class ๐Ÿ—บ๏ธ
  • cn=: commonName ๐Ÿชช an attribute that defines the common name for individuals in a directory. in 1988 standards it can be up to 64 characters, so pls don't write a novel ๐Ÿ“–๐Ÿ’€
  • CCITT: The International Telegraph and Telephone Consultative Committee ๐Ÿ“ก
  • DAP: Directory Access Protocol ๐Ÿค the protocol between a DUA and a DSA, iconic duo ๐Ÿ‘ฏโ€โ™€๏ธ
  • DIB: Directory Information Base ๐Ÿ—ƒ๏ธ a collection of information objects in the Directory
  • DIT: Directory Information Tree ๐ŸŒณ the hierarchy of the distributed database that makes up an X.500 service. literally a family tree for data ๐Ÿงฌ
  • DSA: Directory System Agent ๐Ÿ›๏ธ an application that offers the Directory service. this is the database for the Directory, the main character of the whole show ๐Ÿ‘‘
  • DUA: Directory User Agent ๐Ÿ™‹โ€โ™€๏ธ an application that facilitates User access to a DSA
  • E-Mail: Electronic Mail ๐Ÿ’Œ
  • Entry: a Directory Service contains entries on people, organizations, countries, etc. entries belong to a certain class, and the info on entries is stored in attributes ๐ŸŽ€
  • ESnet: Energy Sciences Network ๐Ÿ”Œ a nationwide computer data communications network
  • GUI: Graphical User Interface ๐Ÿ–ฑ๏ธโœจ
  • IETF: Internet Engineering Task Force ๐ŸŒ an internationally represented task force charged with solving the short-term needs of the Internet ๐Ÿฆ‹
  • Internet: a collection of connected networks, international, running the Internet suite of protocols ๐ŸŒˆ
  • InterNIC: Directory of Directories ๐Ÿ“’ a collaborative project between AT&T and Network Solutions, Inc. the directory-of-directories energy is immaculate ๐Ÿซถ
  • IP: Internet Protocol ๐Ÿ“ฆ the network protocol offering a conectionless-mode network service in the Internet suite of protocols. it just sends the packets and vibes ๐Ÿ•Š๏ธ
  • ISODE: ISO Development Environment ๐Ÿงช a research tool developed to study the upper layers of OSI and to deploy network applications according to the ISO OSI standards and ITU X series of recommendations. science experiment era ๐Ÿ”ฌ
  • ITU: International Telecommunication Union ๐Ÿข formerly the CCITT, so it's basically the glow-up version ๐Ÿ’–
  • LDAP: Lightweight Directory Access Protocol ๐Ÿชถ an Internet Standard for a lightweight version of DAP running over TCP/IP. the slimmed down, more chill sibling ๐Ÿงš
  • Object Class: entries in a Directory Service belong to an Object Class to indicate their type and characteristics, e.g. Object Class "person" ๐Ÿงโ€โ™€๏ธ
  • OSI: Open Standards Interconnection ๐Ÿค“ an international standardization program, facilitated by ISO and ITU to develop standards for data networking
  • o=: organization ๐Ÿข an attribute defining the company or organization that the person works for
  • ou=: organizational unit ๐Ÿ—‚๏ธ an attribute found under organization. it denotes the department, division, or other such sub-unit of the organization that the person works in. main character of the org chart ๐Ÿ’ผ
  • PEM: Privacy Enhanced Mail ๐Ÿ” an Internet Standard for sending secure Electronic mail. secure texting but make it official ๐Ÿ”’
  • PSI: Performance Systems International, Inc. ๐Ÿ›ฐ๏ธ operator of the Internet White Pages Project
  • QUIPU: X.500 Directory implementation developed by Colin Robbins while at the University College of London ๐Ÿงถ the implementation with the cutest name ๐Ÿฅน
  • RDN: Relative Distinguished Name ๐Ÿท๏ธ a unique identifier for each list subject, defined by the hierarchy of the DSA
  • RFC: Request For Comments ๐Ÿ“ Internet series publications. yes, this is the series we're reading right now, iykyk ๐Ÿซฃ
  • sn=: surname ๐Ÿ’ซ an attribute defining the surname of the person in the directory
  • TCP/IP: Transmission Control Protocol and Internet Protocol ๐Ÿงต two internet protocols, the dynamic duo of the internet ๐Ÿ‘ฏ
  • White-Pages: electronic directory, accessible via the Internet suite of protocols ๐Ÿ“‡
  • Whois: an Internet standard protocol ๐Ÿ”Ž
  • Whois++: an Internet Directory Services protocol ๐Ÿ•ต๏ธโ€โ™€๏ธ a possible alternative for X.500 WPS
  • White Pages Service: a Directory Service that contains information on people and organizations ๐Ÿ“–๐ŸŒธ
  • X.500: a series of recommendations as defined by the ITU that specify a Directory Services protocol ๐Ÿง  the big boss of this whole topic ๐Ÿ‘‘

9.0 Security Considerations ๐Ÿ”

okay so this part is short but it's SUPER important, so listen up ๐Ÿซต

Security issues are not discussed in this memo. ๐Ÿ˜ฌ no security stuff is covered here, so don't go looking for it in this doc and assume you're safe, bestie ๐Ÿ™ˆ


Author's Address ๐ŸŽ€

Barbara Jennings
Sandia National Laboratories
Scientific Computing Systems
P.O. Box 5800
M/S 0807
Albuquerque, NM  87106
USA

Phone:  505-845-8554
Fax:    505-844-2067
EMail:  jennings@sandia.gov

and that's the whole doc, bestie ๐Ÿฆ‹โœจ thanks for reading with me ๐Ÿซถ๐Ÿ’–

๐Ÿ“ฆ where this page comes from