Network Working Group                                        Tim Howes
INTERNET DRAFT                                              Mark Smith
draft-ietf-asid-mime-direct-01.txt              University of Michigan


             A MIME Content-Type for Directory Information



1.  Status of this Memo

This document is an Internet-Draft.  Internet-Drafts are  working  docu-
ments  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.''

To learn the current status of  any  Internet-Draft,  please  check  the
``1id-abstracts.txt''  listing  contained in the Internet- Drafts Shadow
Directories   on   ftp.is.co.za   (Africa),   nic.nordu.net    (Europe),
munnari.oz.au   (Pacific  Rim),  ds.internic.net  (US  East  Coast),  or
ftp.isi.edu (US West Coast).

2.  Abstract

This document defines a MIME Content-Type for holding directory informa-
tion.   The  definition  is independent of any particular directory ser-
vice.  The application/directory Content-Type is defined for  holding  a
variety  of  basic  textual directory information, for example, name, or
email address. The application/directory Content-Type can also  be  used
as  the  root body part in a multipart/related Content-Type for handling
more complicated situations in which non-textual information, for  exam-
ple, a photograph or sound, must be represented.

The application/directory Content-Type defines a general  framework  and
format  for holding directory information in a simple "type: value" for-
mat. This document also defines the procedure by which  particular  for-
mats   for   carrying   application-specific   information   within   an
application/directory Content-Type may be defined  and  registered,  and
the  conventions  such  formats  must  follow. It is expected that other
documents will be produced that define such formats for various applica-
tions (e.g., white pages).





Howes & Smith                                                   [Page 1]


Expires July 1996                                         INTERNET DRAFT


3.  Need for a MIME Directory Type

For purposes of this document, a directory is a special-purpose database
that  contains typed information. A directory usually supports both read
and search of the information it contains, and may support  modification
of  the  information as well.  Directory information is usually accessed
far more often than it is updated.  Directories may be local  or  global
in  scope.  They may be distributed or centralized. The information they
contain may be replicated, with weak or strong consistency requirements.

There are several situations in which users of Internet mail may wish to
exchange  directory  information: the email analogy of a "business card"
exchange; the conveyance of directory information to a user having  only
email access to the Internet; the provision of machine-parseable address
information when purchasing goods or services over the Internet; etc. As
MIME  [RFC-1521,RFC-1522]  is used increasingly by other protocols, most
notably HTTP, it may be useful for these protocols to be able  to  carry
directory  information in MIME format. Such a format, for example, could
be used to represent URC (uniform resource characteristics)  information
about resources on the World Wide Web.

4.  Overview

The scheme defined here for representing directory information in a MIME
Content-Type  has  two  parts. First, the application/directory Content-
Type is defined for use in holding simple textual directory information,
for  example  name,  title,  or  email address. The format uses a simple
"type: value" approach, which should be easily parsable by existing MIME
implementations  and  understandable by users. This document defines the
general form the information in the Content-Type should  take,  and  the
procedure by which specific types and values for particular applications
may be defined. The framework is general enough  to  handle  information
from  any  number  of  end directory services, including LDAP [RFC-1777,
RFC-1778], WHOIS++ [RFC-1835], and X.500 [x500].

Directory entries can include far more than  just  textual  information.
Some such information (e.g., an image or sound) overlaps with predefined
MIME Content-Types. In these cases it may be desirable  to  include  the
information  in their well-known MIME formats. This situation is handled
by using a multipart/related Content-Type as defined in [RFC-1872].  The
root component of this type is an application/directory body part speci-
fying any textual information in-line, and for information contained  in
other Content-Types, the Content-IDs of those types.

5.  The application/directory Content-Type

The application/directory Content-Type is used to hold textual directory
information  and to point to other MIME body parts holding supplementary



Howes & Smith                                                   [Page 2]


Expires July 1996                                         INTERNET DRAFT


