Network Working Group M. Smith INTERNET-DRAFT Netscape Communications Corp. Intended Category: Standards Track 20 July 2001 Expires: January 2002 Definition of an Attribute Type and an Object Class to Hold Uniform Resource Identifiers (URIs) 1. Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. 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." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/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 . Please send editorial com- ments directly to the author . After appropriate review and discussion, this document will be submitted as a Standards Track replacement for RFC 2079. Copyright (C) The Internet Society (1997-2001). 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 20 July 2001 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 [RFC1866] 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 20 July 2001 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 is not restricted by the rules that govern the syntax of URIs; in particular, any character supported by the Direc- toryString 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 "å". 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] 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 ) Smith Intended Category: Standards Track [Page 3] INTERNET-DRAFT URI Attribute Type and Object Class 20 July 2001 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, 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. 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. [RFC1866] T. Berners-Lee and D. Connolly, "Hypertext Markup Language - 2.0", RFC 1866, November 1995. [RFC2251] 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, Smith Intended Category: Standards Track [Page 4] INTERNET-DRAFT URI Attribute Type and Object Class 20 July 2001 "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. [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. 901 San Antonio Rd. Palo Alto, CA 94303-4900 Mail Stop SCA17 - 201 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. Updated the URLs in the examples. Adjusted references: replaced RFC 1738 with RFC 2396, added refer- ences to RFCs 2251 and 2252. 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 Smith Intended Category: Standards Track [Page 5] INTERNET-DRAFT URI Attribute Type and Object Class 20 July 2001 Added a table of contents. 14. Full Copyright Statement Copyright (C) The Internet Society (1997-2001). 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 January 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.........3 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