Network Working Group                                          M. Smith
INTERNET-DRAFT                            Netscape Communications Corp.
Intended Category: Standards Track                     22 February 2002
Expires: August 2002

      Definition of an Attribute Type and an Object Class to Hold
                  Uniform Resource Identifiers (URIs)
                    <draft-smith-rfc2079bis-02.txt>



1.  Status of this Memo

   This document is an Internet-Draft and is subject to all provisions
   of Section 10 of RFC2026.  Internet-Drafts are working documents of
   the Internet Engineering Task Force (IETF), its areas, and its work-
   ing groups.  Note that other groups may also distribute working docu-
   ments 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."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   Distribution of this memo is unlimited.  Technical discussion of this
   document should take place on the IETF LDAP Extension Working Group
   mailing list <ietf-ldapext@netscape.com>.  Please send editorial com-
   ments directly to the author <mcs@netscape.com>.  After appropriate
   review and discussion, this document will be submitted as a Standards
   Track replacement for RFC 2079.

   Copyright (C) The Internet Society (1997-2002). All Rights Reserved.

   Please see the Full Copyright Statement section near the end of this
   document for more information.



2.  Abstract

   Uniform Resource Identifiers (URIs) are widely used to specify the
   location of Internet resources.  This document defines an attribute



Smith              Intended Category: Standards Track           [Page 1]


INTERNET-DRAFT    URI Attribute Type and Object Class   22 February 2002


   type and an auxiliary object class to allow URIs, including URLs, to
   be stored in LDAP and X.500 directory entries in a standard way.

   This document replaces RFC 2079.  See Appendix A for a list of
   changes relative to RFC 2079.



3.  Background and Intended Usage

   Uniform Resource Identifiers (URIs) as defined by [RFC2396] are
   widely used on the Internet, most notably within Hypertext Markup
   Language [RFC2854] documents. This document defines an attribute type
   called labeledURI and an auxiliary object class called labeledURIOb-
   ject to hold all types of URIs, including URLs.  These definitions
   are designed for use in LDAP[RFC2251] and X.500[X500] directories,
   and may be used in other contexts as well.

   The attribute type and object class definitions in this document are
   written using the BNF form of AttributeTypeDescription and
   ObjectClassDescription given in [RFC2252].  Lines have been folded
   for readability.


4.  Schema Definition of the labeledURI Attribute Type

      ( 1.3.6.1.4.1.250.1.57
         NAME 'labeledURI'
         EQUALITY caseExactMatch
         SUBSTR caseExactSubstringsMatch
         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )



5.  Discussion of the labeledURI Attribute Type

   The labeledURI attribute type has DirectoryString syntax, uses
   caseExact matching rules (since URIs are case-sensitive) and it is
   multivalued.  Values placed in the attribute should consist of a URI
   (typically, a URL) optionally followed by one or more ASCII space
   characters (code U+00020 in ISO/IEC 10646-1[ISO-10646]) and a label.
   Since ASCII space characters are not allowed to appear in URIs, there
   is no ambiguity about where the label begins.  The URI portion must
   comply with the URI syntax specification [RFC2396].  Multiple
   labeledURI values will generally indicate different resources that
   are all related to the directory entry, but may indicate different
   locations for the same resource.




Smith              Intended Category: Standards Track           [Page 2]


INTERNET-DRAFT    URI Attribute Type and Object Class   22 February 2002


   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 EQUALITY matching rule matches against the entire
   value, so labeledURI attribute values that differ only in label are
   not equivalent.  For example, the asserted value:

     ftp://ftp.ietf.org/rfc/rfc2251.txt

   does not match the attribute value:

     ftp://ftp.ietf.org/rfc/rfc2251.txt LDAPv3 Protocol RFC


   Also, the label is not restricted by the rules that govern the syntax
   of URIs; in particular, any character supported by the Directory-
   String syntax can be used in the label portion of the value.  HTML
   conventions should not be used to represent non-ASCII characters in
   the label portion of a labeledURI value, e.g., the ISO 10646-1 LATIN
   CAPITAL LETTER A WITH RING ABOVE (U+000C5) character should be
   represented using the UTF-8 encoding of the character (the octet
   sequence C3 85) and not the HTML escape sequence "&aring".


6.  Examples of labeledURI Attribute Values

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

     ftp://ftp.ietf.org/rfc/rfc0822.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 URI document [RFC2396]).  The label is "UMich LDAP
   Home Page":

     http://www.umich.edu/%7Edirsvcs/ldap/ UMich 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://www.salford.ac.uk/its024/chadwick.gif David Chadwick [photo]