or non-textual directory information, such as an image or sound.  It  is
defined as follows, using the MIME media type registration template from
[MIME-REG].

   To: ietf-types@uninett.no
   Subject: Registration of MIME media type application/directory

   MIME media type name: application

   MIME subtype name: directory

   Required parameters: none

   Optional parameters: charset, source, profile, name, defaulttype

      The "charset" parameter is as defined in [RFC-1521] for other body
      parts.

      The "source" parameter is used  to  provide  the  means  by  which
      applications  knowledgable in the given directory service protocol
      may obtain additional or  more  up-to-date  information  from  the
      directory  service.  It  contains  a  URL as defined in [RFC-1738]
      pointing to the directory entity or entities to which the informa-
      tion  pertains.  When directory information is available from more
      than one source, the sending entity should pick what it  considers
      to be the best source.

      The "profile" parameter is used to convey the type  of  entity  to
      which  the  directory  information  pertains and the likely set of
      information associated with the entity. It is intended only  as  a
      guide  to  applications  interpreting  the  information  contained
      within the body part. It should not be used to exclude or  require
      particular  pieces  of  information.   The  value of the "profile"
      parameter is defined as follows. Note that profile names are  case
      insensitive  (i.e., the profile name "Person" is the same as "PER-
      SON" and "person" and "peRsOn").

         profile := x-token / iana-token

         x-token := <The two characters "X-" or "x-" followed,
                     with no intervening white space, by any token>

         iana-token := <a publicly-defined extension token, registered
                        with IANA, as specified in Section 8 of this
                        document>

      The "name" parameter is used to convey the directory name  of  the
      entity  to  which the directory information pertains. Its value is



Howes & Smith                                                   [Page 3]


Expires July 1996                                         INTERNET DRAFT


      an ASCII string representing the name. Note that this  string  may
      be protocol-specific and is intended for applications knowledgable
      in a particular directory service protocol.

      The "defaulttype" parameter is used as a space-saving optimization
      for applications that need to represent large numbers of values of
      the same type. The value of this parameter is the assumed type  in
      the "type: value" constructs found in the body part (see below) if
      the "type" portion is omitted.

   Encoding considerations:

      As specified by the Content-Transfer-Encoding header field.

   Security considerations:

      Directory information may be public or it may  be  protected  from
      unauthorized  access by the directory service in which it resides.
      Once the information leaves its native service, there  can  be  no
      guarantee  that  the  same care will be taken by all services han-
      dling the information. Furthermore, this specification defines  no
      access control mechanism by which information may be protected, or
      by which access control information may be conveyed.

   Interoperability considerations:

      In order to make sense of directory information, applications must
      share a common understanding of the types of information contained
      within the Content-Type. These types are not defined in this docu-
      ment,  but  rather in companion documents that follow the require-
      ments specified in this document, or in bilateral agreements.

   Published specification:

      The "application/directory" Content-Type contains  textual  direc-
      tory  information,  typically  pertaining  to  a  single directory
      entity or group of entities.  The content consists of one or  more
      CRLF-separated    lines    in    the    following    format.    An
      application/directory  content  line  has  the  same  continuation
      semantics  as  described  in RFC 822 in section 3.1.1 on "folding"
      long header lines (i.e., a single line may be split across  multi-
      ple  physical  lines  by  replacing linear-white-space with a CRLF
      immediately followed by at least one LWSP-character).   Using  the
      notation of RFC 822, the syntax for this content is:

         content := attrvalue / attrcid

         attrvalue := [type] ":" SPACE [value]



Howes & Smith                                                   [Page 4]


Expires July 1996                                         INTERNET DRAFT


         attrcid := [type] "::" SPACE msg-id ; a Message-ID as in RFC 822

         type := x-token / iana-token

         x-token := <the two characters "X-" or "x-" followed, with
                     no intervening white space, by any token>

         iana-token := <a publicly-defined extension token, registered
                        with IANA, as specified in Section 9 of this
                        document>

         value := *text ; characters whose syntax depends on type

      Note that the meanings of the various types and the format of  the
      corresponding  values  are  defined  as  specified  in  Section 9.
      Specifications may impose ordering on the type constructs within a
      body  part,  though  none is required by default. The x-token type
      specification is used for bilaterally-agreed upon types.

      Note that the type names are case insensitive (i.e., the type name
      "cn" is the same as "CN" and "Cn"). A type name may be absent only
      if a "defaulttype" parameter has been given in the header for  the
      body  part.   In this case, the type name assumed is that given in
      the "defaulttype" parameter.

      Note that the "charset" parameter should be used to identify char-
      acter  sets  other  than US ASCII. If different information within
      the same application/directory body component have different char-
      acter  sets,  they  can  both  be converted to UNICODE, or another
      character set which is a superset of both.

      Note that if a type name is followed by the two  characters  "::",
      the  value  is  assumed  to be a Content-ID referencing the actual
      value, and the application/directory body part  must  be  used  in
      conjunction with the multipart/related Content-Type defined in the
      next section.

   Person & email address to contact for further information:

      Tim Howes
      University of Michigan
      535 W. William St.
      Ann Arbor, MI 48103
      tim@umich.edu
      +1 313 747-4454

   Intended usage: COMMON




Howes & Smith                                                   [Page 5]


Expires July 1996                                         INTERNET DRAFT


   Author/Change controller:

      Tim Howes
      University of Michigan
      535 W. William St.
      Ann Arbor, MI 48103
      tim@umich.edu
      +1 313 747-4454

      Mark Smith
      University of Michigan
      535 W. William St.
      Ann Arbor, MI 48103
      mcs@umich.edu
      +1 313 764-2277

6.  Use of the multipart/related Content-Type

The multipart/related Content-Type can be used to hold directory  infor-
mation  comprised  of  both  text  and non-text information or directory
information that already has a natural MIME  representation.   The  root
body part within the multipart/related body part is specified as defined
in [RFC-1872] by a "start" parameter, or it is the first  body  part  in
the  absence  of  such  a  parameter.  The  root  body  part must have a
Content-Type of "application/directory".  This part holds text  informa-
tion,  optionally  defines  the  name and source of the information, and
makes reference to subsequent body  parts  holding  additional  text  or
non-text  directory  information  via  their Content-IDs as explained in
Section 5.

The body parts referred to do not have to be in  any  particular  order,
except as noted above for the root body part.

7.  Examples

The following examples are for illustrative purposes only  and  are  not
part  of the definition. The first example illustrates simple use of the
application/directory Content-Type. Note that no "profile" parameter  is
given,  so an application may not know what kind of directory entity the
information applies to. Note also the use of both hypothetical  official
and bilaterally agreed upon types.

   From: Whomever
   To: Someone
   Subject: whatever
   MIME-Version: 1.0
   Message-ID: <id1@host.net>
   Content-Type: application/directory



Howes & Smith                                                   [Page 6]


Expires July 1996                                         INTERNET DRAFT


   Content-ID: <id2@host.com>

   cn: Babs Jensen
   cn: Barbara J Jensen
   sn: Jensen
   email: babs@umich.edu
   phone: +1 313 747-4454
   x-id: 1234567890

The next example illustrates the use of  the  Quoted-Printable  encoding
defined  in  [RFC-1522]  to  include non-ASCII characters in some of the
information returned, and the use of the optional  "name"  and  "source"
parameters.   Note the use of the "person" profile, as defined in [MIME-
WPP].

   Content-Type: application/directory;
           charset="iso-8859-1";
           source="ldap://cn=Bjorn%20Jensen,o=University%20of%20Michigan,c=US";
           name="cn=Bjorn Jensen, o=Universityr ofr Michigan, c=US";
           profile="person"
   Content-ID: <id3@host.com>
   Content-Transfer-Encoding: Quoted-Printable

   cn: Bj=F8rn Jensen
   sn: Jensen
   email: bjorn@umich.edu
   phone: +1 313 747-4454

The final example illustrates the use of the multipart/related  Content-
Type to include non-textual directory data.

   Content-Type: multipart/related;
           boundary=woof;
           type="application/directory";
           start="<id5@host.com>"
   Content-ID: <id4@host.com>

   --woof
   Content-Type: application/directory;
           charset="iso-8859-1";
           source="ldap://cn=Bjorn%20Jensen,o=University%20of%20Michigan,c=US"
   Content-ID: <id5@host.com>
   Content-Transfer-Encoding: Quoted-Printable

   cn: Bj=F8rn Jensen
   sn: Jensen
   email: bjorn@umich.edu
   image:: <id6@host.com>



Howes & Smith                                                   [Page 7]


Expires July 1996                                         INTERNET DRAFT


   sound:: <id7@host.com>
   phone: +1 313 747-4454

   --woof
   Content-Type: image/jpeg
   Content-ID: <id6@host.com>

   <...image data...>

   --woof
   Content-Type: message/external-body;
           name="myvoice.au";
           site="myhost.com";
           access-type=ANON-FTP;
           directory="pub/myname";
           mode="image"

   Content-Type: audio/basic
   Content-ID: <id7@host.com>

   --woof--

8.  Registration of new profiles

This section defines procedures by which  new  profiles  are  registered
with  the  IANA  and made available to the Internet community. Note that
non-IANA profiles may be used by bilateral agreement, provided the asso-
ciated profile names follow the "X-" convention defined above.

The procedures defined here are designed to  allow  public  comment  and
review  of  new  profiles,  while  posing only a small impediment to the
definition of new profiles.

Registration of a new profile is accomplished by the following steps.

8.1.  Define the profile

A profile is defined by completing the following template.

      To: ietf-mime-direct@umich.edu
      Subject: Registration of application/directory MIME profile XXX

      Profile name:

      Profile purpose:

      Profile types:




Howes & Smith                                                   [Page 8]


Expires July 1996                                         INTERNET DRAFT


      Profile special notes (optional):

      Intended usage: (one of COMMON, LIMITED USE or OBSOLETE)

The explanation of what goes in each field in the template follows.

Profile name: The  name  of  the  profile  as  it  will  appear  in  the
application/directory MIME Content-Type "profile" header parameter.

Profile purpose: The purpose of the profile (e.g., to represent informa-
tion  about  people,  printers, documents, etc.). Give a short but clear
description.

Profile types: The list of types associated with the profile.  This list
of types is to be expected but not required in the profile.  Other types
not mentioned in the profile definition may also be present.  Note  that
any  new  types  referenced by the profile must be defined separately as
described in Section 9.

Profile special notes: Any special notes about the profile, how it is to
be used, etc. This section of the template may also be used to define an
ordering on the types that appear in the Content-Type, if such an order-
ing is required.

8.2.  Post the profile definition

The profile description must be posted to  the  new  profile  discussion
list, ietf-mime-direct@umich.edu.

8.3.  Allow a comment period

Discussion on the new profile must be allowed to take place on the  list
for  a  minimum  of  two weeks. Consensus must be reached on the profile
before proceeding to step 4.

8.4.  Submit the profile for approval

Once the two-week comment period has elapsed, and the proposer  is  con-
vinced  consensus  has  been  reached  on  the profile, the registration
application should be submitted to the Profile  Reviewer  for  approval.
The  Profile Reviewer is appointed to the Application Area Directors and
may either accept or reject the profile registration. An accepted regis-
tration  should  be  passed  on  by the Profile Reviewer to the IANA for
inclusion in the official IANA profile registry. The registration may be
rejected  for  any  of  the  following  reasons. 1) Insufficient comment
period; 2) Consensus not reached; 3) Technical  deficiencies  raised  on
the  list  or  elsewhere have not been addressed. The Profile Reviewer's
decision to reject a profile may be appealed  by  the  proposer  to  the



