RFC 1384

Naming Guidelines for Directory Pilots

πŸ“… published January 1993, from ietf

RFC 1384: Naming Guidelines for Directory Pilots πŸŽ€

Authors: P. Barker (University College London) and S.E. Hardcastle-Kille (ISODE Consortium) πŸ’…

Date: January 1993 πŸ—“οΈ

Category: Informational, so it's giving "here's some info for the Internet community," not a standard 🌸

Obsoletes / Updates: nothing listed, so it doesn't replace or change any other RFC πŸ™ˆ


Status of this Memo ✨

okay so this memo is just info for the Internet community. it is NOT a standard. and anyone can read it freely, no cap πŸ¦‹

Abstract πŸ’–

okay bestie, deploying a Directory is so much easier if you follow some naming guidelines 🧚 this doc lays out a bunch of them, and lining up with them is recommended for directory pilots 🫢

1. Introduction 🌈

before you read this, you need to know that it assumes the COSINE and Internet X.500 Schema is being followed [1]. that's the vibe we're building on πŸ’…

2. DIT structure πŸ“

most of this doc is about how the DIT is structured and how to name organisations, organisational units and personal entries 🌷 this section just quickly flags three other big issues πŸ‘‘

2.1. The top level of the DIT 🌸

these are the things that will be sitting at the top level of the DIT:

  • Participating Countries 🌍 The entries should contain suitable values of the "Friendly Country" attribute.
  • International Organisations πŸ•ŠοΈ okay so an international organisation is one like the United Nations, which has a brief and scope covering lots of nations. these are kinda supra-national, and that's literally the whole reason they exist. they are almost always governmental or quasi-governmental. a multi-national organisation, on the other hand, operates in more than one country but is NOT supra-national. this includes big commercial orgs whose production and sales are spread across tons of countries πŸ’Ό

international organisations may be registered at the top level. multi-national organisations won't be. the only international organisation registered so far is: Internet. this isn't a formal registration, it's just adopted for the Internet Directory Service ✨

  • Localities πŸ“ a few localities will be registered under the root. the main point of these locality entries is to give a "natural" parent node for organisations that are supra-national but don't have global authority in their particular field. these orgs will usually be governmental or quasi-governmental. example localities might include: Europe, Africa, West Indies. example organisations within Europe might include: European Court of Justice, European Space Agency, European Commission. πŸ‡ͺπŸ‡Ί
  • DSA Information πŸ–₯️ some info on DSAs might be needed at the top level. keep it to a minimum, pls πŸ™

the only directory information with a recognised top level registration authority is countries. registering other stuff at the top level may potentially cause problems. right now, the argument is that the benefits of extra top level registration outweigh those problems. still, anyone using that kind of registration should note this potential problem πŸ‘€

2.2. The DNS within the DIT πŸ¦‹

the rules for the DNS parts of the DIT are defined in [3]. one change to that: the DNS tree gets rooted under "O=Internet", not at the root of the DIT. main character energy πŸ‘‘

2.3. Access control πŸ”

an entry's object class attribute, plus any attribute(s) used for naming an entry, are of special significance and may be considered "structural". if you can't access these, querying the Directory will often go wrong πŸ’€ for example, user interfaces usually narrow their searches by looking for entries of a particular type, and the type is shown by the object class. so unless the goal is to block public access to an entry or set of entries, the object class and naming attributes should be publicly readable 🫢

3. Naming Style πŸ’…

the first goal of naming is giving entries unique identifiers. once that's achieved, the next big goal should be making the Directory easy to query πŸ” in particular, a naming structure that makes user friendly naming possible is desirable. other things, like accurately reflecting an organisation's structure, should be disregarded if they badly hurt normal querying πŸ™…β€β™€οΈ early pilot experience showed that a consistent approach to structure and naming helps querying across a wide range of user interfaces, since those interfaces are often optimised for the DIT structures that seem most common πŸŽ€

naming depends on a bunch of factors, so let's go through them one by one 🧚

3.1. National Guidelines πŸ—ΊοΈ

if naming is happening in a country that has established naming guidelines, those guidelines should generally be followed. they might be based on an established registration authority, or they might use an existing registration mechanism (e.g., company name registration) 🏒

if an organisation has a name that's nationally registered in an existing registry, that name is likely to be appropriate for the Directory, even if there are no national guidelines πŸ’–

3.2. Structure Rules πŸ—οΈ

a DIT structure is suggested in Annex B of X.521. Directory Pilots should follow a slightly modified form of these guidelines. the rules should be extended for handling DNS [3]. a few simple restrictions should apply, as described below πŸ“

