INTERNET-DRAFT Kurt D. Zeilenga Intended Category: Experimental OpenLDAP Foundation Expires: 1 October 2001 1 April 2001 International Domain Names and LDAP Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. This document is intended to be, after appropriate review and revision, submitted to the RFC Editor as an Experimental document. Distribution of this memo is unlimited. Technical discussion of this document will take place on the IETF LDAP Extensions Working Group mailing list . Please send editorial comments directly to the author . 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 . The list of Internet-Draft Shadow Directories can be accessed at . Copyright 2001, The Internet Society. All Rights Reserved. Please see the Copyright section near the end of this document for more information. Abstract This document describes schema and mechanisms extending the Lightweight Directory Access Protocol [RFC 2251] to support the International Domain Name System [IDN]. Conventions Zeilenga LDAP IDN [Page 1] INTERNET-DRAFT draft-zeilenga-ldap-idn-01 1 April 2001 Schema definitions are provided using LDAPv3 description formats [RFC2252]. Definitions provided here are formatted (line wrapped) for readability. The key words "SHALL", "SHALL NOT", "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", "MAY" and "MAY NOT" used in this document are to be interpreted as described in [RFC2119]. 1. Background and Intended Use Experimental internationalized domain name systems exist. The IETF is actively engineering standards in this area. Though this work is in progress, enough is known to experiment with international domain names in application protocols. 2. Domains use in LDAP Excepting user data transferred by the protocol (see Section 5), the only use of domain names within the URL returned in a Referral LDAPResult or SearchResultReference response PDU. An ASCII Compatible Encoding (ACE) of the domain name is expected to be used for within hostpart of the URL. Use of internationalized domain names within URIs [IDNURI] and use of Internationalized Resource Identifiers [IRI] with LDAP is not discussed when this document. 3. International Domain Schema The schema described in this section is intended to be used similar to the schema described in [RFC2247] and [LOCATE] excepting that it is used conjunction with a International Domain Name System instead of the Internet Domain Name System and domain components are restricted to UTF-8 not IA5. This section defined internationalized versions of the domain related schema elements introduced in [RFC1274] and subsequently adapted for use with LDAP [RFC2247]. Editor's Note: object identifiers (OIDs) will be assigned before this document is published as an RFC. 3.1. International Domain Component The IDC (short for International Domain Component) attribute type is Zeilenga LDAP IDN [Page 2] INTERNET-DRAFT draft-zeilenga-ldap-idn-01 1 April 2001 defined as follows: ( OID.TBD NAME 'IDC' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX directoryString SINGLE-VALUE ) The value of this attribute is a string holding one component of an international domain name. The encoding of directoryString for use in LDAP is simply the characters of the string itself. The equality matching rule is case insensitive, as is today's IDN. 3.2. International Domain Component Object The idcObject object class permits the IDC attribute to be present in an entry. This object class is defined as auxiliary, as it would typically be used in conjunction with an existing structural object class, such as organization, organizationalUnit or locality. The following object class, along with the IDC attribute, can be added to any entry. ( OID.TBD NAME 'idcObject' AUXILIARY MUST IDC ) An example entry would be: dn: IDC=example,IDC=com objectClass: top objectClass: organization objectClass: idcObject IDC: example o: Example Organization 4. Security Considerations This document describes how attributes of objects may be discovered and retrieved. Servers should ensure that an appropriate security policy is maintained. An enterprise is not restricted in the information which it may store in DNS or LDAP servers. A client which contacts an untrusted server may have incorrect or misleading information returned (e.g. an organization's server may claim to hold naming contexts representing domain names which have not been delegated to that organization). Zeilenga LDAP IDN [Page 3] INTERNET-DRAFT draft-zeilenga-ldap-idn-01 1 April 2001 5. Acknowledgment This document borrows heavily from RFC 2247 and a number of other IETF documents. 6. Author's Address Kurt D. Zeilenga OpenLDAP Foundation References [RFC2219] S. Bradner, "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, March 1997. [RFC2251] M. Wahl, T. Howes, S. Kille, "Lightweight Directory Access Protocol (v3)", RFC 2251, December 1997. [RFC2252] M. Wahl, A. Coulbeck, T. Howes, S. Kille, "Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions", RFC 2252, December 1997. [RFC2247] S. Kille, M. Wahl, A. Grimstad, R. Huber, S. Sataluri, "Using Domains in LDAP/X.500 Distinguished Names", RFC 2247, January 1998. [RFC2396] T. Berners-Lee, R. Fielding, L. Masinter, "Uniform Resource Identifiers (URI): Generic Syntax", RFC 2396, August 1998. [LOCATE] IETF LDAPext WG, "Discovering LDAP Services with DNS", draft-ietf-ldapext-locate-xx.txt (work in progress). Full Copyright Copyright 2001, The Internet Society. 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 Zeilenga LDAP IDN [Page 4] INTERNET-DRAFT draft-zeilenga-ldap-idn-01 1 April 2001 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 AUTHORS, 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. Zeilenga LDAP IDN [Page 5] [Settings] Mode=0 UserSignatures=1 SeenIntro=1 POPAccount= RealName= SMTPServer= ReturnAddress= ACAPServer= ACAPUserID= PopServer= LoginName= LastOptionsCategory=0 Commercial32Version=16 AdToolbarDock=2 MainWindowState=1 NGBase1=1004991984 NGLast1=1004991984 NGBase2=0 NGLast2=0 NGBase3=0 NGLast3=0 NGBase4=0 NGLast4=0 NGBase5=1004991984 NGLast5=1004991984 [ToolBar-Bar0] BarID=59393 Style=32768 ExStyle=0 PrevFloating=0 MDIChild=0 PctWidth=1000000 MRUFloatCX=0 MRUFloatCY=0 MRUHorzDockCX=0 MRUHorzDockCY=0 MRUVertDockCX=0 MRUVertDockCY=0 MRUDockingState=0 DockingStyle=0 TypeID=0 [ToolBar-Bar1] BarID=318 XPos=0 YPos=-2 Docking=1 MRUDockID=0 MRUDockLeftPos=0 MRUDockTopPos=-2 MRUDockRightPos=180 MRUDockBottomPos=406 MRUFloatStyle=4 MRUFloatXPos=-2147483648 MRUFloatYPos=0 Style=8068 ExStyle=3889 PrevFloating=0 MDIChild=0 PctWidth=703259 MRUFloatCX=300 MRUFloatCY=180 MRUHorzDockCX=300 MRUHorzDockCY=180 MRUVertDockCX=180 MRUVertDockCY=408 MRUDockingState=0 DockingStyle=61440 TypeID=0 [ToolBar-Bar10] BarID=59423 Horz=0 Floating=1 XPos=190 YPos=66 Bars=3 Style=0 ExStyle=0 PrevFloating=0 MDIChild=1 PctWidth=0 MRUFloatCX=0 MRUFloatCY=0 MRUHorzDockCX=0 MRUHorzDockCY=0 MRUVertDockCX=0 MRUVertDockCY=0 MRUDockingState=0 DockingStyle=0 TypeID=0 Bar#0=0 Bar#1=319 Bar#2=0 [ToolBar-Bar2] BarID=319 Visible=0 XPos=-2 YPos=-2 MRUWidth=722 Docking=1 MRUDockID=0 MRUDockLeftPos=5 MRUDockTopPos=-2 MRUDockRightPos=185 MRUDockBottomPos=500 MRUFloatStyle=4 MRUFloatXPos=241 MRUFloatYPos=123 Style=8069 ExStyle=3889 PrevFloating=0 MDIChild=0 PctWidth=1000000 MRUFloatCX=722 MRUFloatCY=475 MRUHorzDockCX=300 MRUHorzDockCY=180 MRUVertDockCX=180 MRUVertDockCY=502 MRUDockingState=0 DockingStyle=61440 TypeID=0 [ToolBar-Bar3] BarID=320 Visible=0 XPos=1 YPos=5 Docking=1 MRUDockID=0 MRUDockLeftPos=1 MRUDockTopPos=5 MRUDockRightPos=915 MRUDockBottomPos=85 MRUFloatStyle=4 MRUFloatXPos=-2147483648 MRUFloatYPos=0 Style=36740 ExStyle=3889 PrevFloating=0 MDIChild=0 PctWidth=1000000 MRUFloatCX=300 MRUFloatCY=180 MRUHorzDockCX=914 MRUHorzDockCY=80 MRUVertDockCX=180 MRUVertDockCY=180 MRUDockingState=0 DockingStyle=61440 TypeID=0 [ToolBar-Bar4] BarID=316 XPos=0 YPos=412 Docking=1 MRUDockID=0 MRUDockLeftPos=0 MRUDockTopPos=412 MRUDockRightPos=180 MRUDockBottomPos=585 MRUFloatStyle=4096 MRUFloatXPos=-2147483648 MRUFloatYPos=13056 Style=8066 ExStyle=769 PrevFloating=0 MDIChild=0 PctWidth=296741 MRUFloatCX=300 MRUFloatCY=180 MRUHorzDockCX=300 MRUHorzDockCY=180 MRUVertDockCX=180 MRUVertDockCY=172 MRUDockingState=0 DockingStyle=61440 TypeID=0 [ToolBar-Bar5] BarID=59419 Bars=4 Style=0 ExStyle=0 PrevFloating=0 MDIChild=0 PctWidth=0 MRUFloatCX=0 MRUFloatCY=0 MRUHorzDockCX=0 MRUHorzDockCY=0 MRUVertDockCX=0 MRUVertDockCY=0 MRUDockingState=0 DockingStyle=0 TypeID=0 Bar#0=0 Bar#1=59392 Bar#2=59424 Bar#3=0 [ToolBar-Bar6] BarID=59422 Bars=3 Style=0 ExStyle=0 PrevFloating=0 MDIChild=0 PctWidth=0 MRUFloatCX=0 MRUFloatCY=0 MRUHorzDockCX=0 MRUHorzDockCY=0 MRUVertDockCX=0 MRUVertDockCY=0 MRUDockingState=0 DockingStyle=0 TypeID=0 Bar#0=0 Bar#1=320 Bar#2=0 [ToolBar-Bar7] BarID=59420 Bars=4 Style=0 ExStyle=0 PrevFloating=0 MDIChild=0 PctWidth=0 MRUFloatCX=0 MRUFloatCY=0 MRUHorzDockCX=0 MRUHorzDockCY=0 MRUVertDockCX=0 MRUVertDockCY=0 MRUDockingState=0 DockingStyle=0 TypeID=0 Bar#0=0 Bar#1=318 Bar#2=316 Bar#3=0 [ToolBar-Bar8] BarID=59421 Bars=3 Style=0 ExStyle=0 PrevFloating=0 MDIChild=0 PctWidth=0 MRUFloatCX=0 MRUFloatCY=0 MRUHorzDockCX=0 MRUHorzDockCY=0 MRUVertDockCX=0 MRUVertDockCY=0 MRUDockingState=0 DockingStyle=0 TypeID=0 Bar#0=0 Bar#1=65855 Bar#2=0 [ToolBar-Bar9] BarID=59392 Docking=1 MRUDockID=0 MRUDockLeftPos=-1 MRUDockTopPos=-1 MRUDockRightPos=720 MRUDockBottomPos=42 MRUFloatStyle=8196 MRUFloatXPos=-2147483648 MRUFloatYPos=0 Style=12212 ExStyle=780 PrevFloating=0 MDIChild=0 PctWidth=500000 MRUFloatCX=0 MRUFloatCY=0 MRUHorzDockCX=721 MRUHorzDockCY=43 MRUVertDockCX=0 MRUVertDockCY=0 MRUDockingState=0 DockingStyle=61440 TypeID=14946 Title=Toolbar Buttons=FCAIAAAAAAAAAAAAAAAAIBAIAAAAAAJBAIAAAAAAAAAAAAAAAAEAAIAAAAAAAAAAAAAAAANBAIAAAAAAHFAIAAAAAAIFAIAAAAAAPBAIAAAAAAAAAAAAAAAAFOAIAAAAAAGOAIAAAAAAAAAAAAAAAAECAIAAAAAAAAAAAAAAAAKAAIAAAAAAAAAAAAAAAAMDAIAAAAAAAAAAAAAAAAHABOAAAAAAAAAAAAAAAAFEBOAAAAAA [ToolBar-BarID59392] btn0=32805 btn1=0 btn2=32792 btn3=32793 btn4=0 btn5=32772 btn6=0 btn7=32797 btn8=32855 btn9=32856 btn10=32799 btn11=0 btn12=32997 btn13=32998 btn14=0 btn15=32804 btn16=0 btn17=32778 btn18=0 btn19=32828 btn20=0 btn21=57607 btn22=0 btn23=57669 CustomButtonCount=0 [ToolBar-Summary] Bars=11 ScreenCX=1024 ScreenCY=768 [ToolBar-ToolBarManager] ToolTips=1 CoolLook=1 LargeButtons=1 [WazooBars] WazooBarIds=318,319,320 WazooBar318=16,CMboxWazooWnd,CFileBrowseWazooWnd,CSignatureWazooWnd,CStationeryWazooWnd,CPersonalityWazooWnd WazooBar319=16,CNicknamesWazooWnd,DirectoryServicesWazooWndNew,CFiltersWazooWnd,CFilterReportWazooWnd,CLinkHistoryWazooWnd WazooMDI319=0,0,726,498,1,0 WazooBar320=64,CTaskStatusWazooWnd,CTaskErrorWazooWnd [Window Position] AdToolbarWindowPosition=911,81,969,124 MainWindowPosition=51,38,973,730 [Labels] LabelCount=7 Label1=255,128,0,Label 1 Label2=255,0,0,Label 2 Label3=255,0,255,Label 3 Label4=0,128,255,Label 4 Label5=0,0,255,Label 5 Label6=0,128,0,Label 6 Label7=128,64,64,Label 7