Smith              Intended Category: Standards Track           [Page 3]


INTERNET-DRAFT    URI Attribute Type and Object Class   22 February 2002


7.  Schema Definition of the labeledURIObject Object Class

      ( 1.3.6.1.4.1.250.3.15
         NAME 'labeledURIObject'
         DESC 'object that contains the URI attribute type'
         SUP top AUXILIARY MAY labeledURI )



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



9.  Security Considerations

   Blindly inserting the label portion of a labeledURI attribute value
   into an HTML document is not recommended, as this may allow a mali-
   cious individual to include HTML tags in the label that mislead
   viewers of the entire document in which the labeledURI value was
   inserted.



10.  Acknowledgments

   Paul-Andre Pays, Martijn Koster, Tim Howes, Rakesh Patel, Russ
   Wright, Hallvard Furuseth, Mark Wahl, and Kurt Zeilenga provided
   valuable 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.



11.  Bibliography

   [ISO-10646]]
        ISO/IEC 10646-1:1993. International Standard -- Information
        technology -- Universal Multiple-Octet Coded Character Set (UCS)
        -- Part 1:  Architecture and Basic Multilingual Plane.

   [RFC2251]



Smith              Intended Category: Standards Track           [Page 4]


INTERNET-DRAFT    URI Attribute Type and Object Class   22 February 2002


        M. Wahl, T. Howes, S. Kille, "Lightweight Directory Access Pro-
        tocol (v3)", RFC 2251, December 1997.

   [RFC2252]
        M. Wahl, A. Coulbeck, T. Howes, S. Kille, W. Yeong, C. Robbins,
        "Lightweight Directory Access Protocol (v3): Attribute Syntax
        Definitions", RFC 2252, December 1997.

   [RFC2396]
        T. Berners-Lee, R. Fielding, and L. Masinter, "Uniform Resource
        Identifiers (URI): Generic Syntax", RFC 2396, August 1998.

   [RFC2854]
        The 'text/html' Media Type. D. Connolly, L. Masinter, RFC 2854,
        June 2000.

   [X500]
        Information Processing Systems -- Open Systems Interconnection
        -- The Directory: Overview of Concepts, Models and Service.
        ISO/IEC JTC 1/SC21; International Standard 9594-1, 1988.


12.  Author's Address

   Mark Smith
   Netscape Communications Corp.
   447 Marlpool Drive
   Saline, MI 48176-1519
   USA
   +1 650 937-3477
   mcs@netscape.com


13.  Appendix A: Changes Since RFC 2079

   Updated schema definitions to use X.500(93) and RFC 2252 conventions.
   The labeledURIObject object class is an auxiliary class.

   Revised note about use of non-IA5 characters in labels to discuss
   UTF-8 instead of T.61.

   Added a note about the EQUALITY matching rule matching against the
   entire value, including the label.

   Updated the URLs in the examples.

   Adjusted references: replaced RFC 1738 with RFC 2396, replaced RFC
   1866 with RFC 2854, added references to RFCs 2251 and 2252.



Smith              Intended Category: Standards Track           [Page 5]


INTERNET-DRAFT    URI Attribute Type and Object Class   22 February 2002


   Minor revision to Security Considerations section: removed leading
   "Security considerations are not discussed in this memo, except..."
   phrase.

   Removed the appendix that described the deprecated labeledURL attri-
   bute type.

   Updated Author's Address.

   Added "Full Copyright Statement" section

   Added a table of contents.

   Updated the acknowledgments section.




14.  Full Copyright Statement

   Copyright (C) The Internet Society (1997-2002). 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 develop-
   ing 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 MER-
   CHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


   This Internet Draft expires in August 2002.




Smith              Intended Category: Standards Track           [Page 6]

1.     Status of this Memo............................................1
2.     Abstract.......................................................1
3.     Background and Intended Usage..................................2
4.     Schema Definition of the labeledURI Attribute Type.............2
5.     Discussion of the labeledURI Attribute Type....................2
6.     Examples of labeledURI Attribute Values........................3
7.     Schema Definition of the labeledURIObject Object Class.........4
8.     Discussion of the labeledURIObject Object Class................4
9.     Security Considerations........................................4
10.    Acknowledgments................................................4
11.    Bibliography...................................................4
12.    Author's Address...............................................5
13.    Appendix A: Changes Since RFC 2079.............................5
14.    Full Copyright Statement.......................................6