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]