RFC 2079 PROPOSED STANDARD DIRECTORY · LDAP · URI

X.500 URI Attribute: Definition of an X.500 Attribute Type and an Object Class to Hold Uniform Resource Identifiers (URIs)

Directory attributes for storing URIs with optional human-readable labels.

On rfc-editor.org ↗
PUBLISHED
January 1997
AUTHORS
M. Smith
STREAM
IETF
LABELEDURI ATTRIBUTE OID
1.3.6.1.4.1.250.1.57
LABELEDURIOBJECT CLASS OID
1.3.6.1.4.1.250.3.15
DOI
10.17487/RFC2079

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                          M. Smith
Request for Comments: 2079                      Netscape Communications
Category: Standards Track                                  January 1997


   Definition of an X.500 Attribute Type and an Object Class to Hold
                  Uniform Resource Identifiers (URIs)

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

   Uniform Resource Locators (URLs) are being widely used to specify the
   location of Internet resources.  There is an urgent need to be able
   to include URLs in directories that conform to the LDAP and X.500
   information models, and a desire to include other types of Uniform
   Resource Identifiers (URIs) as they are defined.  A number of
   independent groups are already experimenting with the inclusion of
   URLs in LDAP and X.500 directories.  This document builds on the
   experimentation to date and defines a new attribute type and an
   auxiliary object class to allow URIs, including URLs, to be stored in
   directory entries in a standard way.

Background and Intended Usage

   Uniform Resource Locators (URLs) as defined by [1] are the first of
   several types of Uniform Resource Identifiers (URIs) being defined by
   the IETF.  URIs are widely used on the Internet, most notably within
   Hypertext Markup Language [2] documents. This document defines an
   X.500 [3,4] attribute type called labeledURI and an auxiliary object
   class called labeledURIObject to hold all types of URIs, including
   URLs.  These definitions are designed for use in LDAP and X.500
   directories, and may be used in other contexts as well.

Schema Definition of the labeledURI Attribute Type

   Name:             labeledURI
   ShortName:        None
   Description:      Uniform Resource Identifier with optional label
   OID:              umichAttributeType.57 (1.3.6.1.4.1.250.1.57)
   Syntax:           caseExactString
   SizeRestriction:  None
   SingleValued:     False

Discussion of the labeledURI Attribute Type

   The labeledURI attribute type has the caseExactString syntax (since
   URIs are case-sensitive) and it is multivalued.  Values placed in the
   attribute should consist of a URI (at the present time, a URL)
   optionally followed by one or more space characters and a label.
   Since space characters are not allowed to appear un-encoded in URIs,
   there is no ambiguity about where the label begins.  At the present
   time, the URI portion must comply with the URL specification [1].
   Multiple labeledURI values will generally indicate different
   resources that are all related to the X.500 object, but may indicate
   different locations for the same resource.

   The label is used to describe the resource to which the URI points,
   and is intended as a friendly name fit for human consumption.  This
   document does not propose any specific syntax for the label part.  In
   some cases it may be helpful to include in the label some indication
   of the kind and/or size of the resource referenced by the URI.

   Note that the label may include any characters allowed by the
   caseExactString syntax, but that the use of non-IA5 (non-ASCII)
   characters is discouraged as not all directory clients may handle
   them in the same manner.  If non-IA5 characters are included, they
   should be represented using the X.500 conventions, not the HTML
   conventions (e.g., the character that is an "a" with a ring above it
   should be encoded using the T.61 sequence 0xCA followed by an "a"
   character; do not use the HTML escape sequence "&aring").

Examples of labeledURI Attribute Values

   An example of a labeledURI attribute value that does not include a
   label:

                   ftp://ds.internic.net/rfc/rfc822.txt

   An example of a labeledURI attribute value that contains a tilde
   character in the URL (special characters in a URL must be encoded as
   specified by the URL document [1]).  The label is "LDAP Home Page":

             http://www.umich.edu/%7Ersug/ldap/ LDAP Home Page

   Another example.  This one includes a hint in the label to help the
   user realize that the URL points to a photo image.

        http://champagne.inria.fr/Unites/rennes.gif Rennes [photo]

Schema Definition of the labeledURIObject Object Class

   Name:              labeledURIObject
   Description:       object that contains the URI attribute type
   OID:               umichObjectClass.15 (1.3.6.1.4.1.250.3.15)
   SubclassOf:        top
   MustContain:
   MayContain:        labeledURI