for most country pilots, this simple structure should be enough. the country entry sits immediately beneath the root of the tree. organisations with national significance should have entries immediately beneath their country entries. smaller orgs that are only known in one locality should go under locality entries representing states or similar geographical divisions πŸ—Ύ large organisations will probably need to be split into organisational units, to help tell apart people with common names πŸ‘― entries for people and roles get stored beneath organisations or organisational units. an example plan evolving for the US is the work of the North American Directory Forum [2] πŸ‡ΊπŸ‡Έ

as mentioned above, there are a few exceptions to this basic structure. international organisations get stored immediately under the root of the tree. multi-national organisations get stored within the framework outlined, but with some help from aliases and attributes such as seeAlso, which bind the constituent parts of the org together. more on this later 🫢

3.3. Depth of tree 🌳

the broad recommendation is to keep the DIT as flat as possible. a flat tree means Directory names stay pretty short, and they'll probably look a lot like paper mail addresses in length and component structure πŸ“¬ a deep DIT would mean long names with kinda random parts, which feels less natural. any artificiality in the choice of names gets in the way of querying, so it's a no from me πŸ™…β€β™€οΈ

the presumption behind this style is that most querying happens when users type convenient strings of characters, which get mapped onto powerful search operations πŸ”Ž the other approach, where users browse their way down the tree and pick names from big piles of options, might be better in some cases, and a deeper tree makes that easier. but these guidelines recommend a shallow tree, which implies a search-oriented approach πŸ’œ

there are two things that decide DIT depth: first, how far down the DIT an organisation is placed; second, the structure of the DIT within organisations ✨

the upper levels of the tree will be decided later by various registration authorities, and the pilot will have to work within whatever structure they pick. still, it's important for the pilots to know what those structures are likely to be, and to adopt them early πŸ™Œ

the other main factor in DIT depth is whether an organisation splits its entries over a number of organisational units, and if so, how many levels. the recommendation here is to keep this sub-division to a minimum. a maximum of two levels of organisational unit should be enough, even for large organisations πŸ›οΈ organisations with only a few tens or hundreds of employees should strongly consider not using organisational units at all 🌷 there may be some problems choosing unique RDNs when using a flat DIT structure. multiple value RDNs can help with that 🧩 the standard recommends that an organizationalUnitName attribute can also be used as a naming attribute to disambiguate entries. further disambiguation may be achieved by using a personalTitle attribute in the RDN πŸŽ€

3.4 Organisation and Organisational Unit Names 🏒✨

okay bestie, so eventually official naming authorities are gonna be in charge of organisation names in the Directory πŸ‘‘. until then, it's recommended that pilots and organisations follow these guidelines πŸ’…. an organisation's RDN should usually be the full name of the org, not just a set of initials. so University College London is preferred over UCL πŸŽ€. the AA example is lowkey the perfect cautionary tale πŸ’€. it seems reasonable at first because the Automobile Association is well known by that acronym. but then you think about Alcoholics Anonymous and American Airlines, which use the same acronym, and it's giving chaos 😭. just like initials should usually be avoided for organisational RDNs, so should formal names that only exist on official charters and aren't generally well known πŸ“œ. there are two reasons for this:

  1. The names should be meaningful.
  2. The names should uniquely identify the organisation, and be a name which is unlikely to be challenged in an open registration process. For example, UCL might well be challenged by United Carriers Ltd. 🚚

the same naming logic applies with even more force to organisational units 🧠. inside an org, people use abbreviations all the time, but they're almost always meaningless outside that org. like, academic computing folks habitually say CS when they mean Computer Science πŸ€“, but CS could also mean Computing Services, Cognitive Science, Clinical Science, or even Counselling Services. literally so many options πŸ™ˆ.

for both orgs and org units, extra naming info should be stored in the directory as alternative values of the naming attribute ✨. so for University College London, UCL should be stored as an alternative organizationName attribute value 🫢. similarly, CS could be stored as an alternative organizationalUnitName value for Computer Science, and the same goes for any of the other departments mentioned earlier πŸ¦‹. in general, entries will be located by searching, so it's not essential for names to be memorable or guessable πŸ”. minimising typing can be achieved by carefully selecting alternate values πŸ’œ.

3.5 Naming human users πŸ’–