Howes & Smith                                                   [Page 9]


Expires July 1996                                         INTERNET DRAFT


IESG,  or the objections raised can be addressed by the proposer and the
profile resubmitted.

9.  Profile Change Control

Existing profiles may be changed using the same process  by  which  they
were registered.

     Define the change

     Post the change

     Allow a comment period

     Submit the profile for approval

Note that the original author or any other interested party may  propose
a  change  to  an existing profile, but that such changes should only be
proposed when there are serious omissions or  errors  in  the  published
specification.  The Profile Reviewer may object to a change if it is not
backwards compatible, but is not required to do so.

Profile definitions can never be deleted from  the  IANA  registry,  but
profiles  which  are  nolonger  believed  to  be  useful can be declared
OBSOLETE by a change to their "intended use" field.

10.  Registration of new types

This section defines procedures by which new types are  registered  with
the  IANA.  Note that non-IANA types may be used by bilateral agreement,
provided the associated types names follow the "X-"  convention  defined
above.

The procedures defined here are designed to  allow  public  comment  and
review of new types, while posing only a small impediment to the defini-
tion of new types.

Registration of a new type is accomplished by the following steps.

10.1.  Define the type

A type is defined by completing the following template.

      To: ietf-mime-direct@umich.edu
      Subject: Registration of application/directory MIME type XXX

      Type name:




Howes & Smith                                                  [Page 10]


Expires July 1996                                         INTERNET DRAFT


      Type purpose:

      Type encoding:

      Type special notes (optional):

      Intended usage: (one of COMMON, LIMITED USE or OBSOLETE)

The meaning of each field in the template is as follows.

Type name: The name of the type, as it will appear in  the  body  of  an
application/directory  MIME  Content-Type "type: value" line to the left
of the colon ":".

Type purpose: The purpose of the type (e.g., to represent a name, postal
address, IP address, etc.). Give a short but clear description.

Type encoding: The encoding a value of the type must have in the body of
an  application/directory  MIME  Content-Type.  This description must be
precise and must not violate the general encoding rules defined in  sec-
tion 5 of this document.

Type special notes: Any special notes about the type, how it  is  to  be
used, etc.

10.2.  Post the type definition

The type description must be posted to the  new  type  discussion  list,
ietf-mime-direct@umich.edu.

10.3.  Allow a comment period

Discussion on the new type must be allowed to take place on the list for
a  minimum  of  two  weeks. Consensus must be reached on the type before
proceeding to step 4.

10.4.  Submit the type for approval

Once the two-week comment period has elapsed, and the proposer  is  con-
vinced consensus has been reached on the type, the registration applica-
tion should be submitted to the Profile Reviewer for approval.  The Pro-
file  Reviewer  is  appointed  to the Application Area Directors and may
either accept or reject the type registration. An accepted  registration
should be passed on by the Profile Reviewer to the IANA for inclusion in
the official IANA profile registry. The registration may be rejected for
any  of  the  following reasons. 1) Insufficient comment period; 2) Con-
sensus not reached; 3) Technical deficiencies  raised  on  the  list  or
elsewhere  have  not  been addressed. The Profile Reviewer's decision to



