Internet Draft LDAP vCard Schema August 22, 2000 Frank Dawson/Lotus Doug Royer/Software.com Internet Draft Expires six months from: August 22, 2000 LDAP vCard Schema. draft-royer-vcard-ldap-00.txt Status of this Memo This work directly derived from draft-ietf-asid-ldapv3schema- vcard-00.txt by Frank Dawson and Mike O'Brien, July 8, 1997. (An expired draft.) It is hoped that this draft and input from the IETF will result in a standard online address book format. NOTE: Comments are welcome. We just started. This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. 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 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 http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. 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. The schema defined by this memo should be used when accessing a directory via LDAP Version 3 and the X.500 family of protocols 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. 1 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 1. Introduction This specification proposes a mapping between LDAP and vCard for use as an online address book. 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 ABNF used in this memo is the same as in [ABNF]. 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 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 2 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 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 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]. 7. 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. 3 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 8. 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. 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 ABNF: Encodeoption = ["encoding-"] binaryencode / b64encode Binaryencode = "binary" ;As defined by [LDAPV3] b64encode = "base64" ;As defined by [RFC2045] 9. Binary Encoding The "binary" option is as described in [LDAPV3]. 10. 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. 11. Language Option [NOTE - this is old text - may just refer to RFC2596] 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 ABNF: langoption = "language-" langtype langtype = For example, "vcardNOTE;language=us-eng" for a Comment attribute description whose textual value is written in US English. 12. Image Format Option This option specifies the 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 ABNF: 4 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 imageoption = "format-" formattype formattype = For example, "photo;format=jpeg" for a Photo attribute description for a value in a JPEG image format. 13. 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 vcardADR or vcardLABEL attributes. The delivery address type option is based on the following ABNF: 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. 14. Telephone Type Option This option specifies the characteristics of telephone number attribute value. The telephone type option may be specified only in the vcardTEL attribute. The telephone type option is based on the following ABNF: 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. 5 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 15. 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 ABNF: 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. 16. 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 ABNF: 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. 17. 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. 17.1. 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 vcardFN MAY (vcardN $ vcardPHOTO $ vcardBDAY $ vcardUID $ vcardADR $ vcardLABEL $ vcardTEL $ vcardEMAIL $ vcardMAILER $ vcardTZ $ vcardGEO $ vcardTITLE $ vcardROLE $ vcardLOGO $ vcardAGENT $ vcardORG $ vcardNOTE $ vcardREV $ vcardSOUND $ url $ vcardVERSION $ vcardKEY ) 6 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 18. Attribute Type Definitions These attribute type descriptions are defined as follows. LDAP servers should recognize the attribute types defined in this section. 19. Identification Attributes 19.1. vcardFN This attribute specifies the formatted text corresponding to the name of the object the vCard represents. Implementations conforming to this memo MUST support this attribute. In addition, every directory entry MUST contain this attribute. This is the text that should be used to display the name. It may contain desired honorific prefixes, suffixes, titles, etc. This attribute corresponds to the [vCard] "FN" property. (1.3.6.1.4.1.2309.1.1.1.1.2 NAME 'vcardFN' DESC 'formatted name text' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 19.2. vcardN 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 'vcardN' DESC 'structured name components' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vcardNAMEtype{255}' SINGLE-VALUE) 19.3. vcardPHOTO This attribute specifies a PHOTO 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 'vcardPHOTO' DESC 'photograph' SYNTAX 'vCardImage' SINGLE-VALUE) 19.4. vcardBDAY This attribute specifies the BDAY 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 'vcardBDAY' DESC 'vcardBDAY' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardDate' SINGLE-VALUE) 7 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 19.5. vcardUID 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 'vcardUID' DESC 'unique identifier' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 20. Delivery Addressing Attributes 20.1. vcardADR 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 'vcardADR' DESC 'structured delivery address components' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardAddress{255}' SINGLE-VALUE) 20.2. vcardLABEL 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 ' vcardLABEL' DESC 'delivery label' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardMultiLineString{1023}' SINGLE-VALUE) 20.3. vcardTEL 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 'vcardTEL' DESC 'telephone number' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch 8 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 SYNTAX 'vCardTelephone{32}' SINGLE-VALUE) 20.4. vcardEMAIL 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 'vcardEMAIL' DESC 'electronic mail address' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 20.5. vcardMAILER 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 'vcardMAILER' DESC 'electronic mail MAILER' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 21. Geographical Attributes 21.1. vcardTZ 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. (1.3.6.1.4.1.2309.1.1.1.1.12 NAME 'vcardTZ' DESC 'standard utc offset' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardVcTZ' SINGLE-VALUE) 21.2. vcardGEO 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 'vcardGEO' DESC 'global positioning information' EQUALITY vcCardFloatMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardPosition' SINGLE-VALUE) 22. Organizational Attributes 22.1. vcardTITLE 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. 9 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 (1.3.6.1.4.1.2309.1.1.1.1.14 NAME 'vcardTITLE' DESC 'title' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 22.2. vcardROLE 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 'vcardROLE' DESC 'role' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 22.3. vcardLOGO 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 'vcardLOGO' DESC 'logo' SYNTAX 'vCardImage' SINGLE-VALUE) 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 'vcardAGENT' DESC 'agent' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 22.4. vcardORG 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 'vcardORG' DESC 'organizational name and units' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardOrgNameUnit{255} SINGLE-VALUE) 10 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 23. Explanatory Attributes 23.1. vcardNOTE 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 'vcardNOTE DESC 'comment or note' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardMultiLineString{1023}' SINGLE-VALUE) 23.2. vcardREV 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 'vcardREV' DESC 'date and time of last revision' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardDateTime' SINGLE-VALUE) 23.3. vcardSOUND 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 'vcardSOUND' DESC 'sound' SYNTAX 'vCardSound' SINGLE-VALUE) 23.4. vcardURL 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 'vcardURL' DESC 'url' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 23.5. vcardVERSION 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 'vcardVERSION' DESC 'version' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 'vCardString{255}' SINGLE-VALUE) 11 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 24. Security Attributes 24.1. 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) 24.2. Syntax Definitions The following syntax descriptions are defined by this schema. New syntax definitions were defined by this memo in order to assure an 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. 24.3. 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 ABNF: string = *char char = (1.3.6.1.4.1.2309.1.1.1.1.25 DESC 'vCardString') 24.4. vcardNAMEtype Values with the vcardNAMEtype 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 ABNF: name = family delim given [delim other [delim prefix 12 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 [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 'vcardNAMEtype') 24.5. 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. (1.3.6.1.4.1.2309.1.1.1.1.27 DESC 'vCardImage') 24.6. vCardDate Values with the vCardDate syntax are encoded as if they were vCardString types. The values are text representations of the calendar date as specified in ISO 8601 and by the following ABNF: 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') 24.7. vCardDateTime Values with the vCardDateTime syntax are encoded as if they were vCardString types. The value is the text representations of the calendar date and time of day as specified in ISO 8601 and by the following ABNF: date-time = date "T" time ;As specified above and below 13 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 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') 24.8. 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 ABNF: 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') 24.9. 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 ABNF: char = space = 1*" " delim = "$" / "#" linetext = 1*char *(space 1*char) multiline = 1*linetext 14 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 (1.3.6.1.4.1.2309.1.1.1.1.31 DESC 'vCardMultiLineString') 24.10. vCardTZ: Values with the vCardTZ syntax are encoded as if they were vCardString types. The value is the text representations of the UTC offset specified in ISO 8601 and by the following ABNF: time-numzone = ("+" / "-") time-hour time-minute digit = ;0-9 time-hour = 2DIGIT ;00-2 time-minute = 2DIGIT ;00-59 (1.3.6.1.4.1.2309.1.1.1.1.32 DESC 'vCardTZ') 24.11. 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') 24.12. 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 ABNF: 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') 24.13. 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 ABNF: 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') 15 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 24.14. 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') 25. 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. 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. 26. 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?vcardFN,vcardTEL;work??(vcardFN=Smith*) The following is an example of a vCardObject using the LDIF format of [LDIF]. dn:vcardFN = John Smith objectClass:top objectClass:vCardObject vcardFN:John Smith vcardN:Smith$John vcardUID:19970708T113000-ds01@host.com-10373AFBC38391 vcardADR;work;postal: MS101;PO Box 1234;1024 B St.;Columbia;MO;65201;USA vcardLABEL;work;parcel:1024 B St.$Columbia, MO 65201;USA vcardTEL;work;msg;voice;pref:+1-314-555-1234 vcardTEL;work;voice:+1-314-555-1236 16 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 vcardTEL;work;fax:+1-314-555-9876 vcardEMAIL:john.smith@host1.com vcardTITLE:V.P. Engineering vcardORG:TigerSoft;MidWest Region;MSG;Financial Services vcardVERSION:3.0 27. Security Considerations In addition to the security considerations specified in [LDAPV3] the following considerations should be reviewed by implementors of this memo. 27.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. 27.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. 28. Acknowledgments: This document is based on the [VCARD] specification. This work is heavily influenced by the early contributions of Roland Alden, Mike O'Brien, 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. 29. Bibliography [ABNF] D. Crocker, P. Overell, "Augmented BNF for Syntax Specifications: ABNF", RFC 2234, November 1997 [X500] ITU-T Recommendations. X.500-X.525 Series, "The Directory 17 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 Services", 1993. [LDAPSYN] M. Wahl, A. Coulbeck, T. Howes, S. Kille, "Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions", RFC 2252, December 1997 [LDAPURL] T. Howe, M. Smith, "The LDAP URL Format", RFC 2255, December 1997 [LDAPV3] M. Wahl, S. Kille, T. Howes, "Lightweight Directory Access Protocol (Version 3)", RFC 2251, December 1997 [LDAPX500] M. Wahl, "A Summary of the X.500(93) User Schema for use with LDAPv3", RFC 2256, December 1997 [LDIF] G. Good, "The LDAP Data Interchange Format (LDIF) Technical Specification", RFC 2849, June 2000 [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", RFC 2426, September 1998 30. Author's Address The following address information is provided in the IETF vCard, Electronic Business Card, format. BEGIN:VCARD VERSION:3.0 FN:Frank Dawson ORG:Lotus Development Corporation ADR;TYPE=WORK,POSTAL,PARCEL:;;6544 Battleford Drive;Raleigh; NC;27613-3502;USA TEL;TYPE=WORK,MSG:+1-919-676-9512 TEL;TYPE=WORK,FAX:+1-919-676-9564 EMAIL;TYPE=INTERNET,WORK,PREF:Frank_Dawson@Lotus.com EMAIL;TYPE=INTERNET:fdawson@earthlink.net URL:http://home.earthlink.net/~fdawson 18 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 END:VCARD BEGIN:VCARD VERSION:3.0 FN:Doug Royer ORG:Software.com ADR;TYPE=WORK,POSTAL,PARCEL:;Suite 106;530 E. Montecito Street; Santa Barbara;CA;93101;USA TEL;TYPE=WORK,MSG:+1-805-957-1790 TEL;TYPE=WORK,FAX:+1-805-957-1544 EMAIL;TYPE=INTERNET,WORK,PREF:Frank_Dawson@Lotus.com EMAIL;TYPE=INTERNET:fdawson@earthlink.net URL:http://home.earthlink.net/~fdawson END:VCARD Copyright Statement "Copyright (C) The Internet Society (date). 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 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 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." 19 Expires January 2001 Internet Draft LDAP vCard Schema August 22, 2000 Table of Contents 1. Introduction ................................................. 2 2. Notation ..................................................... 2 3. Object Naming ................................................ 2 4. Grouping ..................................................... 3 5. Structured Property Values ................................... 3 6. Property Parameters .......................................... 3 7. Property Value Types ......................................... 3 8. Encoding Options ............................................. 4 9. Binary Encoding .............................................. 4 10. Base-64 Encoding ............................................ 4 11. Language Option ............................................. 4 12. Image Format Option ......................................... 4 13. Delivery Type Option ........................................ 5 14. Telephone Type Option ....................................... 5 15. Electronic Mail Type Option ................................. 6 16. Sound Format Type Option .................................... 6 17. Object Definitions .......................................... 6 17.1. VCard Object .............................................. 6 18. Attribute Type Definitions .................................. 7 19. Identification Attributes ................................... 7 19.1. vcardFN ................................................... 7 19.2. vcardN .................................................... 7 19.3. vcardPHOTO ................................................ 7 19.4. vcardBDAY ................................................. 7 19.5. vcardUID .................................................. 8 20. Delivery Addressing Attributes .............................. 8 20.1. vcardADR .................................................. 8 20.2. vcardLABEL ................................................ 8 20.3. vcardTEL .................................................. 8 20.4. vcardEMAIL ................................................ 9 20.5. vcardMAILER ............................................... 9 21. Geographical Attributes ..................................... 9 21.1. vcardTZ ................................................... 9 21.2. vcardGEO .................................................. 9 22. Organizational Attributes .................................. 9 22.1. vcardTITLE ................................................ 9 22.2. vcardROLE ................................................. 10 22.3. vcardLOGO ................................................. 10 22.4. vcardORG .................................................. 10 23. Explanatory Attributes ...................................... 11 23.1. vcardNOTE ................................................. 11 23.2. vcardREV .................................................. 11 23.3. vcardSOUND ................................................ 11 23.4. vcardURL .................................................. 11 23.5. vcardVERSION .............................................. 11 24. Security Attributes ......................................... 12 24.1. .......................................................... 12 24.2. Syntax Definitions ........................................ 12 24.3. VCardString ............................................... 12 24.4. vcardNAMEtype ............................................. 12 24.5. vCardImage ................................................ 13 24.6. vCardDate ................................................. 13 Expires September 2000 Internet Draft LDAP vCard Schema August 22, 2000 24.7. vCardDateTime ............................................. 13 24.8. vCardAddress .............................................. 14 24.9. vCardMultiLineString ...................................... 14 24.10. vCardTZ: ................................................. 15 24.11. vCardTelephone ........................................... 15 24.12. vCardPosition ............................................ 15 24.13. vCardOrgNameUnit ......................................... 15 24.14. vCardSound ............................................... 16 25. Matching Rule Definitions ................................... 16 26. Example Usage ............................................... 16 27. Security Considerations ..................................... 17 27.1. Disclosure ................................................ 17 27.2. Security Concerns ......................................... 17 28. Acknowledgments: ............................................ 17 29. Bibliography ................................................ 17 30. Author's Address ............................................ 18 Expires September 2000