a reasonably consistent approach to naming people is super critical, because a huge percentage of directory usage will be looking up info about people πŸ₯Ή. user interfaces can help users way better if entries have names that follow a common format, or a small group of formats 🌸. it's suggested that the RDN follow one of these formats. extra naming info goes in alternative values of the common name attribute πŸ“. it makes sense to make sure the RDN commonName value is genuinely the most common name for a person, because user interfaces may weight matches on the RDN more heavily than matches on one of the alternative names 🎯.

pilots should ignore the standard's recommendations on storing personal titles, and letters indicating academic and professional qualifications within the commonName attribute πŸ™…β€β™€οΈ. the reason is that it overloads the commonName attribute. a personalTitle attribute has already been specified in the COSINE and Internet Schema, and another attribute could be specified for qualifications πŸŽ“.

also, the common name attribute should NOT be used to hold other attribute info like telephone numbers, room numbers, or local codes πŸ“ž. that info belongs in the appropriate attributes defined in the COSINE and Internet X.500 Schema πŸ—‚οΈ. if those attributes have to be used to tell entries apart, multi-valued RDNs should be used, so other attribute(s) get used for naming alongside a common name ✨.

cultural considerations will shape the RDN choice for humans 🌍. in many countries the best choice is familiar-first-name surname πŸ’«. so Steve Hardcastle-Kille is the preferred RDN choice for one of this document's co-authors, while Stephen E. Hardcastle-Kille is stored as an alternative commonName value 🫢. sets of initials shouldn't be mashed together into a single "word", they should be separated by spaces and/or "." characters πŸ”€. pragmatic choices will have to be made for other cultures 🌏.

3.6 Application Entities 🧚

the X.521 guidelines should be followed, meaning the application entity should always be named relative to an Organisation or Organisational Unit πŸ›οΈ. the application process will often line up with a system or host πŸ’». in that case, application entities should be named by Common Names that identify the service (e.g., "FTAM Service") πŸ› οΈ. when there's no useful distinction between application process and application entity, the application process may be omitted. (this is often done for DSAs in the current pilot πŸ™ˆ.)

4 Multinational Organisations 🌈

the standard says that only international organisations may be placed under the root of the DIT. this implies that multi-national organisations must be represented as a number of separate entries underneath country or locality entries πŸ—ΊοΈ. this structure makes it more awkward to use X.500 within a multi-national to provide an internal organisational directory, because the data is spread all over the DIT instead of being grouped within a single sub-tree 😩. lots of people have said this restriction is a severe limitation of X.500, and argue that the standard's intentions should be ignored here πŸ™„. this note argues, though, that the standard should be followed 🫑.

no attempt is made to precisely define multinational organisation here πŸ€·β€β™€οΈ. instead, the observation is that the term gets applied to a variety of organisational structures, where an organisation operates in more than one country 🌎. this suggests a variety of DIT structures may be appropriate for these different structures. this document suggests three approaches and notes some characteristics of each πŸ¦‹.

before we get into the approaches, bear in mind again that a major aim in choosing a DIT structure is to facilitate querying, and approaches that work against this should be avoided wherever possible πŸ”₯.

4.1 The multi-national as a single entity

                             ROOT
                           /  |  \
                          /   |   \
                       C=GB  C=FR  C=US
                      /       |        \
                     /        |         \
           O=MultiNat---->O=MultiNat<----O=MultiNat
                          /    |   \
                         /     |    \
                        /      |     \
                   l=abc    ou=def    l=fgi

---> means "alias to"

Figure 1: The multi-national as a single entity

in many cases, a multi-national organisation operates with a highly centralised structure 🏰. even if the org has big operations in a bunch of countries, it's strongly controlled from the centre, and the disparate parts only exist as limbs of the main organisation 🌳. in a situation like that, the model in figure 1 may be the best choice ✨. the org's entries all exist under a single sub-tree. the organisational structure beneath the organisation entry should reflect the perceived structure of the organisation, so no recommendations on this can be made here 🀝. to help the person querying the directory, alias entries should be created for all countries where the organisation operates 🧭.

4.2 The multi-national as a loose confederation

another common model is one where a multi-national consists of a number of national entities, which are largely independent of both sibling national entities and of any central entity 🌻. in such cases, the model shown in Figure 2 may be a

                             ROOT
                           /  |  \
                          /   |   \
                       C=GB  C=FR  C=US
                      /       |        \
                     /        |         \
           O=MultiNat     O=MultiNat     O=MultiNat
          /    |          /    |   \          |    \
         /     |         /     |    \         |     \
       L=GB   L=FR      /      |     \       L=FR   L=US
                      L=GB    L=FR  L=US

---> means "alias to"

