HTTP/1.1 200 OK Date: Tue, 09 Apr 2002 03:14:24 GMT Server: Apache/1.3.20 (Unix) Last-Modified: Tue, 21 Nov 1995 23:00:00 GMT ETag: "2edc02-3a54-30b259f0" Accept-Ranges: bytes Content-Length: 14932 Connection: close Content-Type: text/plain Integrated Directory Services Working Group T. Genovese draft-ietf-ids-iwps-schema-spec-00.txt Microsoft Expires: 22 May 1996 22 November 1995 A Common Schema for the Internet White Pages Service Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), it 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). Overview The IETF Integrated Directory Services (IDS) Working Group proposes to establish a specification for a simple Internet white pages service. To facilitate this effort it would be helpful to have a common schema used by the various white page servers. This document is designed to specify the basic set of attributes to be used for a white page entry for a person. This schema does not describe how to represent other objects in the White page service. It does describe how new objects can be defined and registered. This schema is independent of implementations of the White Page service. 1.0 Introduction The Internet community has stated that there is a need for the development and deployment of a White Page service. This service would be used to locate information about people in the Internet. To facilitate interoperibility and a common user experience the Internet White Pages service needs to have a common set of information about each person. This Document will focus only on common information modeling issues to which all IWPS providers must conform. To insure a consistent User experience of this service we need to define a common User object. This will allow a User to go between different implementations of the service and have a consistent expectation as to what information can be found about people on the Internet. Developers of this service need to have an unambiguous method of representing the Information Tony Genovese [Page 1] Internet Draft Common Schema for IWPS November 1995 objects managed by the service. This will help facilitate interoperability and data management. 2.0 Scope This document attempts to establish a simple set of information objects templates that should prove extensible and usable by developers of the IWPS. It will not attempt to be an exhaustive specification of all objects that will be stored in the IWPS. It will provide a specification of how objects will be defined and registered as part of the IWPS. 3.0 IWPS Schema Considerations The information object description requirements for the IWPS consists of the following: 1. Syntax for definition/representation of Information Object Templates. 2. Registration procedures for information object Templates, etc. 3. Database structure or schema. Items 1 and 2 will be covered in this Document. Database structure because, it will potentially restrict implementations (i.e. X.500 schema based Vs DNS schema based) will not be defined in this document. This area is a separate Research topic and will be covered in its own document. 3.1 Syntax for definition/representation of Information objects A clear, precise and consistent method must be used when information object Templates and their attributes are discussed within the context of IWPS. There are two possible methods to do this. i.e. 1. BNF 2. ASN.1 The Working Group recommends the use of ASN.1. It provides us with a set of defined attributes and encoding syntax's. Also, it is well documented and widely available. The use of ASN.1 to specify the structure of the information objects does not imply the use of Basic Encoding Rules (BER) for any IWPS servers protocols. The use of Object inheritance is not used or specified by this document. 3.2 Registration of IWPS Information object Templates. Tony Genovese [Page 2] Internet Draft Common Schema for IWPS November 1995 The Working Group recommends the registration and publication of all information object Templates used for the IWPS. We will use the IANA branch of the ISO OID tree for registration of the IWPS Object Templates. This branch was used by the Object Templates listed in Appendix A. To facilitate distribution of IWPS information object Templates they should be made available on the Internet information server (i.e. InterNIC). At a minimum it is recommended that any new information object Template that will be made available via the IWPS will be published in a RFC and its OID registered with IANA. Individual organizations may define information object Templates that are only local in scope. This may be needed to meet local organizational needs. If these information object Templates are not registered with the IWPS, they may not be processable by the general IWPS UAs. All information that the organization wishes to be part of the IWPS must use an IWPS registered information object Template. 4.0 Security Certificates Another feature that IWPS can provide us is the ability to store Security Certificates. This capability is needed by secure mail services such as PEM and PGP. To facilitate the storage and management of these Certificates a new element is defined for the iwpPerson object. This new element will allow multiple Certificates to be stored with the person record. It also allows for the deprecation of certificates through the use of a validity field. This field is used to state the beginning and end dates the certificate is valid. The element "certificates" is defined in Appendix A. 5.0 Data Integrity The question of Data Integrity was first addressed in RFC1107 [KS89]. It basically states, that if the information is out of date it is useless and the service will not be used. Therefore, a clear requirement is that any production IWPS provider must insure that all data is reasonably correct and current. To facilitate the User in determining the quality of the data that has been retrieved it is recommended that the optional Ancillary information attribute of the IWPperson Template be supported. This would require the IWPS UA to be able to retrieve and display this information. This may be done as a separate operation from the fetch of the information object. The Ancillary Information Attribute is defined in Appendix A. It is further recommended that any new information object Template include as a minimum the Ancillary information attribute as an optional attribute. It would then be left to the IWPS servers to optionally support the storage and retrieval of this data. Tony Genovese [Page 3] Internet Draft Common Schema for IWPS November 1995 The Ancillary Information attribute has been designed to provide the following information about the information object with which it is associated: 1. The date and time of the last modification. 2. Who performed the last modification. 3. Who owns or is responsible for the data stored in the information object. 4. What is the official source of the data. 5. Which attributes in the information object have been changed. As new information object Templates are defined for the IWPS a new changeRecord type will need to be defined for it and assigned to the changeRecord attribute. This attribute is not a part of the White Page Name (WPN). Where WPN is an identifier for an instance of Information Object Template. The WPN is constructed from the attributes of the Object. The Ancillary Information attribute is not to be used as part of the Purported Name presented to the IWPS UA. 6.0 Unstructured Data There are a number of existing directory based systems that are currently providing White Pages style of information. These systems respond to queries by returning information without regard to any structure of the data. There is nothing in their protocol specifications that identify individual fields or attributes in the response that would allow it to be machine processable. To accommodate these systems and the way they return information, the element unstructureData has been added to the iwpPerson object. This element consists of a 1k block of data without any structure or content requirements. It can be used to represent/store any of the current sets of White Pages information. It should be noted that this element is added for backward compatibility of the existing systems only. It should not be used for the development of any new white page service. 7.0 References [KS89] Sollins, K., "A Plan for Internet Directory Services", RFC 1107, Laboratory for Computer Science, MIT, July 1989. Tony Genovese [Page 4] Internet Draft Common Schema for IWPS November 1995 [NADF92] North American Directory Forum, "User Bill of Rights for entries and listings in the Public Directory', RFC 1295, North American Directory Forum, January 1992. [PA94] Postel, J., Anderson, C., "WHITE PAGES MEETING REPORT", RFC 1588, University of Southern California, February 1994. 8.0 Authors Address Tony Genovese The Microsoft Corporation One Microsoft way Redmond, Washington 98007 USA Phone: (206) 703-0852 EMail: TonyG@Microsoft.com Appendix A Information Object Template Definitions The Information Objects Template and attributes defined in this appendix are used to define the contents of Information Objects of the IWPS. In particular the Template defined below deals with the person Object. Any new Information Object must be registered with IANA. -- The Information Object Template for the IWPS person -- iwpPerson OBJECT-CLASS SUBCLASS OF top MUST CONTAIN{ commonName, wpi} MAY CONTAIN{ surname, organizationalName, postalAddress, telephoneNumber, emailAddress, certificates, unstructuredData, ancillaryInformation} ::={iwpsObjectTemplate.1} -- The WPI attribute to be use by Information Objects of the IWPS -- wpi ATTRIBUTE WITH ATTRIBUTE-SYNTAX Tony Genovese [Page 5] Internet Draft Common Schema for IWPS November 1995 caseIgnoreStringSyntax ((SIZE(1..ub-iwps-wpi)) ::={iwpsAttributeType 2} -- The element for the storage of Email information -- emailAddress ATTRIBUTE WITH ATTRIBUTE-SYNTAX EmailAddress ::={iwpsAttributeType 1} EmailAddress ::= SEQUENCE (SIZE(1..ub-email-boxes)) OF caseIgnoreString(SIZE(1..ub-email-addr)) -- The element to be used to store Security Certificates -- certificates ::= ATTRIBUTE WITH ATTRIBUTE-SYNTAX Keys{iwpsAttributeType 3} Keys ::= SEQUENCE (SIZE(1..ub-keys)) OF keyInfo keyInfo ::= SEQUENCE{ validity Valid, key KeyType} Valid ::= SEQUENCE{ notBefore UTCTime, notAfter UTCTime} KeyType ::= SEQUENCE{ algorithm OBJECT IDENTIFIER, subjectKey caseIgnoreStringSyntax(SIZE(1..ub-keysize))} -- The Unstructured Data element used to contain free form data -- unstructuredData ::= caseIgnoreStringSyntax(SIZE(1..ub-data)) -- The Ancillary Information attribute used for data integrity -- ancillaryInformation ::= SEQUENCE{ LastModifiedDate UTCTime, LastModifiedBy, commanName, OwnerofData, commonName, OfficialSourceofData dataBase, WhatWasChanged changeRecord} Tony Genovese [Page 6] Internet Draft Common Schema for IWPS November 1995 dataBase ::= caseIgnoreStringSyntax(SIZE(1..ub-database)) -- Change record subtypes are the MUST CONTAIN attributes -- changeRecord ::= iwpsPersonType (commonName | wpi) iwpsPersonType ::= BIT STRING { commonName (0), surname (1), organizationalName (2), postalAddress (3), telephoneNumber (4), emailAddress (5), wpi (6) } -- Size limits used by the IWPS -- ub-database INTEGER ::= 1024 ub-data INTEGER ::= 1024 ub-email-boxes INTEGER ::= 8 ub-email-addr INTEGER ::= 1024 ub-keys INTEGER ::= 6 ub-keysize INTEGER ::= 512 ub-iwps-wpi INTEGER ::= 256 -- Object Identifiers use by the IWPS -- Internet OBJECT IDENTIFIER ::= {ISO(1) org(3) DOD(6) 1} iwps OBJECT IDENTIFIER ::= {Internet NN} iwpsAttributeType OBJECT IDENTIFIER ::= {iwps 1} iwpsObjectTemplate OBJECT IDENTIFIER ::= {iwps 2} Tony Genovese [Page 7]