HTTP/1.1 200 OK Date: Tue, 09 Apr 2002 00:53:58 GMT Server: Apache/1.3.20 (Unix) Last-Modified: Thu, 27 Mar 1997 16:46:00 GMT ETag: "2e9d52-6310-333aa448" Accept-Ranges: bytes Content-Length: 25360 Connection: close Content-Type: text/plain Network Working Group M. Wahl INTERNET-DRAFT Critical Angle Inc. Expires in six months from 24 March 1997 A Summary of the X.500(93) User Schema for use with LDAPv3 1. Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents 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 ds.internic.net (US East Coast), nic.nordu.net (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim). 2. Abstract This document provides an overview of the attribute types and object classes defined by the ISO and ITU-T committees in the X.500 documents, in particular those intended for use by directory clients. It does not cover attributes used for the administration of X.500 directory servers themselves. 3. General Issues This document references syntaxes given in section 6 of this document and section 6 of [1]. Matching rules are listed in section 8 of [1]. The attribute type and object class definitions are written using the BNF form of AttributeTypeDescription and ObjectClassDescription given in [1]. Lines have been folded for readability. 4. Source The schema definitions in this document are based on those found in X.500 [2],[3],[4],[5], and updates to these documents, specifically: Sections Source ============ ============ 5.1 - 5.2 X.501(93) 5.3 - 5.36 X.520(88) 5.37 - 5.41 X.509(93) 5.42 - 5.52 X.520(93) 5.53 - 5.54 X.509(96) (Table continued on next page) Wahl Page 1 INTERNET-DRAFT A Summary of the X.500(93) User Schema For LDAP March 1997 Sections Source ============ ============ 6.1 RFC 1274 6.2 (new syntax) 6.3 - 6.5 RFC 1274 7.1 - 7.2 X.501(93) 7.3 - 7.18 X.521(88) 7.19 - 7.22 X.501(93) 7.23 - 7.25 X.509(96) Some attribute names are different from those found in X.520(93). 5. Attribute Types An LDAP server implementation SHOULD recognize the attribute types described in this section. 5.1. objectClass The values of the objectClass attribute describe the kind of object which an entry represents. The objectClass attribute is present in every entry, with at least two values. One of the values is either "top" or "alias". ( 2.5.4.0 NAME 'objectClass' EQUALITY objectIdentifierMatch SYNTAX 'OID' ) 5.2. aliasedObjectName The aliasedObjectName attribute is used by the directory service if the entry containing this attribute is an alias. ( 2.5.4.1 NAME 'aliasedObjectName' EQUALITY distinguishedNameMatch SYNTAX 'DN' SINGLE-VALUE ) 5.3. knowledgeInformation This attribute is no longer used. ( 2.5.4.2 NAME 'knowledgeInformation' EQUALITY caseIgnoreMatch SYNTAX 'DirectoryString{32768}' ) 5.4. cn This is the X.500 commonName attribute, which contains a name of an object. If the object corresponds to a person, it is typically the person's full name. ( 2.5.4.3 NAME 'cn' SUP name ) 5.5. sn This is the X.500 surname attribute, which contains the family name of a person. ( 2.5.4.4 NAME 'sn' SUP name ) Wahl Page 2 INTERNET-DRAFT A Summary of the X.500(93) User Schema For LDAP March 1997 5.6. serialNumber This attribute contains the serial number of a device. ( 2.5.4.5 NAME 'serialNumber' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 'PrintableString{64}' ) 5.7. c This attribute contains a two-letter ISO 3166 country code (countryName). ( 2.5.4.6 NAME 'c' SUP name SINGLE-VALUE ) 5.8. l This attribute contains the name of a locality, such as a city, county or other geographic region (localityName). ( 2.5.4.7 NAME 'l' SUP name ) 5.9. st This attribute contains the full name of a state or province (stateOrProvinceName). ( 2.5.4.8 NAME 'st' SUP name ) 5.10. street This attribute contains the physical address of the object to which the entry corresponds, such as an address for package delivery (streetAddress). ( 2.5.4.9 NAME 'street' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 'DirectoryString{128}' ) 5.11. o This attribute contains the name of an organization (organizationName). ( 2.5.4.10 NAME 'o' SUP name ) 5.12. ou This attribute contains the name of an organizational unit (organizationalUnitName). ( 2.5.4.11 NAME 'ou' SUP name ) 5.13. title This attribute contains the title, such as "Vice President", of a person in their organizational context. The "personalTitle" attribute would be used for a person's title independent of their job function. ( 2.5.4.12 NAME 'title' SUP name ) Wahl Page 3 INTERNET-DRAFT A Summary of the X.500(93) User Schema For LDAP March 1997 5.14. description This attribute contains a human-readable description of the object. ( 2.5.4.13 NAME 'description' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 'DirectoryString{1024}' ) 5.15. searchGuide This attribute is for use by X.500 clients in constructing search filters. It is obsoleted by enhancedSearchGuide, described below in 5.48. ( 2.5.4.14 NAME 'searchGuide' SYNTAX 'Guide' ) 5.16. businessCategory This attribute describes the kind of business performed by an organization. ( 2.5.4.15 NAME 'businessCategory' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 'DirectoryString{128}' ) 5.17. postalAddress ( 2.5.4.16 NAME 'postalAddress' EQUALITY caseIgnoreListMatch SUBSTR caseIgnoreListSubstringsMatch SYNTAX 'PostalAddress' ) 5.18. postalCode ( 2.5.4.17 NAME 'postalCode' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 'DirectoryString{40}' ) 5.19. postOfficeBox ( 2.5.4.18 NAME 'postOfficeBox' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 'DirectoryString{40}' ) 5.20. physicalDeliveryOfficeName ( 2.5.4.19 NAME 'physicalDeliveryOfficeName' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 'DirectoryString{128}' ) 5.21. telephoneNumber ( 2.5.4.20 NAME 'telephoneNumber' EQUALITY telephoneNumberMatch SUBSTR telephoneNumberSubstringsMatch SYNTAX 'TelephoneNumber{32}' ) 5.22. telexNumber ( 2.5.4.21 NAME 'telexNumber' SYNTAX 'TelexNumber' ) 5.23. teletexTerminalIdentifier ( 2.5.4.22 NAME 'teletexTerminalIdentifier' SYNTAX 'TeletexTerminalIdentifier' ) Wahl Page 4 INTERNET-DRAFT A Summary of the X.500(93) User Schema For LDAP March 1997 5.24. facsimileTelephoneNumber ( 2.5.4.23 NAME 'facsimileTelephoneNumber' SYNTAX 'FacsimileTelephoneNumber' ) 5.25. x121Address ( 2.5.4.24 NAME 'x121Address' EQUALITY numericStringMatch SUBSTR numericStringSubstringsMatch SYNTAX 'NumericString{15}' ) 5.26. internationalISDNNumber ( 2.5.4.25 NAME 'internationaliSDNNumber' EQUALITY numericStringMatch SUBSTR numericStringSubstringsMatch SYNTAX 'NumericString{16}' ) 5.27. registeredAddress This attribute holds a postal address suitable for reception of telegrams or expedited documents, where it is necessary to have the receipient accept delivery. ( 2.5.4.26 NAME 'registeredAddress' SUP postalAddress SYNTAX 'PostalAddress' ) 5.28. destinationIndicator This attribute is used for the telegram service. ( 2.5.4.27 NAME 'destinationIndicator' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 'PrintableString{128}' ) 5.29. preferredDeliveryMethod ( 2.5.4.28 NAME 'preferredDeliveryMethod' SYNTAX 'DeliveryMethod' SINGLE-VALUE ) 5.30. presentationAddress This attribute contains an OSI presentation address. ( 2.5.4.29 NAME 'presentationAddress' EQUALITY presentationAddressMatch SYNTAX 'PresentationAddress' SINGLE-VALUE ) 5.31. supportedApplicationContext This attribute contains the identifiers of OSI application contexts. ( 2.5.4.30 NAME 'supportedApplicationContext' EQUALITY objectIdentifierMatch SYNTAX 'OID' ) 5.32. member ( 2.5.4.31 NAME 'member' SUP distinguishedName ) Wahl Page 5 INTERNET-DRAFT A Summary of the X.500(93) User Schema For LDAP March 1997 5.33. owner ( 2.5.4.32 NAME 'owner' SUP distinguishedName ) 5.34. roleOccupant ( 2.5.4.33 NAME 'roleOccupant' SUP distinguishedName ) 5.35. seeAlso ( 2.5.4.34 NAME 'seeAlso' SUP distinguishedName ) 5.36. userPassword ( 2.5.4.35 NAME 'userPassword' EQUALITY octetStringMatch SYNTAX 'Password{128}' ) 5.37. userCertificate ( 2.5.4.36 NAME 'userCertificate;binary' SYNTAX 'Certificate' ) 5.38. cACertificate ( 2.5.4.37 NAME 'cACertificate;binary' SYNTAX 'Certificate' ) 5.39. authorityRevocationList ( 2.5.4.38 NAME 'authorityRevocationList;binary' SYNTAX 'CertificateList' ) 5.40. certificateRevocationList ( 2.5.4.39 NAME 'certificateRevocationList;binary' SYNTAX 'CertificateList' ) 5.41. crossCertificatePair ( 2.5.4.40 NAME 'crossCertificatePair;binary' SYNTAX 'CertificatePair' ) 5.42. name The name attribute type is the attribute supertype from which string attribute types typically used for naming may be formed. It is unlikely that values of this type itself will occur in an entry. LDAP server implementations which do not support attribute subtyping need not recognize this attribute in requests. Client implementations MUST NOT assume that LDAP servers are capable of performing attribute subtyping. ( 2.5.4.41 NAME 'name' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 'DirectoryString{32768}' ) Wahl Page 6 INTERNET-DRAFT A Summary of the X.500(93) User Schema For LDAP March 1997 5.43. givenName The givenName attribute is used to hold the part of a person's name which is not their surname nor middle name. ( 2.5.4.42 NAME 'givenName' SUP name ) 5.44. initials The initials attribute contains the initials of some or all of an individuals names, but not the surname(s). ( 2.5.4.43 NAME 'initials' SUP name ) 5.45. generationQualifier The generationQualifier attribute contains the part of the name which typically is the suffix, as in "IIIrd". ( 2.5.4.44 NAME 'generationQualifier' SUP name ) 5.46. x500UniqueIdentifier The x500UniqueIdentifier attribute is used to distinguish between objects when a distinguished name has been reused. This is a different attribute type from both the "uid" and "uniqueIdentifier" types. ( 2.5.4.45 NAME 'x500UniqueIdentifier' EQUALITY bitStringMatch SYNTAX 'BitString' ) 5.47. dnQualifier The dnQualifier attribute type specifies disambiguating information to add to the relative distinguished name of an entry. It is intended to be used when merging data from multiple sources in order to prevent conflicts between entries which would otherwise have the same name. It is recommended that the value of the dnQualifier attribute be the same for all entries from a particular source. ( 2.5.4.46 NAME 'dnQualifier' EQUALITY caseIgnoreMatch ORDERING caseIgnoreOrderingMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 'PrintableString' ) 5.48. enhancedSearchGuide This attribute is for use by X.500 clients in constructing search filters. ( 2.5.4.47 NAME 'enhancedSearchGuide' SYNTAX 'EnhancedGuide' ) Wahl Page 7 INTERNET-DRAFT A Summary of the X.500(93) User Schema For LDAP March 1997 5.49. protocolInformation This attribute is used in conjuction with the presentationAddress attribute, to provide additional information to the OSI network service. ( 2.5.4.48 NAME 'protocolInformation' EQUALITY protocolInformationMatch SYNTAX 'ProtocolInformation' ) 5.50. distinguishedName This attribute type is not used as the name of the object itself, but it is instead a base type from which attributes with DN syntax inherit. It is unlikely that values of this type itself will occur in an entry. LDAP server implementations which do not support attribute subtyping need not recognize this attribute in requests. Client implementations MUST NOT assume that LDAP servers are capable of performing attribute subtyping. ( 2.5.4.49 NAME 'distinguishedName' EQUALITY distinguishedNameMatch SYNTAX 'DN' ) 5.51. uniqueMember ( 2.5.4.50 NAME 'uniqueMember' EQUALITY uniqueMemberMatch SYNTAX 'NameAndOptionalUID' ) 5.52. houseIdentifier This attribute is used to identify a building within a location. ( 2.5.4.51 NAME 'houseIdentifier' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 'DirectoryString{32768}' ) 5.53. supportedAlgorithms ( 2.5.4.52 NAME 'supportedAlgorithms;binary' SYNTAX 'SupportedAlgorithm' ) 5.54. deltaRevocationList ( 2.5.4.53 NAME 'deltaRevocationList;binary' SYNTAX 'CertificateList' ) 6. Syntaxes Servers SHOULD recognize the syntax names defined in this section. Wahl Page 8 INTERNET-DRAFT A Summary of the X.500(93) User Schema For LDAP March 1997 6.1. DeliveryMethod Values with DeliveryMethod syntax are encoded according to the following BNF: ::= | '$' ::= 'any' | 'mhs' | 'physical' | 'telex' | 'teletex' | 'g3fax' | 'g4fax' | 'ia5' | 'videotex' | 'telephone' Example: telephone 6.2. EnhancedGuide Values with the EnhancedGuide syntax are encoded according to the following BNF: ::= '#' '#' ::= "baseobject" | "oneLevel" | "wholeSubtree" The production is defined in the Guide syntax below. This syntax has been added subsequent to RFC 1778. Example: person#(sn)#oneLevel 6.3. Guide Values with the Guide syntax are encoded according to the following BNF: ::= [ '#' ] ::= an encoded value with OID syntax ::= | | '!' ::= [ '(' ] '&' [ ')' ] | [ '(' ] '|' [ ')' ] ::= [ '(' ] '$' [ ')' ] ::= "EQ" | "SUBSTR" | "GE" | "LE" | "APPROX" This syntax should not be used for defining new attributes. Wahl Page 9 INTERNET-DRAFT A Summary of the X.500(93) User Schema For LDAP March 1997 6.4. TeletexTerminalIdentifier Values with the TeletexTerminalIdentifier syntax are encoded according to the following BNF: ::= 0*('$' ) ::= ::= ':' ::= 'graphic' | 'control' | 'misc' | 'page' | 'private' ::= In the above, the first is the encoding of the first portion of the teletex terminal identifier to be encoded, and the subsequent 0 or more are subsequent portions of the teletex terminal identifier. 6.5. TelexNumber Values with the TelexNumber syntax are encoded according to the following BNF: ::= '$' '$' ::= ::= ::= In the above, is the syntactic representation of the number portion of the TELEX number being encoded, is the TELEX country code, and is the answerback code of a TELEX terminal. 6.6. SupportedAlgorithm No printable representation of values of the supportedAlgorithms attribute is defined in this document. Clients which wish to store and retrieve this attribute MUST use "supportedAlgorithms;binary", in which the value is transferred as a binary encoding. 7. Object Classes LDAP servers SHOULD recognize the object classes listed here as values of the objectClass attribute. 7.1. top ( 2.5.6.0 NAME 'top' ABSTRACT MUST objectClass ) Wahl Page 10 INTERNET-DRAFT A Summary of the X.500(93) User Schema For LDAP March 1997 7.2. alias ( 2.5.6.1 NAME 'alias' SUP top STRUCTURAL MUST aliasedObjectName ) 7.3. country ( 2.5.6.2 NAME 'country' SUP top STRUCTURAL MUST c MAY ( searchGuide $ description ) ) 7.4. locality ( 2.5.6.3 NAME 'locality' SUP top STRUCTURAL MAY ( street $ seeAlso $ searchGuide $ st $ l $ description ) ) 7.5. organization ( 2.5.6.4 NAME 'organization' SUP top STRUCTURAL MUST o MAY ( userPassword $ searchGuide $ seeAlso $ businessCategory $ x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ st $ l $ description ) ) 7.6. organizationalUnit ( 2.5.6.5 NAME 'organizationalUnit' SUP top STRUCTURAL MUST ou MAY ( userPassword $ searchGuide $ seeAlso $ businessCategory $ x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ st $ l $ description ) ) 7.7. person ( 2.5.6.6 NAME 'person' SUP top STRUCTURAL MUST ( sn $ cn ) MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) ) 7.8. organizationalPerson ( 2.5.6.7 NAME 'organizationalPerson' SUP person STRUCTURAL MAY ( title $ x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ ou $ st $ l ) ) Wahl Page 11 INTERNET-DRAFT A Summary of the X.500(93) User Schema For LDAP March 1997 7.9. organizationalRole ( 2.5.6.8 NAME 'organizationalRole' SUP top STRUCTURAL MUST cn MAY ( x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ seeAlso $ roleOccupant $ preferredDeliveryMethod $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ ou $ st $ l $ description ) ) 7.10. groupOfNames ( 2.5.6.9 NAME 'groupOfNames' SUP top STRUCTURAL MUST ( member $ cn ) MAY ( businessCategory $ seeAlso $ owner $ ou $ o $ description ) ) 7.11. residentialPerson ( 2.5.6.10 NAME 'residentialPerson' SUP person STRUCTURAL MUST l MAY ( businessCategory $ x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ preferredDeliveryMethod $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ st $ l ) ) 7.12. applicationProcess ( 2.5.6.11 NAME 'applicationProcess' SUP top STRUCTURAL MUST cn MAY ( seeAlso $ ou $ l $ description ) ) 7.13. applicationEntity ( 2.5.6.12 NAME 'applicationEntity' SUP top STRUCTURAL MUST ( presentationAddress $ cn ) MAY ( supportedApplicationContext $ seeAlso $ ou $ o $ l $ description ) ) 7.14. dSA ( 2.5.6.13 NAME 'dSA' SUP applicationEntity STRUCTURAL MAY knowledgeInformation ) 7.15. device ( 2.5.6.14 NAME 'device' SUP top STRUCTURAL MUST cn MAY ( serialNumber $ seeAlso $ owner $ ou $ o $ l $ description ) ) 7.16. strongAuthenticationUser ( 2.5.6.15 NAME 'strongAuthenticationUser' SUP top AUXILIARY MUST userCertificate ) Wahl Page 12 INTERNET-DRAFT A Summary of the X.500(93) User Schema For LDAP March 1997 7.17. certificationAuthority ( 2.5.6.16 NAME 'certificationAuthority' SUP top AUXILIARY MUST ( authorityRevocationList $ certificateRevocationList $ cACertificate ) MAY crossCertificatePair ) 7.18. groupOfUniqueNames ( 2.5.6.17 NAME 'groupOfUniqueNames' SUP top STRUCTURAL MUST ( uniqueMember $ cn ) MAY ( businessCategory $ seeAlso $ owner $ ou $ o $ description ) ) 7.19. subentry This object class has special significance for administering X.500(93) servers, as described in section 13.2 of X.501 [2]. ( 2.5.17.0 NAME 'subentry' SUP top STRUCTURAL MUST ( cn $ subtreeSpecification ) ) 7.20. accessControlSubentry This object class has special significance for administering X.500(93) servers. It is used in conjunction with the "subentry" object class. ( 2.5.17.1 NAME 'accessControlSubentry' AUXILIARY ) 7.21. collectiveAttributeSubentry This object class has special significance for administering X.500(93) servers. It is used in conjunction with the "subentry" object class. ( 2.5.17.2 NAME 'collectiveAttributeSubentry' AUXILIARY ) 7.22. subschema This object class is used for the subschema subentry in X.500(93) servers. ( 2.5.20.1 NAME 'subschema' AUXILIARY MAY ( dITStructureRules $ nameForms $ ditContentRules $ objectClasses $ attributeTypes $ matchingRules $ matchingRuleUse ) ) 7.23. userSecurityInformation ( 2.5.6.18 NAME 'userSecurityInformation' SUP top AUXILIARY MAY ( supportedAlgorithms ) ) 7.24. certificationAuthority-V2 ( 2.5.6.16.2 NAME 'certificationAuthority-V2' SUP certificationAuthority AUXILIARY MAY ( deltaRevocationList ) ) Wahl Page 13 INTERNET-DRAFT A Summary of the X.500(93) User Schema For LDAP March 1997 7.25. cRLDistributionPoint ( 2.5.6.19 NAME 'cRLDistributionPoint' SUP top STRUCTURAL MUST ( cn ) MAY ( certificateRevocationList $ authorityRevocationList $ deltaRevocationList ) ) 8. Security Considerations Security issues are not discussed in this memo. 9. Acknowledgements The definitions on which this document have been developed by committees for telecommunications, international standards, and the Internet community. 10. Bibliography [1] M. Wahl, A. Coulbeck, T. Howes, S. Kille, W. Yeong, C. Robbins, "Lightweight X.500 Directory Access Protocol Attribute Syntax Definitions", INTERNET-DRAFT , March 1997. [2] The Directory: Models. ITU-T Recommendation X.501, 1993. [3] The Directory: Authentication Framework. ITU-T Recommendation X.509, 1993. [4] The Directory: Selected Attribute Types. ITU-T Recommendation X.520, 1993. [5] The Directory: Selected Object Classes. ITU-T Recommendation X.521, 1993. 11. Author's Address Mark Wahl Critical Angle Inc. 4815 West Braker Lane #502-385 Austin, TX 78759 USA EMail: M.Wahl@critical-angle.com Wahl INTERNET-DRAFT Expires September 1997 Page 14