Howes & Smith                                                  [Page 11]


Expires July 1996                                         INTERNET DRAFT


reject a type may be appealed by the proposer to the IESG, or the objec-
tions raised can be addressed by the proposer and the type resubmitted.

11.  Type Change Control

Existing types may be changed using the same process by which they  were
registered.

     Define the change

     Post the change

     Allow a comment period

     Submit the type for approval

Note that the original author or any other interested party may  propose
a  change to an existing type, but that such changes should only be pro-
posed when there are  serious  omissions  or  errors  in  the  published
specification.  The Profile Reviewer may object to a change if it is not
backwards compatible, but is not required to do so.

Type definitions can never be deleted from the IANA registry, but  types
which  are  nolonger believed to be useful can be declared OBSOLETE by a
change to their "intended use" field.

12.  Security Considerations

Internet mail is subject to many well known security attacks,  including
monitoring,  replay,  and forgery. Care should be taken by any directory
service in allowing information  to  leave  the  scope  of  the  service
itself, where any access controls can no longer be guaranteed.  Applica-
tions should also take care  to  display  directory  data  in  a  "safe"
environment (e.g., PostScript-valued types).

13.  Acknowledgements

This material is based upon work supported by the National Science Foun-
dation under Grant No. NCR-9416667.  The registration procedures defined
here were shamelessly lifted from the MIME registration draft.

14.  Bibliography

[RFC-1777]Yeong, W., Howes, T., Kille, S., "Lightweight Directory Access
          Protocol", Request for Comment (RFC) 1777, March 1995.

[RFC-1778]Howes, T., Kille, S., Yeong, W., Robbins,  C.J.,  "The  String
          Representation  of  Standard  Attribute Syntaxes", Request for



Howes & Smith                                                  [Page 12]


Expires July 1996                                         INTERNET DRAFT


          Comment (RFC) 1778, March 1995.

[RFC-822] Crocker, D., "Standard for the Format of  ARPA  Internet  Text
          Messages", STD 11, RFC 822, August 1982.

[RFC-1521]Borenstein, N., Freed, N., "MIME (Multipurpose  Internet  Mail
          Extensions) Part One: Mechanisms for Specifying and Describing
          the Format of Internet Message Bodies",  RFC  1521,  September
          1993.

[RFC-1522]Moore, K., "MIME (Multipurpose Internet Mail Extensions)  Part
          Two:  Message Header Extensions for Non-ASCII Text", RFC 1522,
          September 1993.

[RFC-1872]Levinson, E., "The MIME Multipart/Related  Content-type,"  RFC
          1872, December 1995.

[MIME-REG]Freed, N., Postel, J., "Multipurpose Internet Mail  Extensions
          (MIME)  Part  Four:  Registration  Procedures," Internet-Draft
          draft-ietf-822ext-mime-reg-02.txt, December 1995.

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

[RFC-1835]Deutsch, P., Schoultz, R., Faltstrom, P., Weider, C.,  "Archi-
          tecture of the WHOIS++ service", August 1995.

[RFC-1738]Berners-Lee, T., Masinter, L., McCahill, M., "Uniform Resource
          Locators (URL)", RFC 1738, December 1994.

[MIME-WPP]Howes, T., Smith, M., "A White Pages Person  Profile  for  the
          application/directory   MIME   Content-Type",   Internet-Draft
          draft-ietf-asid-mime-person-00.txt, January, 1996.

15.  Author's Address

   Tim Howes
   University of Michigan
   535 W William St.
   Ann Arbor, MI 48103-4943
   USA
   +1 313 747-4454
   tim@umich.edu

   Mark Smith
   University of Michigan
   535 W William St.



Howes & Smith                                                  [Page 13]


Expires July 1996                                         INTERNET DRAFT


   Ann Arbor, MI 48103-4943
   USA
   +1 313 764-2277
   mcs@umich.edu















































Howes & Smith                                                  [Page 14]