Network Working Group Frank Dawson Internet Draft Mike O'Brien Lotus/Iris Associates Expires January 1998 July 8, 1997 The vCard Schema For Use In LDAPv3 draft-ietf-asid-ldapv3schema-vcard-00.txt Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, andits 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. Internet-Drafts may be updated, replaced, or made obsolete by other documents at any time. It is not appropriate to use Internet-Drafts as reference material or to cite them other than as a "working draft" or "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). Distribution of this document is unlimited. Abstract The Lightweight Directory Access Protocol (LDAP) [LDAPV3] is gaining widespread acceptance as a method for accessing Internet directories. Many of the LDAP clients accessing these directories also provide support for emitting the directory information in the form of a vCard electronic business card object. This memo defines a new X.500 object class, called the vCardObject, that extends the X.521 standard organizationalPerson and residentialPerson in order to provide a unique LDAP schema for accessing Internet directories in terms of the vCard attributes. The schema defined by this memo should be used when accessing a directory via LDAP Version 3 and searching or retrieving directory information based on vCard related attributes. The schema describes the attribute types and object classes that have a 1-to-one correspondence with vCard properties. This schema may also be used to define a set of object classes and attributes for storing metadata and binding information for a directory entry that closely follows the vCard object in directories that support LDAP. Dawson, O'Brien 1 ExpiresJanuary 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 1. Introduction The Lightweight Directory Access Protocol [LDAPV3] defines a standard protocol for accessing Internet directory services. A common purpose for such directory services is the collection of directory information related to people and resources. The vCard Electronic Business Card Format [VCARD] defines a standard format for exchanging information about people and resources. These two standards are linked by their technical foundations on the International Telecommunications Union Recommendations for The Directory Services [X500]. However, up to this point a more formal correlation between the two standards has been missing. This memo links the two standards by defining the LDAP schema to be used for LDAP-based access to a directory, when the resultant information is intended to be in the form of the attributes that make up a vCard object. The [VCARD] specification defines a relatively flat schema. Each instance of a vCard is a container for a set of peer attributes, which vCard calls properties. These attributes describe various facets of a physical person or resource in terms of their identification, delivery addressing, telecommunications addressing, geographical, organizational, explanatory and security properties. Additionally, non-standardized, implementation-specific attributes may be present. With minor exceptions, all of the features of the [VCARD] specification are supported by this schema. 2. Notation The notation used to describe object classes and attribute types in this memo is the same that is used in [LDAPSYN]. The BNF used in this memo is the same as in [RFC822]. The use of the terms attribute and property are used interchangeably in this memo. The object identifier (OID) used by this schema is rooted at "1.3.6.1.4.1.2309.1.1.1.1". The Internet Mail Consortium (IMC) is the authority for the name spaced under this root object identifier. 3. Object Naming All vCardObject objects must have the formattedName as their naming attribute. This attribute provides the RDN for the object. This attribute is based on the Common Name attribute of [X.500], as defined in [VCARD]. Values should adhere to the guidelines for the Common Name attribute, as specified in [LDAPV3]. In addition, the uniqueID attribute may be present to provide a method for correlating different vCardObject objects that refer to the same physical person or resource, yet contain differing descriptions. For example, a single person or resource might be described by a Canadian-French language-based vCardObject and also an US-English language-based vCardObject. This would be accomplished by Dawson, O'Brien 2 Expires January 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 both vCardObjects containing the uniqueID property with the same value. The uniqueID attribute is also used to refer to the vCardObject corresponding to the physical person or resource in the agent property. 4. Grouping The [VCARD] specification supports to forms of grouping or collections. The "vCard Grouping" capability permits a vCardObject to be the container for a sequence of one or more vCardObjects. For example a vCardObject describing a work group might consist of the vCardObjects for each member of that work group. The vCard Grouping is not supported by this memo. The "Property Grouping" capability permits individual attributes within a vCard object to be further grouped by the pre-concatenation of a textual, group label. For example the telephone number and delivery label for a vacation residence might be prefixed with a group label of "VACATION.". Property Grouping is not supported by this memo. 5. Structured Property Values Some of the attributes defined by the [VCARD] specification consist of multiple components. Structured attribute values are also supported by this schema. The components are separated by either the "$" or "#" character. 6. Property Parameters The [VCARD] specification allows attribute values to be qualified with "property parameters". For example, "home" and "office" telephone numbers can be distinguished by the property parameters "TYPE=HOME" and "TYPE=OFFICE" being applied to the respective home and office telephone number values. Property parameters are supported using attribute description options, as defined in [LDAPV3]. 6.1 Property Value Types The [VCARD] specification provides for the optional specification of the attribute value data type as a property parameter. The data type of all attributes defined by this schema are implicitly defined by their attribute type description. The property value parameter type is not further supported by this schema. 6.2 Encoding Options The default encoding or format for vCardObject attribute values is 8bit textual data. The encoding may be overridden for an individual property value by the specification of an encoding option on the attribute description. These options allow for the return of the attribute value in a format other than the default textual format. Dawson, O'Brien 3 Expires January 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 These options may be specified only on the logo, photo and sound attributes defined by this schema. An encoding option is based on the following BNF: Encodeoption = ["encoding-"] binaryencode / b64encode Binaryencode = "binary" ;As defined by [LDAPV3] b64encode = "base64" ;As defined by [RFC2045] 6.2.1 Binary Encoding The "binary" option is as described in [LDAPV3]. 6.2.2 Base-64 Encoding The "base64" option overrides the default format for attribute values so that they are transferred as 7-bit text, thus making it safe to carry over restricted transports. [RFC2045] defines the encoding of this format. 6.3 Language Option The language used in the vCardObject attribute values may be explicitly specified for an individual property value by the specification of a language option on the attribute description. The language is specified as a string consistent with [RFC1766]. This option may be specified on any attribute defined by this schema. The language option is based on the following BNF: langoption = "language-" langtype langtype = For example, "comment;language-us-eng" for a Comment attribute description whose textual value is written in US English. 6.4 Image Format Option This option specifies the image image format for the photo and logo attributes value. The image format option must be specified only on the photo and logo attribute. These attributes must specify this option in order to specify the graphic image format of the photo or logo value. The image format option is based on the following BNF: imageoption = "format-" formattype formattype = Dawson, O'Brien 4 Expires January 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 For example, "photo;format-jpeg" for a Photo attribute description for a value in a JPEG image format. 6.5 Delivery Type Option This option specifies the characteristics of delivery address and delivery label attributes value. The delivery type option may be specified only in the deliveryAddress or deliveryLabel attributes. The delivery address type option is based on the following BNF: deliveroption = (["dom"] ;An domestic delivery / ["intl"]) ;An international delivery ["postal"] ;A postal delivery ["parcel"] ;A parcel delivery ["home"] ;A residential delivery ["work"] ;A business delivery ["pref"] ;A preferred delivery For example, "adr;dom;postal;parcel;home" for an attribute description for a domestic delivery address for a residence that is used for postal and parcel service delivery. 6.6 Telephone Type Option This option specifies the characteristics of telephone number attribute value. The telephone type option may be specified only in the telephoneNumber attribute. The telephone type option is based on the following BNF: teleoption = ["home"] ;A residential number ["work"] ;A business number ["voice"] ;A voice number ["fax"] ;A facsimile number ["msg"] ;A number with voice mail ( ["cell"] ;An analog cellular number / ["pager"] ;A pager number / ["pcs"] ;A digital PCS number / ["bbs"] ;A bulletin board system number / ["modem"] ;A number with a MODEM attached / ["car"] ;A car cellular number / ["isdn"] ;An ISDN SPID / ["video"]) ;A video conferencing number ["pref"] ;A preferred number For example, "tel;pref;work;voice;msg" for a Telephone Number property which is preferred over other telephone numbers for work. In addition, the telephone number is a voice line with voice mail support. Dawson, O'Brien 5 Expires January 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 6.7 Electronic Mail Type Option This option specifies the characteristics of electronic mail attribute value. The electronic mail type option may be specified only in the electronicMail attribute. The electronic mail type option is based on the following BNF: emailoption = (["internet"] ;An internet email address / ["x400"] ;A X.400 OR address / ["video"] ;A video conferencing number / [word] ) ;Any other email address type ["pref"] ;A preferred number word = 1*char ;A word For example, "email;internet" for an attribute description with a value that is an Internet, RFC822 address format. 6.8 Sound Format Type Option This option specifies the format of the sound attribute value. The sound format type option may be specified only in the sound attribute. The sound format type option is based on the following BNF: soundoption = For example, "sound;basic" for a Sound attribute description whose value is single channel audio encoded using 8bit ISDN mu-law [PCM] at a sample rate of 8000 Hz. 7. Object Definitions The following object classes are defined by this schema. LDAP servers should recognize the object classes listed in this section as values of the objectClass attribute. 7.1 Top This object class is the same as that defined in [LDAPX500]. (2.5.6.0 NAME 'top' ABSTRACT MUST objectClass) 7.2 Alias This object class is the same as that defined in [LDAPX500]. (2.5.6.1 NAME 'alias' SUP top STRUCTURAL MUST aliasedObjectName) Dawson, O'Brien 6 Expires January 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 7.3 VCard Object The vCardObject is a container for collecting together attributes describing a person or resource. (1.3.6.1.4.1.2309.1.1.1.1.1 NAME 'vCardObject' SUP top STRUCTURAL MUST formattedName MAY (structuredName $ photograph $ birthDate $ uid $ deliveryAddress $ deliveryLabel $ telephoneNumber $ eMail $ mailer $ timeZone $ globalPosition $ title $ role $ logo $ agent $ orgNameUnit $ comment $ revision $ sound $ url $ version $ key) 8. Attribute Type Definitions These attribute type descriptions are defined as follows. LDAP servers should recognize the attribute types defined in this section. 8.1 Identification Attributes 8.1.1 Formatted Name This attribute specifies the formatted text of the distinguished name associated with the vCardObject. This is the text that should be used to display the distinguish name. It may contain desired honorific prefixes, suffixes, titles, etc. This attribute corresponds to the [vCard] "FN" property. Implementations conforming to this memo must support this attribute. In addition, every directory entry must contain this attribute. (1.3.6.1.4.1.2309.1.1.1.1.2 NAME 'formattedName' DESC 'formatted name text' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 8.1.2 StructuredName This attribute specifies the structured text components of the name associated with the vCardObject. This attribute corresponds to the [vCard] "N" property. The attribute value consists of the Family Name, Given Names, Additional Names, Honorific Prefixes and Honorific Suffixes. The components are separated by "$" or "#" characters. (1.3.6.1.4.1.2309.1.1.1.1.3 NAME 'structuredName' DESC 'structured name components' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardName{255}' SINGLE-VALUE) Dawson, O'Brien 7 Expires January 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 8.1.3 Photograph This attribute specifies a photograph associated with the vCardObject. This attribute corresponds to the [vCard] "PHOTO" property. (1.3.6.1.4.1.2309.1.1.1.1.4 NAME 'photograph' DESC 'photograph' SYNTAX 'vCardImage' SINGLE-VALUE) 8.1.4 BirthDate This attribute specifies the birthdate associated with the vCardObject. This attribute corresponds to the [vCard] "BDAY" property. (1.3.6.1.4.1.2309.1.1.1.1.5 NAME 'birthDate' DESC 'birthdate' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardDate' SINGLE-VALUE) 8.1.5 Unique Identifier This attribute specifies a globally unique identifier associated with the vCardObject. This attribute corresponds to the [vCard] "UID" property. A person or resource may be represented by more than one vCardObject. For example, entries in different languages. This attribute is used to correlate the vCardObjects that refer to the same physical person or resource. (1.3.6.1.4.1.2309.1.1.1.1.6 NAME 'uid' DESC 'unique identifier' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 8.2 Delivery Addressing Attributes 8.2.1 DeliveryAddress This attribute specifies the structured text components of the deliver address associated with the vCardObject. This attribute corresponds to the [vCard] "ADR" property. The attribute value consists of the Extended Address, Post Office Box, Street Address, Locality or City, Region or State or Province, Postal Code and Country Name. If the address option indicates that the value is an international address, then the country component must be present. The components are separated by "$" or "#" characters. (1.3.6.1.4.1.2309.1.1.1.1.7 NAME 'deliveryAddress' DESC 'structured delivery address components' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardAddress{255}' SINGLE-VALUE) Dawson, O'Brien 8 Expires January 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 8.2.2 DeliveryLabel This attribute specifies the text for the delivery label associated with the vCardObject. This attribute corresponds to the [vCard] "LABEL" property. If the address option indicates that the value is an international address, then the country name must be present. (1.3.6.1.4.1.2309.1.1.1.1.8 NAME ' deliveryLabel' DESC 'delivery label' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardMultiLineString{1023}' SINGLE-VALUE) 8.2.3 TelephoneNumber This attributes specifies a telephone number associated with the vCardObject. This attribute corresponds to the [vCard] "TEL" property. The value should be specified in it's international form. (1.3.6.1.4.1.2309.1.1.1.1.9 NAME 'telephoneNumber' DESC 'telephone number' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardTelephone{32}' SINGLE-VALUE) 8.2.4 ElectronicMail This attribute specifies an electronic mail or messaging address associated with the vCardObject. This attribute corresponds to the [vCard] "EMAIL" property. 1.3.6.1.4.1.2309.1.1.1.1.10 NAME 'eMail' DESC 'electronic mail address' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 8.2.5 Mailer This attribute specifies the type of electronic mail software that is used by the person or resource associated described by the vCardObject. This attribute corresponds to the [vCard] "MAILER" property. (1.3.6.1.4.1.2309.1.1.1.1.11 NAME 'mailer' DESC 'electronic mail mailer' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 8.3 Geographical Attributes 8.3.1 TimeZone This attribute specifies the UTC offset for the nominal standard zone of the locale for the person or resource described by the vCardObject. This attribute corresponds to the [vCard] "TZ" property. Dawson, O'Brien 9 Expires January 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 (1.3.6.1.4.1.2309.1.1.1.1.12 NAME 'timeZone' DESC 'standard utc offset' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardTimeZone' SINGLE-VALUE) 8.3.2 GeoPosition This attribute specifies the longitude and latitude form of the global positioning information of the person or resource described by the vCardObject. This attribute corresponds to the [vCard] "GEO" property. (1.3.6.1.4.1.2309.1.1.1.1.13 NAME 'globalPosition' DESC 'global positioning information' EQUALITY vcCardFloatMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardPosition' SINGLE-VALUE) 8.4 Organizational Attributes 8.4.1 Title This attribute specifies the job title, functional position or function of the person or resource described by the vCardObject. This attribute corresponds to the [vCard] "TITLE" property. (1.3.6.1.4.1.2309.1.1.1.1.14 NAME 'title' DESC 'title' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 8.4.2 Role The attribute specifies the role, occupation or business category of the person or resource described by the vCardObject. This attribute corresponds to the [vCard] "ROLE" property. (1.3.6.1.4.1.2309.1.1.1.1.15 NAME 'role' DESC 'role' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 8.4.3 Logo This attribute specifies a graphical image of a logo associated with the vCardObject. This attribute corresponds to the [vCard] "LOGO" property. (1.3.6.1.4.1.2309.1.1.1.1.16 NAME 'logo' DESC 'logo' SYNTAX 'vCardImage' SINGLE-VALUE) Dawson, O'Brien 10 Expires January 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 8.4.4 Agent This attribute specifies the globally unique identifier of another vCardObject that describes a person or resource that will act on behalf of the person or resource described by this vCardObject. This attribute corresponds to the [vCard] "AGENT" property. (1.3.6.1.4.1.2309.1.1.1.1.17 NAME 'agent' DESC 'agent' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 8.4.5 OrgNameUnits This attribute specifies the text components of the organizational name and units of the person or resource associated with the vCardObject. This attribute corresponds to the [vCard] "ORG" property. The attribute value consists of the organizational name followed by any organizational units. The components are separated by "$" or "#" characters. (1.3.6.1.4.1.2309.1.1.1.1.18 NAME 'orgNameUnits' DESC 'organizational name and units' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardOrgNameUnit{255} SINGLE-VALUE) 8.5 Explanatory Attributes 8.5.1 Comment This attribute specifies a textual comment or note associated with the vCardObject. This attribute corresponds to the [vCard] "NOTE" property. (1.3.6.1.4.1.2309.1.1.1.1.19 NAME 'comment DESC 'comment or note' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardMultiLineString{1023}' SINGLE-VALUE) 8.5.2 LastRevision The attribute specifies the date and time that the vCardObject was last revised. This attribute corresponds to the [vCard] "REV" property. (1.3.6.1.4.1.2309.1.1.1.1.20 NAME 'revision' DESC 'date and time of last revision' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardDateTime' SINGLE-VALUE) Dawson, O'Brien 11 Expires January 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 8.5.3 Sound This attribute specifies a digital sound content that annotates some aspect of the person or resource described by the vCardObject. This attribute corresponds to the [vCard] "SOUND" property. (1.3.6.1.4.1.2309.1.1.1.1.21 NAME 'sound' DESC 'sound' SYNTAX 'vCardSound' SINGLE-VALUE) 8.5.4 URL This attribute specifies a uniform resource locator (URL) associated with the vCardObject. This attribute corresponds to the [vCard] "URL" property. This URL will allow subsequent access to the directory containing the vCardObject. The URL may be in the format defined for a LDAP URL by [LDAPURL]. (1.3.6.1.4.1.2309.1.1.1.1.22 NAME 'url' DESC 'url' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 8.5.5 Version This attribute specifies the version of [VCARD] represented by the schema used in the vCardObject. This attribute corresponds to the [vCard] "VERSION" property. (1.3.6.1.4.1.2309.1.1.1.1.23 NAME 'version' DESC 'agent' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 8.6 Security Attributes 8.6.1 PublicKey The attribute specifies a public key or authentication certificate associated with the vCardObject. This attribute corresponds to the [vCard] "KEY" property. If the value of the attribute is a public key, then the value is encoded in the vCardString syntax. If the value of the attribute is a certificate, then the binary option must be specified and the value is an octet-string. (1.3.6.1.4.1.2309.1.1.1.1.24 NAME 'key' DESC 'key or certificate' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 9. Syntax Definitions The following syntax descriptions are defined by this schema. New syntax definitions were defined by this memo in order to assure an Dawson, O'Brien 12 Expires January 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 unambiguous rendering of the directory information in a syntax consistent with the [VCARD]. Reuse of existing syntax definitions from either X.500 or other person schemas would not guarantee delivery of the directory information in a syntax consistent with [VCARD]. For example, the existing date/time syntax is not consistent with ISO 8601 or the emerging Internet date/time specification. The directory string syntax does not convey the form of the multi-line label text. Servers should recognize all the syntax definitions described in this memo. 9.1 VCardString Values with the vCardString syntax are encoded in the [UTF8] form. Servers and clients must be prepared to receive encodings of arbitrary Unicode characters. Values with the vCardString syntax are encoded according to the following BNF: string = *char char = (1.3.6.1.4.1.2309.1.1.1.1.25 DESC 'vCardString') 9.2 vCardName Values with the vCardName syntax are encoded as if they were vCardString types. The value is structured text consisting of the family name component, the given names component, the other names component, honorific prefix components and honorific suffix components. The value is encoded according to the following BNF: name = family delim given [delim other [delim prefix [delim sufix]]] space = 1*" " delim = "$" / "#" family = 1*char given = 1*char other = 1*char / 1*char [space other] prefix = 1*char / 1*char [space prefix] suffix = 1*char / 1*char [space suffix] (1.3.6.1.4.1.2309.1.1.1.1.26 DESC 'vCardName') 9.3 vCardImage Values with the vCardImage syntax are encoded as graphical images in the format specified by the image type option. This can be any IANA registered graphical image format. These binary data formats must either be passed as a binary object using the binary encoding option or as packed binary text data when the base64 encoding option is specified. Dawson, O'Brien 13 Expires January 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 (1.3.6.1.4.1.2309.1.1.1.1.27 DESC 'vCardImage') 9.4 vCardDate Values with the vCardDate syntax are encoded as if they were vCardString types. The values are text represenations of the calendar date as specified in ISO 8601 and by the following BNF: date = fulldate digit = ;0-9 date-fullyear = 4digit date-month = 2digit ;01-12 date-mday = 2digit ;01-28, 01-29, 01-30, 01-31 ;based on month/year full-date = date-fullyear date-month date-mday For example, the following represents July 14, 1997: 19970714 (1.3.6.1.4.1.2309.1.1.1.1.28 DESC 'vCardDate') 9.5 vCardDateTime Values with the vCardDateTime syntax are encoded as if they were vCardString types. The value is the text represenations of the calendar date and time of day as specified in ISO 8601 and by the following BNF: date-time = date "T" time ;As specified above and below digit = ;0-9 time-hour = 2digit ;00-23 time-minute = 2digit ;00-59 time-second = 2digit ;00-59 time-numzone = ("+" / "-") time-hour time-minute time-zone = "Z" / time-numzone full-time = time-hour time-minute time-second [time-zone] time = fulltime (1.3.6.1.4.1.2309.1.1.1.1.29 DESC 'vCardDateTime') 9.6 vCardAddress Values with the vCardAddress syntax are encoded as if they were vCardString types. The value is structured text consisting of the extended component, post office box component, street address component, locality component, region component, postal code component and country component. If the address option includes indicates that the value is an international address, then the country component must be present. The syntax is specified by the following BNF: Dawson, O'Brien 14 Expires January 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 address = [extcomp] delim [pobcomp] delim [stcomp] delim [loccomp] delim [regcomp] delim [codcomp] [delim ctrcomp] delim = "$" / "#" space = *" " char = phrase = 1*char / 1*char *(space 1*char) extcomp = phrase ;Extended address pobcomp = phrase ;Post Office Box stcomp = phrase ;Street address loccomp = phrase ;Locality or city name regcomp = phrase ;Region, state or province name codcomp = phrase ;Postal code ctrcomp = phrase ;Country name or code (1.3.6.1.4.1.2309.1.1.1.1.30 DESC 'vCardAddress') 9.7 vCardMultiLineString Value with the vCardMultiLineString syntax are encoded as if they were vCardString types. The value may consist of multiple lines of text as defined in [VCARD]. However, the multiple line values are specified in this syntax by the following BNF: char = space = 1*" " delim = "$" / "#" linetext = 1*char *(space 1*char) multiline = 1*linetext (1.3.6.1.4.1.2309.1.1.1.1.31 DESC 'vCardMultiLineString') 9.8 vCardTimeZone Values with the vCardTimeZone syntax are encoded as if they were vCardString types. The value is the text represenations of the UTC offset specified in ISO 8601 and by the following BNF: time-numzone = ("+" / "-") time-hour time-minute digit = ;0-9 time-hour = 2DIGIT ;00-23time-minute = 2DIGIT ;00-59 (1.3.6.1.4.1.2309.1.1.1.1.32 DESC 'vCardTimeZone') Dawson, O'Brien 15 Expires January 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 9.9 vCardTelephone Values with the vCardTelephone syntax are encoded as if they were vCardString types. Telephone numbers are recommended to be in international form. (1.3.6.1.4.1.2309.1.1.1.1.33 DESC 'vCardTelephone') 9.10 vCardPosition Values with the vCardPosition syntax are encoded as if they were vCardString types. The value is structured text consisting of the floating point longitude global position followed by the latitude global position and by the following BNF: position = float delim float delim = "$" / "#" digit = ;0-9 float = ["+" / "-"] *DIGIT ["." *DIGIT] (1.3.6.1.4.1.2309.1.1.1.1.34 DESC 'vCardPosition') 9.11 vCardOrgNameUnit Values with the vCardOrgNameUnit syntax are encoded as if they were vCardString types. The value is structured text consisting of the organizational name component followed by any organization unit names. The value is encoded according to the following BNF: organ = orgname [orgunit] delim = "$" / "#" orgname = 1*char orgunit = delim 1*char [orgunit] (1.3.6.1.4.1.2309.1.1.1.1.35 DESC 'vCardOrgNameUnit') 9.12 vCardSound Values with the vCardSound syntax are encoded as digital audio in the format specified by the sound type option. This can be any IANA registered digital audio format. This binary data must either be passed as a binary object using the binary encoding option or as packed binary text data when the base64 encoding option is specified. (1.3.6.1.4.1.2309.1.1.1.1.36 DESC 'vCardSound') 10. Matching Rule Definitions The vCardObject data is primarily encoded as textual information. Therefore, only the following matching rules from [LDAPSYN] are required by this schema. Dawson, O'Brien 16 Expires January 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 caseIgnoreMatch caseIgnoreSubstringMatch Servers should allow all matching rules listed in this section to be used in the extensibleMatch. In general, these servers should allow matching rules to be used with all attribute types known to the server, when the assertion syntax of the matching rule is the same at the value syntax of the attribute. Servers may implement additional matching rules. For all these rules, the assertion syntax is the same as the value syntax. When performing the caseIgnoreMatch and caseIgnoreSubstringMatch, multiple adjoining whitespace characters are treated the same, as an individual space, and leading and trailing whitespace is ignored. 11. Example Usage The following is an example of LDAP URL query to get the formatted name and work telephone number for anyone in the USA named Smith. ldap:///c=US?formattedName,telephoneNumber;work??(formattedName= Smith*) The following is an example of a vCardObject using the LDIF format of [LDIF]. dn: formattedName = John Smith objectClass: top objectClass: vCardObject formattedName: John Smith structuredName: Smith$John uid: 19970708T113000-ds01@host.com-10373AFBC38391 deliveryAddress;work;postal: MS101$PO Box 1234$1024 B St.$Columbia$MO$65201$USA deliveryLabel;work;parcel:1024 B St.$Columbia, MO 65201$USA telephoneNumber;work;msg;voice;pref: +1-314-555-1234 telephoneNumber;work;voice:+1-314-555-1236 telephoneNumber;work;fax:+1-314-555-9876 eMail: john.smith@host1.com title: V.P. Engineering orgNameUnits: TigerSoft$MidWest Region$MSG$Financial Services version: 2.1 12. Security Considerations In addition to the security considerations specified in [LDAPV3] the following considerations should be reviewed by implementors of this memo. Dawson, O'Brien 17 Expires January 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 12.1 Disclosure Attributes of directory entries are used to provide descriptive information about the real-word objects they represent, which be people or resources. Most countries have privacy laws regarding the publication of information about people. 12.2 Security Concerns The [VCARD] specification provides a robust schema for representing information about people or resources. Publication of this information in Internet directories providing LDAP support for this schema may provide an inadvertent means for unauthorized use of the information once it has been retrieved. Care should be taken in managing both the access of directories containing personal data. In addition, the flexible nature of the vCard format may facilitate the spoofing of a person or resource or other such fraudulent activities by an untrusted individual. Care should be taken to authenticate the originator of any vCard based personal data. 13. Acknowledgments This document is based on the [VCARD] specification. This work is heavily influenced by the early contributions of Roland Alden, Gary Hand, Pat Megowan and others who helped draft the original specification. In addition, the following have participated in the review and discussion of this memo: Roland Alden, Harald Alvestrand, Mike Dugan, Alec Dun, David Goodman, Bruce Greenblatt, Frode Hernes, Paul Hoffman, Tim Howes, Burton Lee, Chris Newman, Dave Mease, Vinod Seraphin, Richard Shusterman, and Mark Wahl. 14. Bibliography [X500] ITU-T Recommendations. X.500-X.525 Series, "The Directory Services", 1993. [LDAPSYN] M. Wahl, A. Coulbeck, T. Howes, S. Kille, "Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions", INTERNET-DRAFT , June 1997. [LDAPURL] T. Howe, M. Smith, "The LDAP URL Format", INTERNET-DRAFT , June 1997. Dawson, O'Brien 18 Expires January 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 [LDAPX500] M. Wahl, "A Summary of the X.500(93) User Schema for use with LDAPv3", INTERNET-DRAFT , March 1997. [LDIF] G. Good, "The LDAP Data Interchange Format (LDIF) _ Technical Specification", INTERNET-DRAFT . [RFC822] D. Crocker, "Standard of the Format of ARPA-Internet Text Messages", STD 11, RFC 822, August 1982. [RFC1766] H. Alvestrand, " Tags for the Identification of Languages", RFC 1766, March 1995. [RFC2045] N. Freed, N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996. [UTF8] F. Yergeau, "UTF-8, a transformation format of Unicode and ISO 10646", RFC 2044, October 1996. [US-ASCII] Coded Character Set--7-bit American Standard Code for Information Interchange, ANSI X3.4-1986. [VCARD] F. Dawson, T. Howes, "vCard MIME Directory Profile", INTERNET-DRAFT , March 1997. 15. Author's Address The following address information is provided in the IETF vCard, Electronic Business Card, format. BEGIN:VCARD VERSION:2.1 FN:Frank Dawson ORG:Lotus Development Corporation ADR;WORK;POSTAL;PARCEL:;;6544 Battleford Drive;Raleigh; NC;27613-3502;USA TEL;WORK;MSG:+1-919-676-9512 TEL;WORK;FAX:+1-919-676-9564 EMAIL;INTERNET;WORK;PREF:Frank_Dawson@Lotus.com EMAIL;INTERNET:fdawson@earthlink.net URL:http://home.earthlink.net/~fdawson END:VCARD BEGIN:VCARD VERSION:2.1 FN:Mike O'Brien ORG:Iris Associates ADR;WORK;POSTAL;PARCEL:;; One Technology Park Drive;Westford; MA; 01886;USA TEL;WORK;MSG:+1-508-692-9265 TEL;WORK;FAX:+1-919-692-7365 EMAIL;INTERNET;WORK:MOBrien@iris.com END:VCARD Dawson, O'Brien 19 Expires January 1998 Internet Draft The vCard Schema For Use In LDAPv3 July 8, 1997 Dawson, O'Brien 20 Expires January 1998