Trim some old/experimental RFCs

This commit is contained in:
Kurt Zeilenga 2002-01-05 02:40:10 +00:00
parent e5aafcdab1
commit 879733f9f7
9 changed files with 0 additions and 7924 deletions

View file

@ -1,13 +1,7 @@
This is an index of RFC contained in this directory:
rfc1274.txt COSINE and Internet X.500 Schema (PS)
rfc1279.txt X.500 and Domains (E)
rfc1430.txt Plan for Deploying an Internet X.500 Directory Service (I)
rfc1617.txt Naming and Structuring Guidelines for X.500 Directory Pilots (I)
rfc1798.txt Connection-less LDAP (PS)
rfc1823.txt LDAP C API (I)
rfc2079.txt X.500 Attribute Type and an Object Class to Hold URIs (PS)
rfc2218.txt Common Schema for the Internet White Pages Service (PS)
rfc2247.txt Using Domains in LDAP DNs (PS)
rfc2251.txt LDAPv3 Protocol (PS)
rfc2252.txt LDAPv3 Attribute Types (PS)
@ -23,14 +17,12 @@ rfc2587.txt Internet X.509 PKI LDAPv2 Schema (PS)
rfc2589.txt LDAPv3: Dynamic Directory Services Extensions (PS)
rfc2596.txt Use of Language Codes in LDAP (PS)
rfc2649.txt LDAPv3 Operational Signatures (E)
rfc2657.txt LDAPv2 Client vs. the Index Mesh (E)
rfc2696.txt LDAP Simple Paged Result Control (I)
rfc2713.txt LDAP Java schema (I)
rfc2714.txt LDAP CORBA schema (I)
rfc2798.txt LDAP inetOrgPerson schema (I)
rfc2829.txt LDAPv3: Authentication Method (PS)
rfc2830.txt LDAPv3: StartTLS (PS)
rfc2831.txt SASL/DIGEST-MD5 (PS)
rfc2849.txt LDIFv1 (PS)
rfc2891.txt LDAPv3: Server Side Sorting of Search Results (PS)
rfc3045.txt Storing Vendor Information in the LDAP root DSE (I)

View file

