home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Info 1997 December
/
Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso
/
drafts
/
draft_s_z
/
draft-wahl-know-mime-00.txt
< prev
next >
Wrap
Text File
|
1996-08-29
|
23KB
|
628 lines
Network Working Group M. Wahl
INTERNET-DRAFT Critical Angle Inc.
Expires in six months from 28 August 1996
Application/Directory Profile for LDAP and X.500 Knowledge
<draft-wahl-know-mime-00.txt>
1. Status of this Memo
This document is an Internet-Draft. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, and
its working groups. Note that other groups may also distribute working
documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference material
or to cite them other than as "work in progress."
To learn the current status of any Internet-Draft, please check the
"1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
Directories on ds.internic.net (US East Coast), nic.nordu.net (Europe),
ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).
2. Abstract
This memo defines directory information profiles for representing
directory distribution knowledge for an X.500 or LDAP directory system,
to be carried in an application/directory MIME Content-Type. The
profiles consists of type definitions and the corresponding format of
values that each type is allowed to contain. They are designed for simple
generation and parsing by programs; the text-based format makes it
easier for developers and directory administrators to debug problems.
Additional documents will build on these specifications in defining
text-based protocols for distributed directory server administration.
3. Overview
The Internet White Pages Directory service currently is built from a
combination of X.500(88), X.500(93) and LDAP-capable servers. No
single server holds the entire directory tree, instead the tree is
partitioned among the servers. There are two basic ways that the naming
tree has been partitioned:
The first is the Entry Data Block, or "EDB" model, which is primarily
supported just by the QUIPU implementation. In this model, all the
immediate subordinates of a single entry in the tree, the context prefix,
are mastered together in a single server. The context prefix entry itself
is not part of the EDB, for it is part of the immediate superior EDB.
The second is the Naming Context model, supported by X.500-based
servers. In this model, an entry, the context prefix, and all its
subordinates down to either the leaves or references to subordinate
naming contexts are held in the same server.
It is expected that LDAP servers will follow the Naming Context model.
INTERNET DRAFT Application/Directory Profile for Knowledge August 1996
Knowledge is the information which describes the distribution of the
directory hierarchy. Each component of a servers' knowledge will
consist of the name of a context prefix, and the list of servers to
contact for progressing operations in the naming context identified
by that context prefix.
Operational bindings are defined in X.501 [7] are agreements between
a pair of servers. Hierarchical and Shadow operational bindings permit
the exchange of knowledge information. An operational binding is
identified by a number, unique between a pair of servers.
This document does not specify means to identify non-specific knowledge.
4. The Knowledge Profile
The profile is defined as follows, using the profile registration
template from [1].
4.1. Profile Definition
To: ietf-mime-direct@umich.edu
Subject: Registration of application/directory MIME profile knowledge
Profile name: knowledge
Profile purpose: To hold information about hierarchical distribution
of a directory.
Profile types: NAME, ACCESSPOINT, BINDINGID
Profile special notes:
There are no ordering limitations on types within the content entity.
The default transfer encoding for the profile is 7-Bit, if only
US-ASCII equivalent characters are present in the content, otherwise
it is quoted printable or base64.
The default character set is ISO-10646-UTF-8 [2]. It is recommended
that this NOT be changed to any other character set. (UTF-8 is
chosen as this is the character set used in the LDAP protocol itself
for names and attributes. In allows for all the characters in
UniversalString without shifting character sets. This makes it very
easy for servers to handle.)
There is no default language. It is not expected that attributes in
this profile would be provided directly to end users.
The default location of the type values is inline with the profile
type. It is strongly recommended that no multimedia attributes be
present in contents with this profile.
Intended usage: COMMON
The associated type definitions follow, using the type registration
template from [1].
INTERNET DRAFT Application/Directory Profile for Knowledge August 1996
4.2. Type definitions
4.2.1. NAME Type Definition
The NAME parameter, defined in [1], is used to convey the directory
name of the context prefix. There must be exactly one value of this
parameter in a content.
The value of this parameter is a UTF-8 string encoding of a Distinguished
Name, as defined in [3].
The "PROTO" subtype parameter must be present, and its value must be "LDAP".
Type examples:
NAME;PROTO=LDAP: CN=Babs Jensen, O=Babsco, C=US
NAME;PROTO=LDAP: CN=#130442616273, O=#130442616273, C=US
4.2.2. ACCESSPOINT Type Definition
The ACCESSPOINT parameter is used to convey the means of access for
this naming context. There must be at least one value of this parameter
in a context.
The value of this parameter is encoded according to the following BNF:
<AccessPoint> ::= <Preference> '#' <Role> '#' <AccessPointData>
<Preference> ::= <integer> | -- or absent
<Role> ::= 'master' | 'shadow' | 'gateway' | 'cache' | -- or absent
<AccessPointData> ::= <X500AccessPoint> |
<QuipuAccessPoint> |
<LDAPAccessPoint> |
<DNSAccessPoint> |
<URLAccessPoint>
<X500AccessPoint> ::= 'X500' '#' <Serverdn> '#' <PresentationAddress>
[ '#' <SetOfProtocolInformation> ]
<SetOfProtocolInformation> ::= <ProtocolInformation> |
'(' <ProtocolInformationList> ')'
<ProtocolInformationList> ::= <ProtocolInformation> |
<ProtocolInformation> '$'
<ProtocolInformationList>
<QuipuAccessPoint> ::= 'QUIPU' '#' <Serverdn>
<LDAPAccessPoint> ::= <Ldap389AP> | <Ldap636AP>
<Ldap389AP> ::= 'LDAP' '#' [ <Serverdn> ] '#' <Hostnameportno>
<Ldap636AP> ::= 'SSL-LDAP' '#' [ <Serverdn> ] '#' <Hostnameportno>
INTERNET DRAFT Application/Directory Profile for Knowledge August 1996
<Serverdn> ::= <DN>
<Hostnameportno> ::= <Hostnameorip> [ ':' <Portno>]
<DNSAccessPoint> ::= 'DNS' '#' <Hostnameorip>
<URLAccessPoint> ::= 'URL' '#' <Url>
<Hostnameorip> ::= -- a fully-qualifed domain name or an IP address
<Portno> ::= -- a TCP or UDP port number
The encoding format of <DN> is given in [3], <PresentationAddress> in [4],
<ProtocolInformation> in [5] and <Url> in [6].
The <Preference> field, if present, takes as a value an integer between
0 and 255 (inclusive). It permits the sender to suggest relative
preferences for the receiver to use when choosing between multiple values
of ACCESSPOINT in this content. In general, receivers should prefer
access points with smaller values of preference. If this field is absent,
the sender does not indicate any particular relative preference for this
value.
The <Role> field, if present, takes on the following values:
master: the server indicated in the access point holds the master
copy of entries in this naming context.
shadow: the server indicated in the access point holds a possibly
incomplete shadow copy of entries in this naming context.
gateway: substantial loss of content may occur if this server is
contacted.
cache: the server holds some information from this naming context
which may be out of date.
If the role field is absent, the sender does not indicate any particular
role for the server named in the access point.
The <X500AccessPoint> field specifies a single X.500 DSA. It contains
the DSA's Distinguished Name, presentation address, and an optional list
of protocol information. The DSA indicated will be able to perform
operations on all entries in the naming context (possibly by contacting
other servers or returning referrals).
The <QuipuAccessPoint> field specifies a single X.500 DSA by its
Distinguished Name. The presentation address of the DSA must be obtained
through other means, such as a content of profile "DSA". The DSA
indicated will be able to perform operations on entries subordinate to
the context prefix, but not on the context prefix entry itself.
The <LDAPAccessPoint> field specifies an LDAP server by its host name or
IP address, and optional port number. The default port number, 389 for
plain LDAP and 636 for SSL-LDAP, should be used if the port number is not
specified. The distinguished name of the server may optionally be provided.
This server will be able to perform operations on all entries in the naming
context (possibly by contacting other servers or returning referrals).
INTERNET DRAFT Application/Directory Profile for Knowledge August 1996
The <DNSAccessPoint> field specifies a domain name system server by its
host name or IP address. The <URLAccessPoint> field specifies a server
based on its URL. These are not currently used but are reserved for
future extensibility.
Example:
AccessPoint: # # LDAP # # nameflow.dante.net
Further examples are given in section 6.1 and 6.2.
4.2.2.1. Why a URL is not being used
Not all the types of access described above have a URL scheme, and
additional information is associated as each of the access points
which are not part of today's URL definitions (such as preference).
"URL-Unsafe" characters such as spaces or non-ASCII characters are
extremely likely to occur in values, and that would lead to yet another
layer of quoting, even though the content itself might be using a
quoted-printable, base64 encoding.
Philsophically, there is no single "data resource", like a particular
entry, being identified in the access point. Instead the access point
could be used to access many different entries.
4.2.3. BINDINGID Parameter
This parameter should be present at most once in a content. Its value
is encoded according to the following BNF:
<BindingID> ::= <Id> [ '.' <Version>]
<Id> ::= <integer>
<Version> ::= <integer>
For example,
BINDINGID: 100
BINDINGID: 100.10
This parameter is present only if there is an operational binding [7]
between the sender and recipient.
5. Related Profiles
A MIME message containing contents of the "knowledge" profile may
also carry contents with the "dsa", "subentry" or "cache-attributes"
profiles. Contents with these profiles may also be carried indpendently.
5.1. DSA Profile
A "DSA" profile is defined as follows, using the profile registration
template from [1].
INTERNET DRAFT Application/Directory Profile for Knowledge August 1996
To: ietf-mime-direct@umich.edu
Subject: Registration of application/directory MIME profile DSA
Profile name: DSA
Profile purpose: To hold information about a Directory System Agent
(server).
Profile types: NAME, PRESENTATIONADDRESS, SUPPORTEDAPPLICATIONCONTEXT,
BINDINGID, LASTMODIFIEDTIME
Profile special notes:
There are no ordering limitations on types within the content entity.
The default transfer encoding for the profile is 7-Bit.
The default character set is ISO-10646-UTF-8 [2]. It is recommended
that this NOT be changed to any other character set.
There is no default language. It is not expected that attributes in
this profile would be provided directly to end users.
The default location of the type values is inline with the profile
type. It is strongly recommended that no multimedia attributes be
present in contents with this profile.
The following types are also likely to occur in this contents with
this profile, however their values are not used by the recipient:
CN, description, L, O, OU, seeAlso, knowledgeInformation,
lastModifiedBy
Intended usage: COMMON
The associated type definitions follow, using the type registration
template from [1].
5.1.1. NAME Type Definition
The NAME parameter, defined in [1], is used to convey the directory
name of the server. There must be exactly one value of this
parameter in a content.
The value of this parameter is a UTF-8 string encoding of a Distinguished
Name, as defined in [3].
The "PROTO" subtype parameter must be present, and its value must be "LDAP".
5.1.2. PRESENTATIONADDRESS Type Definition
The PRESENTATIONADDRESS parameter is used to convey the presentation address
of the server. There must be exactly one value of this parameter in a
content.
The value of this parameter is a Presentation Address as defined in [4].
INTERNET DRAFT Application/Directory Profile for Knowledge August 1996
5.1.3. SUPPORTEDAPPLICATIONCONTEXT Type Definition
The SUPPORTEDAPPLICATIONCONTEXT parameter is used to convey the
application contexts supported by the server. There may be any number of
values of this parameter in a content.
The value of this parameter is a string representation of an OBJECT
IDENTIFIER, as described in [5].
The following example values are among those likely to occur:
supportedApplicationContext: 2.5.3.1 -- directory access
supportedApplicationContext: 2.5.3.2 -- directory system
supportedApplicationContext: 2.5.3.4 -- shadow consumer initiated
supportedApplicationContext: 2.5.3.5 -- shadow supplier initiated
supportedApplicationContext: 0.9.2342.19200300.99.4 -- QUIPU DSP
supportedApplicationContext: 0.9.2342.19200300.100.8 -- Internet DSP
5.1.4. LASTMODIFIEDTIME Type Definition
The LASTMODIFIEDTIME parameter is used to convey the time this entry
was last modified. There may be at most one value of this parameter in
a content.
The value of the parameter is a UTCTime, as described in [5].
5.2. Subentry Profile
A "SUBENTRY" profile is defined as follows, using the profile registration
template from [1].
To: ietf-mime-direct@umich.edu
Subject: Registration of application/directory MIME profile SUBENTRY
Profile name: SUBENTRY
Profile purpose: To hold information from a subentry.
Profile types: NAME, BINDINGID, subtreeSpecification, CN, dseType,
entryACI, prescriptiveACI,
creatorsName, createTimestamp, modifiersName, modifyTimestamp,
dITStructureRules, nameForms, ditContentRules, objectClasses,
attributeTypes, matchingRules, matchingRuleUse,
collectiveLocalityName, collectiveStateOrProvinceName,
collectiveStreetAddress, collectiveOrganizationName,
collectiveOrganizationalUnitName, collectivePostalAddress,
collectivePostalCode, collectivePostOfficeBox,
collectivePhysicalDeliveryOfficeName,
collectiveTelephoneNumber, collectiveTelexNumber,
collectiveTeletexTerminalIdentifier,
collectiveFacsimileTelephoneNumber,
collectiveInternationaliSDNNumber
Profile special notes:
There are no ordering limitations on types within the content entity.
INTERNET DRAFT Application/Directory Profile for Knowledge August 1996
The default transfer encoding for the profile is 7-Bit.
The default character set is ISO-10646-UTF-8 [2]. It is recommended
that this NOT be changed to any other character set.
There is no default language. It is not expected that attributes in
this profile would be provided directly to end users.
The default location of the type values is inline with the profile
type. It is strongly recommended that no multimedia attributes be
present in contents with this profile.
Intended usage: COMMON
With the exception of NAME and BINDINGID, which are described above,
the rest of type parameters are those likely to be in subentries. They are
as described in [5].
5.3. Attributes for Caching Profile
A "CACHE-ATTRIBUTES" profile is defined as follows, using the profile
registration template from [1].
To: ietf-mime-direct@umich.edu
Subject: Registration of application/directory MIME profile CACHE-ATTRIBUTES
Profile name: CACHE-ATTRIBUTES
Profile purpose: To hold arbitrary attributes which may be cached
and used in matching search filters.
Profile types: NAME, BINDINGID, etc
Profile special notes:
There are no ordering limitations on types within the content entity.
The default transfer encoding for the profile is 7-Bit.
The default character set is ISO-10646-UTF-8 [2]. It is recommended
that this NOT be changed to any other character set.
There is no default language.
The default location of the type values is inline with the profile
type. It is strongly recommended that no multimedia attributes be
present in contents with this profile.
Intended usage: COMMON
With the exception of NAME and BINDINGID, which are described above,
the content may contain any attribute of [5] which the sender wishes to
have cached by the recipient. These could include administrativeRole,
accessControlScheme, objectClass, aliasedObjectName, description etc.
INTERNET DRAFT Application/Directory Profile for Knowledge August 1996
6. Examples
Section 6.1 is an example of what a server holding the naming context
"O=Foo,C=US" might send to the server holding the naming context "C=US",
in order to have the subordinate context added to the directory. Section
6.2 is an example of what the "C=US" server might return as a response.
6.1.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="break"
Content-Description: information about O=Foo,C=US
--break
Content-Type: application/directory; profile="knowledge"; charset="iso-10646-utf-8"
Name;PROTO=LDAP: O=Foo, C=US
AccessPoint: # master # LDAP # CN=Server, O=Foo, C=US # server.foo.com
--break
Content-Type: application/directory; profile="cache-attributes"; charset="iso-10646-utf-8"
Name;PROTO=LDAP: O=Foo, C=US
O: Foo
Description: Makers of the Foo line of Widgets
--break--
INTERNET DRAFT Application/Directory Profile for Knowledge August 1996
6.2.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="break"
Content-Description: information about O=Foo,C=US and superiors
--break
Content-Type: application/directory; profile="knowledge"; charset="iso-10646-utf-8"
Name;PROTO=LDAP:
AccessPoint: # gateway # LDAP # # nameflow.dante.net
--break
Content-Type: application/directory; profile="knowledge"; charset="iso-10646-utf-8"
Name;PROTO=LDAP: C=US
AccessPoint: 30 # master # QUIPU # CN=EDB Beetle
AccessPoint: 10 # shadow # X500 # CN=U,C=US # "X500"/Internet=us.net+19999
AccessPoint: 20 # gateway # LDAP # # nameflow.dante.net
--break
Content-Type: application/directory; profile="DSA"; charset="iso-10646-utf-8"
Name;PROTO=LDAP: CN=EDB Beetle
Description: the Endangered EDB-only Beetle
Description: supports DAP, DSP, IDSP and QDSP
PresentationAddress: "X500"/Internet=us.net+17003
SupportedApplicationContext: 2.5.3.1
SupportedApplicationContext: 2.5.3.2
SupportedApplicationContext: 0.9.2342.19200300.99.4
SupportedApplicationContext: 0.9.2342.19200300.100.8
--break
Content-Type: application/directory; profile="knowledge"; charset="iso-10646-utf-8"
Name;PROTO=LDAP: O=Foo, C=US
AccessPoint: 0 # master # LDAP # CN=Server, O=Foo, C=US # server.foo.com
AccessPoint: 128 # gateway # X500 # CN=U,C=US # "X500"/Internet=us.net+19999
--break
Content-Type: application/directory; profile="cache-attributes"; charset="utf8"
Name;PROTO=LDAP: C=US
C: US
CO: United States of America
Description: Land of the Free
Description: Home of the Brave
--break--
7. Security Considerations
Internet mail is subject to many well known security attacks, including
monitoring, replay, and forgery. Care should be taken by any directory
service in allowing information to leave the scope of the service
itself, where any access controls can no longer be guaranteed.
Applications should also take care to display directory data in a "safe"
environment (e.g., PostScript-valued types).
INTERNET DRAFT Application/Directory Profile for Knowledge August 1996
8. Bibliography
[1] T. Howes, M. Smith, "A MIME Content-Type for Directory Information",
INTERNET DRAFT <draft-ietf-asid-mime-direct-02.txt", July 1996.
[2] M. Davis, UTF-8, (WG2 N1036) DAM for ISO/IEC 10646-1.
[3] M. Wahl, S. Kille, "A UTF-8 String Representation of Distinguished
Names", INTERNET DRAFT <draft-ietf-asid-ldapv3-dn-00.txt>, August 1996.
[4] S. Kille, "A String Representation for Presentation Addresses",
RFC 1278, University College London, November 1991.
[5] M. Wahl, A. Coulbeck, T. Howes, S. Kille, "LDAP Standard and Pilot
Attribute Definitions", INTERNET DRAFT
<draft-ietf-asid-ldapv3-attributes-02.txt>, August 1996.
[6] T. Berners-Lee, L. Masinter, M. McCahill, "Uniform Resource
Locations (URL)", RFC 1738, December 1994.
[7] The Directory: Models. ITU-T Recommendation X.501, 1993.
<draft-wahl-know-mime-00.txt> Expires: February 28, 1997