Figure 2: The multi-national as a loose confederation

better choice πŸ’–. organisational entries exist within each country, and only that country's localities and organisational units appear directly beneath the appropriate organisational entry 🏑. some binding together of the various parts of the org can be achieved by using aliases for localities and org units, and this can be done in a highly flexible fashion 🧩. in some cases, the national view might not contain all branches of the company, as illustrated in Figure 2 πŸ”.

4.3 Loosely linked DIT sub-trees πŸ”—

a third approach is to avoid aliasing altogether, and use the looser binding provided by an attribute such as seeAlso πŸ¦‹. this approach treats all parts of an organisation as essentially separate 🧁.

a unified view of the organisation can only be achieved by user interfaces choosing to follow the seeAlso links πŸ’…. this is a key difference from aliasing, where decisions to follow links may be specified within the protocol 🫢. (note that it may be better to specify another attribute for this purpose, as seeAlso is likely to be used for a wide variety of purposes πŸ™ƒ.)

4.4 Summary of advantages and disadvantages of the above approaches ✨

Providing an internal directory πŸ—‚οΈ All the above methods can be used to provide an internal directory, bestie. In the first two cases, the protocol can follow the linkage to other parts of the organisation, so organisation-wide searches can be done with single X.500 operations. πŸ” In the last case, interfaces would have to "know" to follow the soft links indicated by the seeAlso attribute, which is a whole vibe of its own. 🧚

Impact on naming 🏷️ In the single-entity model, all DNs within the organisation will be under one country. Some people argue this often leads to pretty "unnatural" naming, ngl. πŸ™ˆ In the loose-confederation model, DNs are more natural πŸ’…, although the need to disambiguate between organisational units and localities on an international, rather than just a national, basis may have some impact on the choice of names. For example, it may be necessary to add an extra level of organisational unit or locality information. 🌸 In the loosely-linked model, there is no impact on naming at all. Iconic. πŸ‘‘

Views of the organisation πŸ‘€ The first method provides a unique view of the organisation. The loose confederacy allows for a variety of views of the organisation. πŸ¦‹ The view from the centre of the organisation may well be that all constituent organisations should be seen as part of the main organisation, whereas other parts of the organisation may only be interested in the organisation's centre and a few of its sibling organisations. The third model gives an equally flexible view of organisational structures. πŸ’–

Lookup performance ⚑ All methods should perform reasonably well, providing information is held, or at least replicated, within a single DSA. πŸ’œ


5 Miscellany πŸŽ€

This section draws attention to two areas which frequently provoke questions, and where it is felt that a consistent approach will be useful. Okay so these are the two spots everyone keeps asking about, and we want to be consistent about them. 🫢

5.1 Schema consistency of aliases πŸͺž

According to the letter of the standard, an alias may point at any entry. πŸ€·β€β™€οΈ It is beneficial for aliases to be ``schema consistent''. The following two checks should be made:

  1. The Relative Distinguished Name of the alias should be a valid Relative Distinguished Name of the entry.
  2. If the entry (aliased object) were placed where the alias is, there should be no schema violation.

5.2 Organisational Units 🏒

There is a problem that many organisations can be either organisations or organisational units, dependent on the location in the DIT (with aliases giving the alternate names). 😭 For example, an organisation may be an independent national organisation and also an organisational unit of a parent organisation. To achieve this, it is important to allow an entry to be of both object class organisation and of object class organisational unit. Both at once, periodt. πŸ’…βœ¨


References πŸ“š

[1] P. Barker and S.E. Hardcastle-Kille. The COSINE and Internet X.500 schema. Request for Comments RFC 1274, Department of Computer Science, University College London, November 1991.

[2] The North American Directory Forum. A Naming Scheme for C=US, September 1991. Also NADF-175.

[3] S.E. Hardcastle-Kille. X.500 and domains. Request for Comments RFC 1279, Department of Computer Science, University College London, November 1991.


6 Security Considerations πŸ”

Security issues are not discussed in this memo. πŸ’€ Not one word on it, bestie, so keep that in mind as you read. πŸ™ˆ


7 Authors' Addresses πŸ’Œ

Paul Barker
Department of Computer Science
University College London
Gower Street
WC1E 6BT
England

Phone:+44-71-380-7366

EMail:  P.Barker@CS.UCL.AC.UK

Steve Hardcastle-Kille
ISODE Consortium
P.O. Box 505
London
SW11 1DX
England

Phone:+44-71-223-4062

EMail:  S.Kille@ISODE.COM
πŸ“¦ where this page comes from