@ -1,839 +0,0 @@
Network Working Group S.E. Hardcastle-Kille
Requests for Comments 1279 University College London
November 1991
X.500 and Domains
Status of this Memo
This memo defines an Experimental Protocol for the Internet
community. Discussion and suggestions for improvement are
requested. Please refer to the current edition of the ``IAB
Official Protocol Standards'' for the standardization state and
status of this protocol. Distribution of this memo is unlimited.
Abstract
This RFCconsiders X.500 in relation to Internet and UK Domains.
A basic model of X.500 providing a higher level and more
descriptive naming structure is emphasised. In addition, a
mapping of domains onto X.500 is proposed, which gives a range of
new management and user facilities over and above those currently
available. This specification proposes an experimental new
mechanism to access and manage domain information on the Internet
and in the UK Academic Community. There is no current intention
to provide an operational replacement for DNS.
RFC 1279 X.500 and Domains November 1991
1 The Domain Name System
The Domain (Nameserver) System (DNS) provides a hierarchical resource
labelling system [Moc87a] [Moc87b] [Lar83]. Example domains are:
MIT.EDU
VENERA.ISI.EDU
CS.UCL.AC.UK
Entries usually have a single name, although pointers to entries (not
subtrees) may be provided by CNAME records. Information (resource
records) is associated with each entry. Name components are typically
chosen to be shortish (e.g., ``CS'').
RFC 822 mailbox names are closely related [Cro82]. For example:
<S.Kille@CS.UCL.AC.UK>
The local-part of the RFC 822 mailbox can be considered as one level
lower in the domain hierarchy.
2 X.500
The OSI Directory, usually known as X.500, provides a very general
naming framework [CCI88]. A basic usage of X.500 is to provide
Organisationally Structured Names. A Schema for this is defined
within the standard. Name components will typically have longish
values. This is an example directory name represented in Tabular
form:
Country GB
Organisation University College London
Organisational Unit Computer Science
Common Name Stephen E. Hardcastle-Kille
This can also be written in the ``User Friendly Name'' notation
defined in [HK91]. This syntax is used for names in the rest of this
document:
Stephen E. Hardcastle-Kille, Computer Science,
Hardcastle-Kille Page 1
RFC 1279 X.500 and Domains November 1991
University College London, GB
This type of structure is termed ``organisational X.500''. This is a
subset of the general capabilities.
3 The basic model
X.500 has as much relation to the DNS as DNS has to ARP. Paul
Mockapetris
This is, essentially, the position adopted here. The basic model is
that organisational X.500 is providing a layer of naming at the level
above domain names. These structured names can be considered to form
a naming layer above domain names. There are the following key
differences:
o Organisational X.500 tends to use longer and more descriptive
values
o The organisational X.500 DIT is slightly shallower than the DNS
tree
o X.500 has a richer information framework than DNS
These differences suggest that the following should NOT be done:
o Represent X.500 information in the DNS
o Have an algorithmic mapping between the two hierarchies
This note proposes to represent DNS information in the DIT, and to
provide for a loose coupling between the two trees. This note does
not propose an equivalencing of X.500 and Domains.
The proposed model is illustrated in Figure 1. Both an organisational
and domain structure is represented in the DIT, by use of appropriate
object classes and attribute types. A weak linkage is provided
between the two parts of the tree by use of special attributes. Here,
the linkage is 1:1, but it may be more complex for some parts of the
organisational DIT or domain namespace. The linkage is achieved by
use of special attributes, as described in Section 11.
Hardcastle-Kille Page 2
RFC 1279 X.500 and Domains November 1991
j jZ Z
j j ZZ
jj Z Z
jjj ZZ
Domain Component=UK Country Name=GB
|
|
|
Domain Component=AC Organisation Name=Univeristy College London
* BB
ss BBB
Domain Component=UCL Org Unit Name=Computer Science
| *
|| ss
Domain Component=CS Common Name=Steve Kille
| *
| ss
Domain Component=S.Kille
Figure 1: Example X.500 tree
Hardcastle-Kille Page 3
RFC 1279 X.500 and Domains November 1991
4 Representing Domains in X.500
Domains are at the level below X.500 names of the form illustrated in
the previous section. However, it is also possible to use X.500 in
other ways. In particular, there are benefits from representing
Domains in X.500. Note that this is very different to equivalencing,
as no attempt is made to represent X.500 information within the domain
scheme. There are the following potential advantages:
o Domain Services (DNS and NRS) could be replaced with an OSI
service (some may not view this as an advantage). This is
particularly attractive for OSI services, where use of a non-OSI
directory may be inappropriate.
o For Internet sites, access to domain information (beyond MX
records) could be provided for systems registered remotely. For
UK Academic Community sites, access to domain information for
domains not registered in the NRS could be given. For sites
neither on the Internet nor in the UK Academic Community there
will usually be even more of an advantage, as they usually have
very limited information on domains.
o Assuming that information is downloaded from an X.500 database
into a DNS or NRS system, the remote management facilities of
X.500 could be used. This is possible because of the extra
security features of X.500.
Note: For initial work, the converse situation of information
being mastered in Domain Databases and uploaded into the X.500
DIT is more likely.
o User access to the domain data, and in particular searching, could
be provided. This would allow users to browse the domain
namespace, and to determine information associated with the
domains.
o The X.500 framework would allow for additional management
information to be stored, and to relate the domain names into a
more complex structure of information. For example, this might
allow for the managers of a system to be identified, and
information on how to contact the manager.
Hardcastle-Kille Page 4
RFC 1279 X.500 and Domains November 1991
o A facility to map RFC 822 mailbox into a Directory Name (and thus
access other user information on the basis of this key) could be
provided. This may be useful for the user to determine
information about a message originator.
o This technique may be useful to facilitate introduction of
security, as it will enable certificates to be associated with
domains and mailboxes. This may be very useful for the privacy
enchanced mail work [Lin89].
5 Representing Domain Names
A new attribute syntax is defined:
CaseIgnoreIA5StringSyntax ATTRIBUTE-SYNTAX
IA5String
MATCHES FOR EQUALITY SUBSTRINGS ORDERING
A new attribute and two new object classes are defined:
DomainComponent ATTRIBUTE
WITH ATTRIBUTE-SYNTAX caseIgnoreIA5StringSyntax
SINGLE VALUE
Domain OBJECT-CLASS
SUBCLASS OF top
MUST CONTAIN -DomainComponent"
MAY CONTAIN -AssociatedName,
organizationName,
organizationalAttributeSet,
manager"
RFC822Mailbox OBJECT-CLASS
SUBCLASS OF Domain
MAY CONTAIN -commonName,
surname,
description,
telephoneNumber,
postalAttributeSet,
telecommunicationAttributeSet "
Hardcastle-Kille Page 5
RFC 1279 X.500 and Domains November 1991
Note that the attribute AssociatedName is defined in Section 11. The
manager attribute is defined in the COSINE and Internet naming
architecture [BHK91]. It allows a manager to be associated with the
domain, which is useful where the manager of the domain is different
to the manager of the object defined by the AssociatedName. This will
allow any domain to be represented in an X.500 hierarchy. The local
part of an RFC 822 mailbox is treated as a special sort of domain
component, and so these can be represented in the tree as a natural
extension of the hierarchy.
For example, consider the mailbox S.Kille@cs.ucl.ac.uk. This will
lead to the following structure in the DIT:
___________________________________________
|_Object_Class__|RDN_Type________|RDN_Value_|
| Domain |DomainComponent |UK |
| Domain |DomainComponent |AC |
| Domain |DomainComponent |UCL |
| Domain |DomainComponent |CS |
|_RFC822Mailbox_|DomainComponent_|S.Kille__ |
This can be represented in User Friendly Name format as:
DomainComponent=S.Kille, DomainComponent=CS, DomainComponent=UCL,
DomainComponent=AC, DomainComponent=UK
Note that the RFC822Mailbox Object Class is a subclass of Domain.
Some attributes are allowed to be associated with these objects.
There may be other additional management attributes which it is useful
to define (e.g., Machine Type, Owner, Location etc.). This allows
some information which truly belongs to the domain to be represented
there. It also allows for further information to be associated with
the domain/mailbox when there is not a relevant part of the
organisationally structure DIT to be pointed at. When there is an
associated part of the DIT, information from that part of the DIT
should not be duplicated in the domain entry.
6 Wildcards
Wildcards are supported by having "*" as a special domain component
name. If there is a need to emulate wildcard matching using the
directory, the following algorithm must be employed. For example, the
Hardcastle-Kille Page 6
RFC 1279 X.500 and Domains November 1991
wildcard entry for *.*.PODUNK.COM would be represented in the DIT as:
DomainComponent=*, DomainComponent=*,
DomainComponent=MIT, DomainComponent=COM
If A.B.PODUNK.COM is looked up in the directory, the query will fail
and indicate that two components are matched. A substitution should
be made, and *.*.PODUNK.COM looked up explicitly to identify the
associated information.
7 DNS Information
DNS information can be associated with an entry in the DIT. It is
important that this is done in a manner which is exactly equivalent to
the information stored in the DNS. This will allow the DIT to have
information loaded from the DNS or vice versa. All (authoritative)
records associated with a domain will be stored in the DIT. There is
no attempt made by the OSI Directory to emulate DNS caching or TTL
handling. It is assumed that the master entries are maintained by use
of DNS Zone Transfer (or equivalent), and that they can be treated as
authoritative. There is a need to define an attribute syntax which
represents a DNS record. This then allows DNS records to be stored in
the DIT. There are three possible encodings of this record:
ASN.1 Encoded This is the most natural approach in terms of X.500.
However, it would require all users of this service to handle the
new syntax, which would be awkward. There is a problem with
handling the resource format in a general manner.
DNS Binary Encoded Use the formally defined record syntax. This
would be convenient for access to the data by DNS related
software, but would be an awkward encoding for independent X.500
DUAs.
Text encoded Use of a text encoding derived from the DNS
specifications. This is straightforward to map onto DNS protocol,
and easy to support in a naive X.500 DUA. This approach is chosen.
The syntax is defined in IA5 characters. The BNF of the record uses
the definitions of section 5.1 of RFC 1035. It is
Hardcastle-Kille Page 7
RFC 1279 X.500 and Domains November 1991
<rr> [ ";" <comment> ]
Three examples of this (for domain C.ISI.EDU) might be:
500 A 10.1.0.52 ; Basic address record
IN 600 MX 10 VENERA.ISI.EDU. ; MX record
600 IN MX 10 VENERA.ISI.EDU. ; MX record - other order
Note that:
o The class and TTL may be in either order (following RFC 1035)
o The class defaults to IN
o Domains must always be fully specified (i.e., master file
abbreviate rules are not used).
o The TTL for a record must always be present (this saves looking at
the parent entry to find the SOA record).
o Records (e.g., SOA) may be multiline. Lines should be separated
with the two IA5 characters <CR><LF>.
CNAME records are mapped symmetrically onto Directory Aliases.
This is now defined in terms of attribute and object class
definitions. A single record type is defined, as opposed to one
attribute type per record type. This allows the definition to not
require extension when new DNS Record types are define. However,
there is some loss of efficiency if only a single record type is
needed, as filtering must be done by the DUA.
Similarly, no distinction is made on the basis of DNS class. This
means that if there are two class hierarchies, that they must be
represented in a single DIT, and that information for different
classes must be separated by DUA filtering.
DNSDomain OBJECT-CLASS
SUBCLASS OF Domain
MAY CONTAIN -
DNSRecord "
Hardcastle-Kille Page 8
RFC 1279 X.500 and Domains November 1991
DNSRecord ATTRIBUTE
ATTRIBUTE-SYNTAX IA5String
MATCHES FOR EQUALITY
Lookup of a domain is achieved by translating it algorithmically to a
Distinguished Name (DN), and reading back attributes desired. This
information can be managed and searched in a straightforward fashion.
The information may also be downloaded into a DNS database. This
should be done by use of zone transfer. A tool to perform zone
transfer (in both directions) between a DNS Server and a DSA would
seem to be both straightforward and useful. This would be a key tool
in a transition to X.500 based management of the DNS. It would also
allow a large part of the DNS namespace to be rapidly made available
in an X.500 pilot.
Inverse information can be derived by the usual IN-ADDR domain, which
will be represented in the same manner in the DIT.
8 NRS Information
Information associated with the UK NRS (Name Registration Scheme) can
be handled in a similar manner [Lar83]. This is being developed in a
separate document by Alan Turland.
9 Application Entity Titles
In many cases, Application entities will be closely related to
domains. In some cases, it may be appropriate to give Application
Entities names which are related to the DNS part of the DIT. In this
case, the Domain Name will be used to identify the application, and
the entry for the domain will also be of object class Application
Process. The children of this entry will identify Application
Entities, with names such as ``FTAM Service''.
10 Networks
It is clearly useful to represent networks within the DIT. A short
note on how to do this is given here. It is likely that this
specification will later be evolved in a separate document. This
Hardcastle-Kille Page 9
RFC 1279 X.500 and Domains November 1991
defines an Object Class for a general network, and shows how it can be
subclassed to define technology specific networks.
Network OBJECT-CLASS
SUBCLASS OF TOP
MAY CONTAIN -
Manager,
Locality,
Description "
IPNetwork OBJECT-CLASS
SUBCLASS OF Network
MUST CONTAIN -AssociatedDomain"
The Network Object Class allows networks to be defined, and for useful
attributes to be associated with the entry. A network will often
appear in more than one organisational structure, and this linkage
should be achieved by use of aliases. This grouping can facilitate
management of networks.
The subclass IPNetwork mandates linkage into the DNS part of the DIT.
This will be represented in the DIT using the structures of RFC 1101
[Moc89]. Both of the domains which identify the network should be
represented in the Object Class. For example, a network might have
the (user friendly) name:
UCL-Ethernet, University College London, GB
This would have associated domains 0.0.40.128.IN-ADDR.ARPA and
UCL-ETHERNET.UCL.AC.UK. These would both have the analogous DIT
representations. For example:
DomainComponent=0, DomainComponent=0, DomainComponent=40,
DomainComponent=128, DomainComponent=IN-ADDR, DomainComponent=ARPA
11 Linkage
There is a need to associate the organisational X.500 DIT and the DNS
tree. The objects represented are different (Domain 6= Organisation;
Person 6= RFC 822 Mailbox). Therefore aliasing is not an appropriate
linkage. However, in many cases, there is a linkage which is rather
Hardcastle-Kille Page 10
RFC 1279 X.500 and Domains November 1991
stronger than that implied by the seeAlso attribute. Therefore, we
define new attributes, which represent this stronger cross-linkage.
The same mechanism can be used to link a domains with an Application
Entity or an Application Process.
Links from the organisational X.500 DIT to the DNS tree are provided
by a new attribute, which could be present in Organisation or
Organisational Unit entries.
ObjectWithAssociatedDomain OBJECT-CLASS
SUBCLASS OF top
MUST CONTAIN -AssociatedDomain"
AssociatedDomain ATTRIBUTE
WITH ATTRIBUTE-SYNTAX ia5StringSyntax
For example, the organisational entry:
University College London, GB
would have an attribute:
AssociatedDomain = UCL.AC.UK
Similarly, an RFC 822 mailbox attribute is used to link entries of
Person Object Class to their associated DNS entry. This attribute is
defined in the Cosine and Internet Naming Architecture [BHK91].
Conversely, there are pointers from the DNS represented tree into the
organisational X.500 DIT:
AssociatedName ATTRIBUTE
WITH ATTRIBUTE-SYNTAX distinguishedNameSyntax
This attribute is associated with the Domain object class.
This entry is used to provide linkage from the DNS X.500 Hierarchy
into the organisational X.500 hierarchy. Where such entries do not
exist, attributes in the DNS entry (such as phone number) may be used.
It is recommended that information is not duplicated. The preferred
setup is for the DNS attributes to be rather skeletal, with pointers
into the organisational X.500 DIT.
Hardcastle-Kille Page 11
RFC 1279 X.500 and Domains November 1991
For example, the domain UCL.AC.UK would be represented in the DIT as:
DomainComponent=UCL, DomainComponent=AC,
DomainComponent=UK
This entry would have in it an AssociatedName attribute with value:
University College London, GB
This example shows a simple case with 1:1 linkage. There are cases
where a domain might be associated with multiple organisations, or an
organisation with multiple domains.
12 Conclusions and proposals for evaluation
Experiments should be undertaken to determine the practicality and
utility of this scheme, in a pilot environment. A possible approach
to this experimentation is described in Appendix A.
Object Identifiers have been assigned for this purpose in the Cosine
and Internet Naming Architecture [BHK91].
References
[BHK91] 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.
[CCI88] The Directory --- overview of concepts, models and services,
December 1988. CCITT X.500 Series Recommendations.
[Cro82] D.H. Crocker. Standard of the format of ARPA internet text
messages. Request for Comments 822, University of Delaware,
August 1982.
[HK91] S.E. Hardcastle-Kille. Using the OSI directory to achieve
user friendly naming. Request for Comments in preparation,
Department of Computer Science, University College London,
November 1991.
Hardcastle-Kille Page 12
RFC 1279 X.500 and Domains November 1991
[Lar83] J. Larmouth. JNT name registration technical guide, April
1983.
[Lin89] J. Linn. Privacy Enhancement for Internet Electronic Mail:
Part 1 --- Message Encipherment and Authentication
Procedures. Request for Comments 1113, Bolt, Beranek, and
Newman, August 1989.
[Moc87a] P. Mockapetris. Domain names - concepts and facilities.
Request for Comments RFC 1034, USC/Information Sciences
Institute, November 1987.
[Moc87b] P. Mockapetris. Domain names - implementation and
specification. Request for Comments RFC 1035,
USC/Information Sciences Institute, November 1987.
[Moc89] P. Mockapetris. DNS encoding of network names and other
types. Request for Comments RFC 1101, USC/Information
Sciences Institute, April 1989.
13 Security Considerations
This memo does not directly address security issues. However, due to
the facilities of X.500, this proposal could lead to a more secure way
to access and manage domain information.
14 Author's Address
Steve Hardcastle-Kille
Department of Computer Science
University College London
Gower Street
WC1E 6BT
England
Phone: +44-71-380-7294
EMail: S.Kille@CS.UCL.AC.UK
Hardcastle-Kille Page 13
RFC 1279 X.500 and Domains November 1991
A Possible Deployment Approach
This appendix notes a possible approach to deploying an experiment to
evaluate this mechanism. The following components of a possible
experiment are noted.
1. User tool. This will take a domain or mailbox as input. This
will be looked up in the DIT. This tool should be capable of:
o Attempting to correct user input
o Helping browsing
o Looking up information associated with the domain (or mailbox)
and associated name, in particular the manager (of both domain
and associated name) and information on the manager (e.g.,
phone number and mailbox).
o Supply DNS records
o Handle IN-ADDR.ARPA inverse lookups if supplied with an IP
Address
o Look up networks
2. A procedural library to allow user interfaces to make easy use of
these facilities.
3. Zone transfer tool. This will use the zone transfer protocol to
transfer information between a DSA and Domain Nameserver. When
writing to the DSA, attributes in an entry which are not DNS
records should remain untouched.
4. Linkage patching tool. When the organisational DIT is
established, associated domain pointers are usually inserted. A
tool can be written to search the DIT and insert the reverse
pointers.
5. DNS Manager Tool. This will allow user addition of additional
information into the DNS part of the DIT. A standard DUA can
probably be used for this.
Hardcastle-Kille Page 14
RFC 1279 X.500 and Domains November 1991
6. Mailbox download tool. This will allow download of local
mailboxes, with pointers to the user entries.
7. Emulation DNS Server, using the Directory as a database. The
server should maintain a permanent connection to its local DSA. As
there is no OSI bind, the response of this server can be at least
as fast as a normal DNS server. There can be two variants of this
server.
(a) Using a local DSA as a local database but using DNS
distributed operations.
(b) Do all lookups in the directory (using Directory Distributed
Operations).
An initial experiment is straightforward. The Zone Transfer Tool (3)
can be used to download a large part of the DNS space into a single
DSA (there will be some restrictions, as parts of the DNS hierarchy do
not permit zone transfer). This can be used repeatedly to maintain
the information. The linkage patching tool (4) can be used to put in
pointers to parts of the DIT. The user tool can then be used (by all
sites participation the the directory pilot) to look up domain
information. This will allow the utility of the approach to be
evaluated. The manager tool (5) will allow extra information to be
added to parts of the DNS tree.
The next stage will be to distribute the DNS part of the DIT over
multiple DSAs using Directory distribution techniques.
The emulation DNS Server (7) will be useful to ensure that equivalent
functionality is being offered by the Directory. It can also be used
to examine performance differences.
A final step is to master some parts of the DNS hierarchy in the DIT.
Because of the zone transfer technique, this will be entirely
transparent to the DNS user. Management benefits can then be
examined.
Hardcastle-Kille Page 15

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,507 +0,0 @@
Network Working Group A. Young
Request for Comments: 1798 ISODE Consortium
Category: Standards Track June 1995
Connection-less Lightweight Directory Access Protocol
Status of this Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
X.500
The protocol described in this document is designed to provide access
to the Directory while not incurring the resource requirements of the
Directory Access Protocol (DAP) [3]. In particular, it is aimed at
avoiding the elapsed time that is associated with connection-oriented
communication and it facilitates use of the Directory in a manner
analagous to the DNS [5,6]. It is specifically targeted at simple
lookup applications that require to read a small number of attribute
values from a single entry. It is intended to be a complement to DAP
and LDAP [4]. The protocol specification draws heavily on that of
LDAP.
1. Background
The Directory can be used as a repository for many kinds of
information. The full power of DAP is unnecessary for applications
that require simple read access to a few attribute values.
Applications addressing is a good example of this type of use where
an application entity needs to determine the Presentation Address
(PA) of a peer entity given that peer's Application Entity Title
(AET). If the AET is a Directory Name (DN) then the required result
can be obtained from the PA attribute of the Directory entry
identified by the AET. This is very similar to DNS.
Young Standards Track [Page 1]
RFC 1798 CLDAP June 1995
Use of DAP to achieve this functionality involves a significant
number of network exchanges:
___________________________________________________________
|_#_|______Client_(DUA)________DAP________Server_(DSA)_____|
| 1| N-Connect.request -> |
| 2| <- N-Connect.response |
| 3| T-Connect.request -> |
| 4| <- T-Connect.response |
| | S-Connect.request, |
| | P-Connect.request, |
| | A-Associate.request, |
| 5| DAP-Bind.request -> |
| | S-Connect.response, |
| | P-Connect.response, |
| | A-Associate.response, |
| 6| <- DAP-Bind.response |
| 7| DAP-Read.request -> |
| 8| <- DAP-Read.response |
| | S-Release.request, |
| | P-Release.request, |
| | A-Release.request, |
| 9| DAP-Unbind.request -> |
| | S-Release.response, |
| | P-Release.response, |
| | A-Release.response, |
| 10| <- DAP-Unbind.response |
| | T-Disconnect.request, |
| 11| N-Disconnect.request -> |
| | T-Disconnect.response,|
| 12| <- N-Disconnect.response |
|___|______________________________________________________|
Young Standards Track [Page 2]
RFC 1798 CLDAP June 1995
This is 10 packets before the application can continue, given that it
can probably do so after issuing the T-Disconnect.request. (Some
minor variations arise depending upon the class of Network and
Transport service that is being used; for example use of TP4 over
CLNS reduces the packet count by two.) LDAP is no better in the case
where the LDAP server uses full DAP to communicate with the
Directory:
____________________________________________________________________
|__#_|___Client_____LDAP_____LDAP_server______DAP_________DSA_______|
| 1 | TCP SYN -> |
| 2 | <- TCP SYN ACK |
| 3 | BindReq -> |
| 4 | N-Connect.req -> |
| 5 | <- N-Connect.res |
| 6 | T-Connect.req -> |
| 7 | <- T-Connect.res |
| 8 | DAP-Bind.req -> |
| 9 | <- DAP-Bind.res |
| 10 | <- BindRes |
| 11 | SearchReq -> |
| 12 | DAP-Search.req -> |
| 13 | <- DAP-Search.res |
| 14 | <- SearchRes |
| 15 | TCP FIN -> |
| 16 | DAP-Unbind.req -> |
| 17 | <- DAP-Unbind.res |
| 18 | N-Disconnect.req -> |
| 19 | <- N-Disconnect.res|
|____|______________________________________________________________|
Young Standards Track [Page 3]
RFC 1798 CLDAP June 1995
Here there are 14 packets before the application can continue. Even
if the LDAP server is on the same host as the DSA (so packet delay is
negligible), or if the DSA supports LDAP directly, then there are
still 6 packets.
____________________________________
| #| Client LDAP LDAP server|
|__|________________________________|
| 1| TCP SYN -> |
| 2| <- TCP SYN ACK|
| 3| BindReq -> |
| 4| <- BindRes |
| 5| SearchReq -> |
|_6|_______________<-____SearchRes__|
This protocol provides for simple access to the Directory where the
delays inherent in the above exchanges are unacceptable and where the
additional functionality provided by connection-mode operation is not
required.
2. Protocol Model
CLDAP is based directly on LDAP [4] and inherits many of the key
aspects of the LDAP protocol:
- - Many protocol data elements are encoding as ordinary strings
(e.g., Distinguished Names).
- - A lightweight BER encoding is used to encode all protocol
elements.
It is different to LDAP in that:
- - Protocol elements are carried directly over UDP or other
connection-less transport, bypassing much of the
session/presentation overhead and that of connections (LDAP uses
a connection-mode transport service).
- - A restricted set of operations is available.
The definitions of most protocol elements are inherited from LDAP.
The general model adopted by this protocol is one of clients
performing protocol operations against servers. In this model, this
is accomplished by a client transmitting a protocol request
describing the operation to be performed to a server, which is then
responsible for performing the necessary operations on the Directory.
Young Standards Track [Page 4]
RFC 1798 CLDAP June 1995
Upon completion of the necessary operations, the server returns a
response containing any results or errors to the requesting client.
Note that, although servers are required to return responses whenever
such responses are defined in the protocol, there is no requirement
for synchronous behaviour on the part of either client or server
implementations: requests and responses for multiple operations may
be exchanged by client and servers in any order, as long as servers
eventually send a response for every request that requires one.
Also, because the protocol is implemented over a connection-less
transport service clients must be prepared for either requests or
responses to be lost. Clients should use a retry mechanism with
timeouts in order to achieve the desired level of reliability. For
example, a client might send off a request and wait for two seconds.
If no reply is forthcoming, the request is sent again and the client
waits four seconds. If there is still no reply, the client sends it
again and waits eight seconds, and so on, until some maximun time.
Such algorithms are widely used in other datagram-based protocol
implementations, such as the DNS. It is not appropriate to mandate a
specific algorithm as this will depend upon the requirments and
operational environment of individual CLDAP client implementations.
It is not required that a client abandon any requests to which no
response has been received and for which a reply is no longer
required (because the request has been timed out), but they may do
so.
Consistent with the model of servers performing protocol operations
on behalf of clients, it is also to be noted that protocol servers
are expected to handle referrals without resorting to the return of
such referrals to the client. This protocol makes no provisions for
the return of referrals to clients, as the model is one of servers
ensuring the performance of all necessary operations in the
Directory, with only final results or errors being returned by
servers to clients.
Note that this protocol can be mapped to a strict subset of the
Directory abstract service, so it can be cleanly provided by the DAP.
3. Mapping Onto Transport Services
This protocol is designed to run over connection-less transports,
with all 8 bits in an octet being significant in the data stream.
Specifications for two underlying services are defined here, though
others are also possible.
Young Standards Track [Page 5]
RFC 1798 CLDAP June 1995
3.1. User Datagram Protocol (UDP)
The CLDAPMessage PDUs are mapped directly onto UDP datagrams. Only
one request may be sent in a single datagram. Only one response may
be sent in a single datagram. Server implementations running over
the UDP should provide a protocol listener on port 389.
3.2. Connection-less Transport Service (CLTS)
Each LDAPMessage PDU is mapped directly onto T-Unit-Data.
4. Elements of Protocol
CLDAP messages are defined by the following ASN.1:
CLDAPMessage ::= SEQUENCE {
messageID MessageID,
user LDAPDN, -- on request only --
protocolOp CHOICE {
searchRequest SearchRequest,
searchResponse SEQUENCE OF
SearchResponse,
abandonRequest AbandonRequest
}
}
where MessageID, LDAPDN, SearchRequest, SearchResponse and
AbandonRequest are defined in the LDAP protocol.
The 'user' element is supplied only on requests (it should be zero
length and is ignored in responses). It may be used for logging
purposes but it is not required that a CLDAP server implementation
apply any particular semantics to this field.
Editorial note:
There has been some discussion about the desirability of
authentication with CLDAP requests and the addition of the fields
necessary to support this. This might take the form of a clear
text password (which would go against the current IAB drive to
remove such things from protocols) or some arbitrary credentials.
Such a field is not included. It is felt that, in general,
authentication would incur sufficient overhead to negate the
advantages of the connectionless basis of CLDAP. If an
application requires authenticated access to the Directory then
CLDAP is not an appropriate protocol.
Young Standards Track [Page 6]
RFC 1798 CLDAP June 1995
Within a searchResponse all but the last SearchResponse has choice
'entry' and the last SearchResponse has choice 'resultCode'. Within
a searchResponse, as an encoding optimisation, the value of the
objectName LDAP DN may use a trailing '*' character to refer to the
baseObject of the corresponding searchRequest. For example, if the
baseObject is specified as "o=UofM, c=US", then the following
objectName LDAPDNs in a response would have the indicated meanings
objectName returned actual LDAPDN denoted
____________________________________________________
"*" "o=UofM, c=US"
"cn=Babs Jensen, *" "cn=Babs Jensen, o=UofM, c=US"
4.1. Errors
The following error code is added to the LDAPResult.resultCode
enumeration of [4]:
resultsTooLarge (70),
This error is returned when the LDAPMessage PDU containing the
results of an operation are too large to be sent in a single
datagram.
4.2. Example
A simple lookup can be performed in 4 packets. This is reduced to 2
if either the DSA implements the CLDAP protocol, the CLDAP server has
a cache of the desired results, or the CLDAP server and DSA are co-
located such that there is insignificant delay between them.
_______________________________________________________________
|_#|___Client_____CLDAP____CLDAP_server____DAP________DSA______|
| 1| SearchReq -> |
| 2| DAP-Search.req -> |
| 3| <- DAP-Search.res|
| 4| <- SearchRes |
|__|___________________________________________________________|
5. Implementation Considerations
The following subsections provide guidance on the implementation of
clients and servers using the CLDAP protocol.
Young Standards Track [Page 7]
RFC 1798 CLDAP June 1995
5.1. Server Implementations
Given that the goal of this protocol is to minimise the elapsed time
between making a Directory request and receiving the response, a
server which uses DAP to access the directory should use techniques
that assist in this.
- - A server should remain bound to the Directory during reasonably
long idle periods or should remain bound permanently.
- - Cacheing of results is highly desirable but this must be
tempered by the need to provide up-to-date results given the
lack of a cache invalidation protocol in DAP (either implicit
via timers or explicit) and the lack of a dontUseCopy service
control in the protocol.
Of course these issues are irrelevant if the CLDAP protocol is
directly supported by a DSA.
5.2. Client Implementations
For simple lookup applications, use of a retry algorithm with
multiple servers similar to that commonly used in DNS stub resolver
implementations is recommended. The location of a CLDAP server or
servers may be better specified using IP addresses (simple or
broadcast) rather than names that must first be looked up in another
directory such as DNS.
6. Security Considerations
This protocol provides no facilities for authentication. It is
expected that servers will bind to the Directory either anonymously
or using simple authentication without a password.
7. Bibliography
[1] The Directory: Overview of Concepts, Models and Service. CCITT
Recommendation X.500, 1988.
[2] The Directory: Models. CCITT Recommendation X.501 ISO/IEC JTC
1/SC21; International Standard 9594-2, 1988.
[3] The Directory: Abstract Service Definition. CCITT Recommendation
X.511, ISO/IEC JTC 1/SC21; International Standard 9594-3, 1988.
[4] Yeong, W., Howes, T., and S. Kille, "X.500 Lightweight Directory
Access Protocol", RFC 1487, Performance Systems International,
University of Michigan, ISODE Consortium, July 1993.
Young Standards Track [Page 8]
RFC 1798 CLDAP June 1995
[5] Mockapetris, P., "Domain Names - Implementation and
Specification", STD 13, RFC 1035, USC/Information Sciences
Institute, November 1987.
[6] Mockapetris, P., "Domain Names - Concepts and Facilities", STD
13, RFC 1034, USC/Information Sciences Institute, November 1987.
8. Acknowledgements
Many thanks to Tim Howes and Steve Kille for their detailed comments
and to other members of the working group.
This work was initiated by the Union Bank of Switzerland.
9. Author's Address
Alan Young
ISODE Consortium
The Dome, The Square
RICHMOND
GB - TW9 1DT
Phone: +44 81 332 9091
EMail: A.Young@isode.com
X.400: i=A; s=Young; o=ISODE Consortium; p=ISODE; a=MAILNET; c=FI
Young Standards Track [Page 9]