Discussion of the labeledURIObject Object Class

   The labeledURIObject class is a subclass of top and may contain the
   labeledURI attribute.  The intent is that this object class can be
   added to existing directory objects to allow for inclusion of URI
   values.  This approach does not preclude including the labeledURI
   attribute type directly in other object classes as appropriate.

Security Considerations

   Security considerations are not discussed in this memo, except to
   note that blindly inserting the label portion of a labeledURI
   attribute value into an HTML document is not recommended, as this may
   allow a malicious individual to include HTML tags in the label that
   mislead viewers of the entire document in which the labeledURI value
   was inserted.

Acknowledgments

   Paul-Andre Pays, Martijn Koster, Tim Howes, Rakesh Patel, Russ
   Wright, and Hallvard Furuseth provided invaluable assistance in the
   creation of this document.

   This material is based in part upon work supported by the National
   Science Foundation under Grant No. NCR-9416667.

Appendix:  The labeledURL Attribute Type (Deprecated)

   An earlier draft of this document defined an additional attribute
   type called labeledURL.  This attribute type is deprecated, and
   should not be used when adding new values to directory entries.  The
   original motivation for including a separate attribute type to hold
   URLs was that this would better enable efficient progammatic access
   to specific types of URIs.  After some deliberation, the IETF-ASID
   working group concluded that it was better to simply have one
   attribute than two.

   The schema definition for labeledURL is included here for historical
   reference only.  Directory client software may want to support this
   schema definition (in addition to labeledURI) to ease the transition
   away from labeledURL for those sites that are using it.

   Name:             labeledURL
   ShortName:        None
   Description:      Uniform Resource Locator with optional label
   OID:              umichAttributeType.41 (1.3.6.1.4.1.250.1.41)
   Syntax:           caseExactString
   SizeRestriction:  None
   SingleValued:     False
   OID:              umichAttributeType.41 (1.3.6.1.4.1.250.1.41)

References

   [1] Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform
   Resource Locators (URL)", RFC 1738, CERN, Xerox Corporation,
   University of Minnesota, December 1994.
   <URL:ftp://ds.internic.net/rfc/rfc1738.txt>

   [2] Berners-Lee, T., and D. Connolly, "Hypertext Markup Language -
   2.0", RFC 1866, <URL:ftp://ds.internic.net/rfc/rfc1866.txt>

   [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.

Author's Address

   Mark Smith
   Netscape Communications Corp.
   501 E. Middlefield Rd.
   Mountain View, CA 94043, USA

   Phone:  +1 415 937-3477
   EMail:  mcs@netscape.com

ISO Plain Language

On this page
PROBLEMDirectory users needed a standard way to include URLs and other URIs in LDAP and X.500 entries.
MECHANISMThe RFC defines the multivalued labeledURI attribute and an auxiliary labeledURIObject class that can be added to directory entries.
WHAT IT DEFINESDirectory entries can store URIs with optional labels; the earlier labeledURL attribute is deprecated.

§1Storing URIs in Directory Entries

Groups had already experimented with storing URLs in LDAP and X.500 directories, but a standard form was needed. RFC 2079 defines the labeledURI attribute type and the auxiliary labeledURIObject class to hold URIs, including URLs. The definitions are designed for LDAP and X.500 directories and may be used in other contexts.

Directories needed a consistent way to store web addresses and other resource identifiers. This RFC defines an attribute and class for that purpose.

§2The labeledURI Attribute

labeledURI uses case-exact string syntax and can have multiple values. A value consists of a URI, currently a URL, optionally followed by one or more spaces and a label. The RFC notes that spaces are not allowed unencoded inside a URI, so a space separates the URI from its label.

The label is a friendly name for people, and the RFC defines no required label syntax. It discourages non-ASCII label characters because directory clients may handle them differently. Multiple values can identify related resources or different locations for the same resource.

An entry can hold several URIs. Each one may have a plain-language label after it to help a person identify the resource.

§3The labeledURIObject Class

The labeledURIObject class is an auxiliary class, a subclass of top, that may contain the labeledURI attribute. It can be added to existing directory objects, and the attribute may also be included directly in other object classes.

The appendix describes an earlier labeledURL attribute as deprecated. It should not be used for new values, though directory clients may support it to help sites transition away from it.

The class lets an existing directory entry carry labeled URIs. The earlier labeledURL attribute is deprecated and should not be used for new values.

§4A Warning About Labels in HTML

The RFC does not otherwise discuss security, but warns against blindly inserting the label portion of a labeledURI value into an HTML document. A malicious person could put HTML tags in a label and mislead people viewing the document.

Do not insert a label into a web page without handling it carefully. A label could contain HTML that misleads readers.

§5References