File diff suppressed because it is too large Load diff

View file

@ -1,451 +0,0 @@
Network Working Group T. Genovese
Request for Comments: 2218 Microsoft
Category: Standards Track B. Jennings
Sandia National Laboratory
October 1997
A Common Schema for the Internet White Pages Service
Status of this Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Abstract
This work is the result of the IETF Integrated Directory Services
(IDS) Working Group. The IDS Working Group proposes a standard
specification for a simple Internet White Pages service by defining a
common schema for use by the various White Pages servers. This
schema is independent of specific implementations of the White Pages
service.
This document specifies the minimum set of core attributes of a White
Pages entry for an individual and describes how new objects with
those attributes can be defined and published. It does not describe
how to represent other objects in the White Pages service. Further,
it does not address the search sort expectations within a particular
service.
1.0 Introduction to IWPS
The Internet community has stated a need for the development and
deployment of a White Pages service for use in locating information
about people in the Internet [PA94]. To facilitate interoperability
and to provide a common user experience, the Internet White Pages
Service (IWPS) must have a common set of information about each
person.
A common user object would allow a user to go between implementations
of the service and to expect consistency in the types of information
provided. A common user object would also provide developers with an
unambigious method of representing the information managed by the
service.
Genovese & Jennings Standards Track [Page 1]
RFC 2218 Common Schema for IWPS October 1997
This document will focus only on common information modeling issues
to which all IWPS providers must conform.
2.0 Scope
This document establishes the set of attributes that specify the
Common User Information Object for the IWPS. It does not attempt to
be an exhaustive specification of all objects that may be stored in
the IWPS. The process used by this document to define the user object
is recommended to be used to define other information objects used in
the IWPS.
All conforming implementations must support at the minimum, the core
attributes listed in Section 5.0. Implementations may include local
attributes in addition to the core set and still be considered "in
conformance".
This document will not specify rules with respect to information
privacy. Each country has its own set of laws and practices.
Previous work covering this area has been done by the North American
Directory Forum (NADF), whose publication [NADF92] contain
recommendations for registrants' rights in both the USA and Canada.
This document does not specify a Directory access protocol (i.e.
whois++, LDAP, DAP, etc.).
3.0 IWPS Schema Considerations
The description of the IWPS information object consists of the
following requirements:
1. Syntax for definition/representation of information
object templates.
2. Publication of information object templates, etc.
3. Database structure or schema.
Items 1 and 2 will be covered in this document. Because database
structure can potentially restrict implementations (i.e. X.500 schema
based versus DNS schema based) it will be treated as a separate
research topic and will not be defined in this paper.
4.0 Syntax for Definition/Representation of Information Object
Templates
A clear, precise, and consistent method must be used when discussing
information object templates and their associated attributes.
Therefore, this document makes uses of the previously defined syntax
used by LDAP. To avoid restrictions on implementations of the IWPS,
Genovese & Jennings Standards Track [Page 2]
RFC 2218 Common Schema for IWPS October 1997
some syntax are listed as requirements vs specific encodings. The
general IWPS syntax is included in section 6.0 for reference.
The IWPS Person Object specifies a limited set of recommended
attributes that a White Pages Service must include. Storage of user
attributes are a local issue, therefore, this memo suggests storage
sizes but not storage types.
This document lists the syntax with the attributes for developers of
user interface (UIs) to use as a reference, but it does not specify
how the UI should display these attributes.
Attributes that contain multiple-line text (i.e. Address) must use
the procedure defined in RFC 822 in section 3.1.1 on "folding" long
header lines [RFC-822].
5.0 Information Object Template Definitions
This section describes the IWPS Person Information Object Template
and its associated attributes. The Person Object is a simple list of
attributes, no structure nor object inheritance is implied.
IWPS client applications should use the following size
recommendations as the maximum sizes of the attributes. However,
applications should be able to handle attributes of arbitrary size,
returned by a server which may not comply with these recommendation.
All size recommendations are in characters.
Note: Because many characters in many encodings require more than one
byte, the size recommendations cannot be interpreted as sizes in
bytes.
This set of attributes describes information types, and are not
defined attributes in a particular schema. Any technology deploying
a White Page service (WHOIS ++, LDAP, vCard, etc.) will need to
publish as a companion document, their specific schema detailing how
the general attributes of the White Pages schema are expressed.
SPECIAL CONSIDERATIONS
Phone number: The full international form is recommended;
i.e. +1 206 703 0852. The field may contain
additional information following the phone
number. For example:
+1 800 759 7243 #123456
+1 505 882 8080 ext. 30852
Genovese & Jennings Standards Track [Page 3]
RFC 2218 Common Schema for IWPS October 1997
Email address: Is multivalued.
Certificate: Is multivalued.
Common Name: Is multivalued.
Language Spoken: Is multivalued.
THE INFORMATION OBJECT TEMPLATE FOR THE IWPS PERSON
--General Attributes --
Field Name Size Syntax
Email 360 Mailbox
Cert 4000 Certificate
Home Page 128 URI
Common Name 64 WhitepageString
Given Name 48 WhitepageString
Surname 48 WhitepageString
Organization 64 WhitepageString
Locality 20 WhitepageString
Country 2 WhitepageString (ISO 3166)
Language Spoken 128 WhitepageString (RFC 1766)
--Personal Attributes
Personal Phone 30 PrintableString
Personal Fax 30 PrintableString
Personal Mobile Phone 30 PrintableString
Personal Pager Number 30 PrintableString
Personal Postal Address 255 Address
Description 255 WhitepageString
--Organizational Attributes
Title 64 WhitepageString
Office Phone 30 PrintableString
Office Fax 30 PrintableString
Office Mobile Phone 30 PrintableString
Office Pager 30 PrintableString
Office Postal Address 255 Address
--Ancillary
Creation Date 24 GeneralizedTime
Creator Name 255 URI
Modified Date 24 GeneralizedTime
Genovese & Jennings Standards Track [Page 4]
RFC 2218 Common Schema for IWPS October 1997
Modifier Name 255 URI
6.0 IWPS Person Information Object Template Syntax
This section defines the syntax used by the IWPS person information
object template. It is copied in whole from the LDAP attribute
working document with some modification for completeness.
Certificate:
The certificate field is intended to hold any kind of certificate;
X.509 certificates are one example. A specific implementation will
specify how to indicate the type of certificate when describing
the mapping of the IWPS schema onto the implementation schema.
WhitepageString:
This syntax must be able to encode arbitrary ISO 10646 characters.
One such encoding is the UTF-8 encoding [UTF-8].
GeneralizedTime:
Values of this syntax are encoded as printable strings,
represented as specified in X.208. Note that the time zone must
be specified. It is strongly recommended that Zulu time zone be
used. For example:
199412161032Z
Mailbox:
here are many kinds of mailbox addresses, including X.400 and
Internet mailbox addresses. The implementation must clearly
distinguish between different types of mailbox address, for
instance by using a textual refix or a set of attribute types.
There must be a way to represent any mailbox type.
Address:
According to Universal Postal Union standards, this field must be
able to represent at least 6 lines of 40 characters.
PrintableString:
The encoding of a value with PrintableString syntax is the string
value itself. PrintableString is limited to the characters in
production <p>. Where production <p> is described by the
following:
Genovese & Jennings Standards Track [Page 5]
RFC 2218 Common Schema for IWPS October 1997
<a> ::= 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' |
'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' |
's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' | 'A' |
'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' |
'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' |
'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z'
<d> ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
<p> ::= <a> | <d> | ''' | '(' | ')' | '+' | ',' | '-' | '.' |
'/' | ':' | '?' | ' '
7.0 Publication of IWPS Information Object Templates.
The Working Group recommends that all information object templates
used for the IWPS be published.
Individual organizations may define information object templates that
are local in scope as required to meet local organizational needs.
All information that the organization wishes to be part of the IWPS
must use a published IWPS information object template.
8.0 Data Privacy
Each country, and each state within the US, has legislation defining
information privacy. The suggested attributes in Section 5.0 may be
considered private and the directory administrator is strongly
advised to verify the privacy legislation for his domain.
As suggested in "Privacy and Accuracy in NIC Databases" [RFC-1355],
each directory provider should provide a clear statement of the
purpose of the directory, the information that should be contained in
it, and a privacy policy associated with that information. This
policy should include restrictions for data dissemination.
This policy is strongly recommended for the US and Canada and
required by many countries in the European Community for data
sharing.
9.0 Data Integrity
Data Integrity was first addressed in RFC 1107 [KS89], which states
"a White Pages service will not be used, if the information it
provides is out of date or incorrect." Therefore, any production
IWPS provider must insure that all data is reasonably correct and
up-to-date.
Genovese & Jennings Standards Track [Page 6]
RFC 2218 Common Schema for IWPS October 1997
The Ancillary Attributes of the IWPS person template denote the
information's source and date of origin, and the source and date of
its latest modification. They provide the user with some measurement
of the quality of data making it easy to determine the owner and
freshness of the data retrieved.
The IWPS User Agent must be able to retrieve and display Ancillary
Attributes. Retrieval and display may be done as separate
operations.
The Ancillary Attributes are recommended as the minimum set of
attributes for any new information object template. Each IWPS server
may individually decide whether to support the storage and retrieval
of this data.
The Ancillary Attributes (also defined in Section 5.0) provide the
following information about its associated information object:
1. The date and time the entry was created; Creation Date.
2. Owner or individual responsible for the data creation;
Creator Name.
3. The date and time of the last modification;
Modified Date.
4. Individual responsible for the last modification;
Modifier Name.
10.0 Security Considerations
Security is implementation and deployment specific and as such is not
addressed in this memo. Security must ensure that the constraints
mentioned in the Data Privacy Section 8.0 are complied with.
11.0 References
[KS89] Sollins, K., "A Plan for Internet Directory Services", RFC
1107, Laboratory for Computer Science, MIT, July 1989.
[NADF92] North American Directory Forum, "User Bill of Rights for
entries and listings in the Public Directory', RFC 1295,
North American Directory Forum, January 1992.
Genovese & Jennings Standards Track [Page 7]
RFC 2218 Common Schema for IWPS October 1997
[PA94] Postel, J., and C. Anderson, "WHITE PAGES MEETING REPORT",
RFC 1588, University of Southern California, February 1994.
[RFC-822] Crocker, D., "Standard for the Format of ARPA Internet
Text Messages", STD 11, RFC 822, August 1982.
[RFC-1355] Curran, J., and A. Marine, "Privacy and Accuracy Issues
in Network Information Center Databases", FYI 15, RFC 1355, August
1992.
[UCS] Universal Multiple-Octet Coded Character Set (UCS) -
Architecture and Basic Multilingual Plane, ISO/IEC 10646-1, 1993.
[RFC-1766] Alvestrand, H., "Tags for the Identification of
Languages", RFC 1766, March 1995.
[UTF-8] Yergeau, F., "UTF-8, a transformation format of ISO 10646",
Work in Progress.
11.0 Authors' Addresses
Tony Genovese
The Microsoft Corporation
One Microsoft Way
Redmond, Washington 98007
USA
Phone: (206) 703-0852
EMail: TonyG@Microsoft.com
Barbara Jennings
Sandia National Laboratories
Albuquerque, New Mexico 87106
USA
Phone: (505) 845-8554
EMail: jennings@sandia.gov
Genovese & Jennings Standards Track [Page 8]

View file

@ -1,675 +0,0 @@
Network Working Group R. Hedberg
Request for Comment: 2657 Catalogix
Category: Experimental August 1999
LDAPv2 Client vs. the Index Mesh
Status of this Memo
This memo defines an Experimental Protocol for the Internet
community. It does not specify an Internet standard of any kind.
Discussion and suggestions for improvement are requested.
Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (1999). All Rights Reserved.
Abstract
LDAPv2 clients as implemented according to RFC 1777 [1] have no
notion on referral. The integration between such a client and an
Index Mesh, as defined by the Common Indexing Protocol [2], heavily
depends on referrals and therefore needs to be handled in a special
way. This document defines one possible way of doing this.
1. Background
During the development of the Common Indexing Protocol (CIP), one of
the underlying assumptions was that the interaction between clients
and the Index Mesh Servers [1] would heavily depend on the passing of
referrals. Protocols like LDAPv2 [2] that lack this functionality
need to compensate for it by some means. The way chosen in this memo
is to add more intelligence into the client. There are two reasons
behind this decision. First, this is not a major enhancement that is
needed and secondly, that the intelligence when dealing with the
Index Mesh, with or the knowledge about referrals, eventually has to
go into the client.
2. The clients view of the Index Mesh
If a LDAPv2 client is going to be able to interact with the Index
Mesh, the Mesh has to appear as something that is understandable to
the client. Basically, this consists of representing the index
servers and their contained indexes in a defined directory
information tree (DIT) [3,4] structure and a set of object classes
and attribute types that have been proven to be useful in this
context.
Hedberg Experimental [Page 1]
RFC 2657 LDAPv2 vs. Index Mesh August 1999
2.1 The CIP Object Classes
Object class descriptions are written according to the BNF defined in
[5].
2.1.1 cIPIndex
The cIPIndex objectClass, if present in a entry, allows it to hold
one indexvalue and information connected to this value.
( 1.2.752.17.3.9
NAME 'cIPIndex'
SUP 'top'
STRUCTURAL
MUST ( extendedDSI $ idx )
MAY ( indexOCAT )
)
2.1.2 cIPDataSet
The cIPDataSet objectClass, if present in a entry, allows it to hold
information concerning one DataSet.
( 1.2.752.17.3.10
NAME 'cIPDataSet'
SUP 'top'
STRUCTURAL
MUST ( dSI $ searchBase )
MAY ( indexOCAT $ description $ indexType $
accessPoint $ protocolVersion $ polledBy $
updateIntervall $ securityOption $
supplierURI $ consumerURI $ baseURI $
attributeNamespace $ consistencyBase
)
)
2.2 The CIP attributeTypes
The attributes idx, indexOCAT, extendedDSI, description,
cIPIndexType, baseURI, dSI are used by a client accessing the index
server. The other attributes (accesspoint, protocolVersion,
polledBy, updateIntervall, consumerURI, supplierURI and
securityOption, attributeNamespace, consistencyBase) are all for
usage in server to server interactions.
Hedberg Experimental [Page 2]
RFC 2657 LDAPv2 vs. Index Mesh August 1999
2.2.1 idx
The index value, normally used as part of the RDN.
( 1.2.752.17.1.20
NAME 'idx'
EQUALITY caseIgnoreIA5Match
SYNTAX IA5String
SINGLE-VALUE
)
2.2.2 dSI
DataSet Identifier, a unique identifier for one particular set of
information. This should be an OID, but stored in a stringformat.
( 1.2.752.17.1.21
NAME 'dSI'
EQUALITY caseIgnoreIA5Match
SYNTAX IA5String
)
2.2.3 indexOCAT
Describes the type of data that is stored in this entry, by using
objectcClasses and attributeTypes. The information is stored as a
objectClass name followed by a space and then an attributeType name.
A typical example when dealing with whitepages information would be
"person cn".
( 1.2.752.17.1.28
NAME 'indexOCAT'
EQUALITY caseIgnoreIA5Match
SYNTAX IA5String
)
2.2.5 supplierURI
A URI describing which protocols, hostnames and ports should be used
by an indexserver to interact with servers carrying indexinformation
representing this dataSet.
( 1.2.752.17.1.22
NAME 'supplierURI'
EQUALITY caseIgnoreIA5Match
SYNTAX IA5String
)
Hedberg Experimental [Page 3]
RFC 2657 LDAPv2 vs. Index Mesh August 1999
2.2.6 baseURI
The attribute value for this attribute is a LDAP URI. One can
envisage other URI syntaxes, if the client knows about more access
protocols besides LDAP, and the interaction between the client and
the server can not use referrals for some reason.
( 1.2.752.17.1.26
NAME 'baseURI'
EQUALITY caseExactIA5Match
SYNTAX IA5String
)
2.2.7 protocolVersion
At present, the Common Indexing Protocol version should be 3.
( 1.2.752.17.1.27
NAME 'protocolVersion'
EQUALITY numericStringMatch
SYNTAX numericString
)
2.2.8 cIPIndexType
The type of index Object that is used to pass around index
information.
( 1.2.752.17.1.29
NAME 'cIPIndexType'
EQUALITY caseIgnoreIA5Match
SYNTAX IA5String
)
2.2.10 polledBy
The Distinguished Name of Index servers that polls data from this
indexserver.
( 1.2.752.17.1.30
NAME 'polledBy'
EQUALITY distinguishedNameMatch
SYNTAX DN
)
Hedberg Experimental [Page 4]
RFC 2657 LDAPv2 vs. Index Mesh August 1999
2.2.11 updateIntervall
The maximum duration in seconds between the generation of two updates
by the supplier server.
( 1.2.752.17.1.31
Name 'updateIntervall'
EQUALITY numericStringMatch
SYNTAX numericString
SINGLE-VALUE
)
2.2.12 securityOption
Whether and how the supplier server should sign and encrypt the
update before sending it to the consumer server.
( 1.2.752.17.1.32
NAME 'securityOption'
EQUALITY caseIgnoreIA5Match
SYNTAX IA5String
SINGLE-VALUE
)
2.2.13 extendedDSI
DataSet Identifier possibly followed by a space and a taglist, the
later as specified by [6].
( 1.2.752.17.1.33
NAME 'extendedDSI'
EQUALITY caseIgnoreIA5Match
SYNTAX IA5String
)
2.2.14 consumerURI
A URI describing which means a server can accept indexinformation.
An example being a mailto URI for MIME email based index transport.
( 1.2.752.17.1.34
NAME 'consumerURI'
EQUALITY caseExactIA5Match
SYNTAX IA5String
)
Hedberg Experimental [Page 5]
RFC 2657 LDAPv2 vs. Index Mesh August 1999
2.2.15 attributeNamespace
Any consumer supplier pair has to agree on what attribute that should
be used and also possibly the meaning of the attributenames. The
value of this attribute should, for example, be a URI pointing to a
document wherein the agreement is described.
( 1.2.752.17.1.35 NAME 'attributeNamespace' EQUALITY
caseExactIA5Match SYNTAX IA5String
)
2.2.16 consistencyBase
This attribute is specifically used by consumer supplier pairs that
use the tagged index object [6].
( 1.2.752.17.1.36
NAME 'consistencyBase'
EQUALITY caseExactIA5Match
SYNTAX IA5String
)
3. The interaction between a client and the Index Mesh
A client interaction with the Index Mesh consists of a couple of
rather well defined actions. The first being to find a suitable index
to start with, then to transverse the Index Mesh and finally to query
the servers holding the original data. Note when reading this text
that what is discussed here is the client's perception of the DIT,
how it is in fact implemented is not discussed.
3.1 Finding a Index Mesh
This approach depends on the fact that every index server partaking
in an Index Mesh is represented in the DIT by a entry of the type
cIPDataSet, and has a distinguished name (DN) which most significant
relative distinguished name (RDN) has the attributetype dSI.
Therefore, finding a suitable indexserver to start the search from is
a matter of searching the DIT at a suitable place for objects with
the objectClass cIPIndexObject. Every found entry can then be
evaluated by looking at the description value as well as the
indexOCAT value. The description string should be a human readable
and understandable text that describes what the index server is
indexing. An example of such a string could be, "This index covers
all employees at Swedish Universities and University Colleges that
has an email account". The indexOCAT attribute supplies information
about which kind of entries and which attributes within these entries
that the index information has emanated from. For example, if the
Hedberg Experimental [Page 6]
RFC 2657 LDAPv2 vs. Index Mesh August 1999
indexOCAT attribute value is "person cn", one can deduce that this is
an index over persons and not over roles, and that it is the
attribute commonName that is indexed.
3.2 Searching the mesh
Each index server has its information represented in the DIT as a
very flat tree. In fact, it is only one level deep.
0 Indexservers cIPDataSet
/|\
/ | \
/ | \
0 0
cIPDataSet entries cIPIndex entries
one for each DataSet one for each index value
that this server has that this indexserver
gathered indexes from. has.
A search then consists of a set of searches. The first being the
search for the index entries that contains an indexvalue that matches
what the user is looking for, and the second a search based on the
DSI information in the extendedDSI attribute values returned from the
first search. In the case of the the cIPIndexType being tagged-
index, the taglists should be compared to find which DSI it might be
useful to pose further queries to.
When doing these types of searches, the client should be aware of the
fact that the index values disregarding their origin (attributeTypes)
always are stored in the index server as values of the idx attribute.
The object of the second search is to get information on the
different DataSet involved, and should normally be performed as a
read. Since the DataSet information probably will remain quite stable
over time, this information lends itself very well to caching. If at
this stage there is more than one DataSet involved, the User
interface might use the description value to aid the user in choosing
which one to proceed with. The content of the searchBase value of
the DataSet tells the client whether it represents another index
server (the most significant part of the dn is a dSI attribute) or if
it is a end server.
Hedberg Experimental [Page 7]
RFC 2657 LDAPv2 vs. Index Mesh August 1999
3.3 Querying the end server
When finally reaching the end server/servers that probably has the
sought for information, the information in the indexOCAT attribute
can be used to produce an appropriate filter. If a search for "Rol*"
in an index having an indexOCAT attribute value of "person cn"
returns an idx entry with the idx value of "Roland", then an
appropriate filter to use might be "&(|(cn=* roland *)(cn=roland
*)(cn=* roland))(objectclass=person)". A complete example of a
search process is given in Appendix A.
4. Security Considerations
Since this memo deals with client behavior, it does not add anything
that either enhances or diminishes the security features that exists
in LDAPv2.
5. Internationalization
As with security, this memo neither enhances or diminishes the
handling of internationalization in LDAPv2.
6. References
[1] Yeong, W., Howes, T. and S. Kille, "Lightweight Directory Access
Protocol", RFC 1777, March 1995.
[2] Allen, J. and M. Mealling "The Architecture of the Common
Indexing Protocol (CIP)", RFC 2651, August 1999.
[3] The Directory: Overview of Concepts, Models and Service. CCITT
Recommendation X.500, 1988.
[4] Information Processing Systems -- Open Systems Interconnection --
The Directory: Overview of Concepts, Models and Service. ISO/IEC
JTC 1/SC21; International Standard 9594-1, 1988.
[5] Wahl, M., Coulbeck, A., Howes, T. and S. Kille, "Lightweight
Directory Access Protocol (v3): Attribute Syntax Definitions",
RFC 2252, December 1997.
[6] Hedberg, R., Greenblatt, B., Moats, R. and M. Wahl, "A Tagged
Index Object for use in the Common Indexing Protocol", RFC 2654,
August 1999.
Hedberg Experimental [Page 8]
RFC 2657 LDAPv2 vs. Index Mesh August 1999
7. Author's Address
Roland Hedberg
Catalogix
Dalsveien 53
0387 Oslo, Norway
Phone: +47 23 08 29 96
EMail: roland@catalogix.ac.se
Hedberg Experimental [Page 9]
RFC 2657 LDAPv2 vs. Index Mesh August 1999
Appendix A - Sample Session
Below is a sample of a session between a LDAPv2 client and an index
server mesh as specified in this memo.
The original question of the session is to find the email address of
a person by the name, "Roland Hedberg", who is working at "Umea
University" in Sweden.
Step 1.
A singlelevel search with the baseaddress "c=SE" and the filter
"(objectclass=cipDataset)" was issued.
The following results were received:
DN: dSI=1.2.752.17.5.0,c=SE
dsi= 1.2.752.17.5.0
description= "index over employees with emailaddresses within Swedish
higher education"
indexOCAT= "cn person"
cIPIndexType= "x-tagged-index-1" ;
searchBase= "dsi=1.2.752.17.5.0,c=SE"
protocolVersion = 3
DN: dSI=1.2.752.23.1.3,c=SE
dsi= 1.2.752.23.1.3
description= "index over Swedish lawyers"
indexOCAT= "cn person"
cIPIndexType= "x-tagged-index-1" ;
searchBase= "dsi=1.2.752.23.1.3,c=SE"
protocolVersion = 3
Step 2.
Since the first index seemed to cover the interesting population, a
single level search with the baseaddress "dsi=1.2.752.17.5.0,c=SE"
and the filter "(|(idx=roland)(idx=hedberg))" was issued.
The following results were received:
DN: idx=Roland,dSI=1.2.752.17.5.0,c=SE
idx= Roland
extendedDSI= 1.2.752.17.5.10 1,473,612,879,1024
extendedDSI= 1.2.752.17.5.14 35,78,150,200
extendedDSI= 1.2.752.17.5.16 187,2031,3167,5284,6034-6040
extendedDSI= 1.2.752.17.5.17 17
Hedberg Experimental [Page 10]
RFC 2657 LDAPv2 vs. Index Mesh August 1999
DN: idx=Hedberg,dSI=1.2.752.17.5.0,c=SE
idx= Hedberg
extendedDSI= 1.2.752.17.5.8 24,548-552,1066
extendedDSI= 1.2.752.17.5.10 473,512,636,777,1350
extendedDSI= 1.2.752.17.5.14 84,112,143,200
extendedDSI= 1.2.752.17.5.15 1890-1912
extendedDSI= 1.2.752.17.5.17 44
A comparison between the two sets of extendedDSIs shows that two
datasets 1.2.752.17.5.10 and 1.2.752.17.5.14 contains persons named
"Roland" and "Hedberg". Therefore, the next step would be to see what
the datasets represent. A comparison like this should normally not
be left to the user.
Step. 3
Two baselevel searches, one for
"dsi=1.2.752.17.5.10,dsi=1.2.752.17.5.0,c=SE" and the other for
"dsi=1.2.752.17.5.14,dsi=1.2.752.17.5.0,c=SE" with the filter
"(objectclass=cipdataset)" were issued.
The following results were received:
DN: dSI=1.2.752.17.5.10,dSI=1.2.752.17.5.0,c=SE
dsi= 1.2.752.17.5.10
description= "Employees at Umea University,Sweden"
indexOCAT= "person cn"
searchBase= "o=Umea Universitet,c=SE"
respectively
DN: dSI=1.2.752.17.5.14,dSI=1.2.752.17.5.0,c=SE
dsi= 1.2.752.17.5.14
description= "Employees at Lund University,Sweden"
indexOCAT= "person cn"
searchBase= "o=Lunds Universitet,c=SE"
Step 4
Based on the descriptions for the two datasets, "1.2.752.17.5.10" was
chosen as the best to proceed with. From the searchbase attribute
value, it was clear that this was a base server. The query now has
to be somewhat modified. One possibility would be to issue a query
with the baseobject "o=Umea Universitet,c=SE" and the filter
"(&(cn=Roland Hedberg)(objectclass=person))"
Hedberg Experimental [Page 11]
RFC 2657 LDAPv2 vs. Index Mesh August 1999
Full Copyright Statement
Copyright (C) The Internet Society (1999). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
Hedberg Experimental [Page 12]

File diff suppressed because it is too large Load diff