3 # Includes "standard" schema items from:
4 # RFC2251-RFC2256 (LDAPv3)
8 # Standard X.501(93) Operational Attribute Types from RFC2252
10 attribute ( 2.5.18.1 NAME 'createTimestamp' EQUALITY generalizedTimeMatch
11 ORDERING generalizedTimeOrderingMatch
12 SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
13 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )
15 attribute ( 2.5.18.2 NAME 'modifyTimestamp' EQUALITY generalizedTimeMatch
16 ORDERING generalizedTimeOrderingMatch
17 SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
18 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )
20 attribute ( 2.5.18.3 NAME 'creatorsName' EQUALITY distinguishedNameMatch
21 SYNTAX 1.3.6.1.4.1.1466.115.121.1.12
22 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )
24 attribute ( 2.5.18.4 NAME 'modifiersName' EQUALITY distinguishedNameMatch
25 SYNTAX 1.3.6.1.4.1.1466.115.121.1.12
26 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )
28 attribute ( 2.5.18.10 NAME 'subschemaSubentry'
29 EQUALITY distinguishedNameMatch
30 SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 NO-USER-MODIFICATION
31 SINGLE-VALUE USAGE directoryOperation )
33 attribute ( 2.5.21.5 NAME 'attributeTypes'
34 EQUALITY objectIdentifierFirstComponentMatch
35 SYNTAX 1.3.6.1.4.1.1466.115.121.1.3 USAGE directoryOperation )
37 attribute ( 2.5.21.6 NAME 'objectClasses'
38 EQUALITY objectIdentifierFirstComponentMatch
39 SYNTAX 1.3.6.1.4.1.1466.115.121.1.37 USAGE directoryOperation )
41 attribute ( 2.5.21.4 NAME 'matchingRules'
42 EQUALITY objectIdentifierFirstComponentMatch
43 SYNTAX 1.3.6.1.4.1.1466.115.121.1.30 USAGE directoryOperation )
45 attribute ( 2.5.21.8 NAME 'matchingRuleUse'
46 EQUALITY objectIdentifierFirstComponentMatch
47 SYNTAX 1.3.6.1.4.1.1466.115.121.1.31 USAGE directoryOperation )
49 # LDAP Operational Attributes from RFC2252
51 attribute ( 1.3.6.1.4.1.1466.101.120.5 NAME 'namingContexts'
52 SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 USAGE dSAOperation )
54 attribute ( 1.3.6.1.4.1.1466.101.120.6 NAME 'altServer'
55 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 USAGE dSAOperation )
57 attribute ( 1.3.6.1.4.1.1466.101.120.7 NAME 'supportedExtension'
58 SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 USAGE dSAOperation )
60 attribute ( 1.3.6.1.4.1.1466.101.120.13 NAME 'supportedControl'
61 SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 USAGE dSAOperation )
63 attribute ( 1.3.6.1.4.1.1466.101.120.14 NAME 'supportedSASLMechanisms'
64 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 USAGE dSAOperation )
66 attribute ( 1.3.6.1.4.1.1466.101.120.15 NAME 'supportedLDAPVersion'
67 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 USAGE dSAOperation )
69 # LDAP Subschema Atrribute from RFC2252
71 attribute ( 1.3.6.1.4.1.1466.101.120.16 NAME 'ldapSyntaxes'
72 EQUALITY objectIdentifierFirstComponentMatch
73 SYNTAX 1.3.6.1.4.1.1466.115.121.1.54 USAGE directoryOperation )
75 # X.500 Subschema attributes from RFC2252
77 attribute ( 2.5.21.1 NAME 'dITStructureRules' EQUALITY integerFirstComponentMatch
78 SYNTAX 1.3.6.1.4.1.1466.115.121.1.17 USAGE directoryOperation )
80 attribute ( 2.5.21.7 NAME 'nameForms'
81 EQUALITY objectIdentifierFirstComponentMatch
82 SYNTAX 1.3.6.1.4.1.1466.115.121.1.35 USAGE directoryOperation )
84 attribute ( 2.5.21.2 NAME 'dITContentRules'
85 EQUALITY objectIdentifierFirstComponentMatch
86 SYNTAX 1.3.6.1.4.1.1466.115.121.1.16 USAGE directoryOperation )
88 # Object Classes from RFC2252
90 # extensibleObject moved forward, since it depends on top
91 # ldapSyntaxes (operational) is admissible in next:
93 objectclass ( 2.5.20.1 NAME 'subschema' AUXILIARY
94 MAY ( dITStructureRules $ nameForms $ ditContentRules $
95 objectClasses $ attributeTypes $ matchingRules $
98 # Standard attribute types from RFC2256
100 attribute ( 2.5.4.0 NAME 'objectClass' EQUALITY objectIdentifierMatch
101 SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )
103 attribute ( 2.5.4.1 NAME 'aliasedObjectName' EQUALITY distinguishedNameMatch
104 SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE )
106 # Defined, but no longer used
108 attribute ( 2.5.4.2 NAME 'knowledgeInformation' EQUALITY caseIgnoreMatch
109 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )
111 # Place here since other attribute types derive from it
113 attribute ( 2.5.4.41 NAME 'name' EQUALITY caseIgnoreMatch
114 SUBSTR caseIgnoreSubstringsMatch
115 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )
117 attribute ( 2.5.4.3 NAME ( 'cn' 'commonName' ) SUP name )
119 attribute ( 2.5.4.4 NAME ( 'sn' 'surname' ) SUP name )
121 attribute ( 2.5.4.5 NAME 'serialNumber' EQUALITY caseIgnoreMatch
122 SUBSTR caseIgnoreSubstringsMatch
123 SYNTAX 1.3.6.1.4.1.1466.115.121.1.44{64} )
125 # (2-letter code from ISO 3166)
127 attribute ( 2.5.4.6 NAME ( 'c' 'countryName' ) SUP name SINGLE-VALUE )
129 attribute ( 2.5.4.7 NAME ( 'l' 'localityName' ) SUP name )
131 attribute ( 2.5.4.8 NAME ( 'st' 'stateOrProvinceName' ) SUP name )
133 attribute ( 2.5.4.9 NAME ( 'street' 'streetAddress' ) EQUALITY caseIgnoreMatch
134 SUBSTR caseIgnoreSubstringsMatch
135 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )
137 attribute ( 2.5.4.10 NAME ( 'o' 'organizationName' ) SUP name )
139 attribute ( 2.5.4.11 NAME ( 'ou' 'organizationalUnitName' ) SUP name )
141 attribute ( 2.5.4.12 NAME 'title' SUP name )
143 attribute ( 2.5.4.13 NAME 'description' EQUALITY caseIgnoreMatch
144 SUBSTR caseIgnoreSubstringsMatch
145 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )
147 # Obsoleted by enhancedSearchGuide
149 attribute ( 2.5.4.14 NAME 'searchGuide'
150 SYNTAX 1.3.6.1.4.1.1466.115.121.1.25 )
152 attribute ( 2.5.4.15 NAME 'businessCategory' EQUALITY caseIgnoreMatch
153 SUBSTR caseIgnoreSubstringsMatch
154 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )
156 # Show stopper: we don't have the definition of caseIgnoreListSubstringsMatch
157 #attribute ( 2.5.4.16 NAME 'postalAddress' EQUALITY caseIgnoreListMatch
158 # SUBSTR caseIgnoreListSubstringsMatch
159 # SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 )
160 attribute ( 2.5.4.16 NAME 'postalAddress' EQUALITY caseIgnoreListMatch
161 SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 )
163 attribute ( 2.5.4.17 NAME 'postalCode' EQUALITY caseIgnoreMatch
164 SUBSTR caseIgnoreSubstringsMatch
165 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{40} )
167 attribute ( 2.5.4.18 NAME 'postOfficeBox' EQUALITY caseIgnoreMatch
168 SUBSTR caseIgnoreSubstringsMatch
169 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{40} )
171 attribute ( 2.5.4.19 NAME 'physicalDeliveryOfficeName' EQUALITY caseIgnoreMatch
172 SUBSTR caseIgnoreSubstringsMatch
173 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )
175 attribute ( 2.5.4.20 NAME 'telephoneNumber' EQUALITY telephoneNumberMatch
176 SUBSTR telephoneNumberSubstringsMatch
177 SYNTAX 1.3.6.1.4.1.1466.115.121.1.50{32} )
179 attribute ( 2.5.4.21 NAME 'telexNumber'
180 SYNTAX 1.3.6.1.4.1.1466.115.121.1.52 )
182 attribute ( 2.5.4.22 NAME 'teletexTerminalIdentifier'
183 SYNTAX 1.3.6.1.4.1.1466.115.121.1.51 )
185 attribute ( 2.5.4.23 NAME ( 'facsimileTelephoneNumber' 'fax' )
186 SYNTAX 1.3.6.1.4.1.1466.115.121.1.22 )
188 attribute ( 2.5.4.24 NAME 'x121Address' EQUALITY numericStringMatch
189 SUBSTR numericStringSubstringsMatch
190 SYNTAX 1.3.6.1.4.1.1466.115.121.1.36{15} )
192 attribute ( 2.5.4.25 NAME 'internationaliSDNNumber' EQUALITY numericStringMatch
193 SUBSTR numericStringSubstringsMatch
194 SYNTAX 1.3.6.1.4.1.1466.115.121.1.36{16} )
196 attribute ( 2.5.4.26 NAME 'registeredAddress' SUP postalAddress
197 SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 )
199 attribute ( 2.5.4.27 NAME 'destinationIndicator' EQUALITY caseIgnoreMatch
200 SUBSTR caseIgnoreSubstringsMatch
201 SYNTAX 1.3.6.1.4.1.1466.115.121.1.44{128} )
203 attribute ( 2.5.4.28 NAME 'preferredDeliveryMethod'
204 SYNTAX 1.3.6.1.4.1.1466.115.121.1.14
207 attribute ( 2.5.4.29 NAME 'presentationAddress'
208 EQUALITY presentationAddressMatch
209 SYNTAX 1.3.6.1.4.1.1466.115.121.1.43
212 attribute ( 2.5.4.30 NAME 'supportedApplicationContext'
213 EQUALITY objectIdentifierMatch
214 SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )
216 # Placed here because others derive from it.
218 # We had a dn definition in slapd.at.conf and Netscape lists both
219 # names for that OID. This is wrong, 'dn' is used internally in slapd
220 # as the name of a pseudo-attribute type that contains the
221 # distinguished name of an entry. On the other hand, the attribute
222 # type distinguishedName is meant to be an "abstract" type and other
223 # dn-valued attribute types derive from it. So at most, 'dn' would
224 # be a subtype of distinguishedName.
226 attribute ( 2.5.4.49 NAME 'distinguishedName'
227 EQUALITY distinguishedNameMatch
228 SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
230 attribute ( 2.5.4.31 NAME 'member' SUP distinguishedName )
232 attribute ( 2.5.4.32 NAME 'owner' SUP distinguishedName )
234 attribute ( 2.5.4.33 NAME 'roleOccupant' SUP distinguishedName )
236 attribute ( 2.5.4.34 NAME 'seeAlso' SUP distinguishedName )
238 attribute ( 2.5.4.35 NAME 'userPassword' EQUALITY octetStringMatch
239 SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{128} )
241 # Must be stored and requested in the binary form, as
242 # userCertificate;binary
244 attribute ( 2.5.4.36 NAME 'userCertificate'
245 SYNTAX 1.3.6.1.4.1.1466.115.121.1.8 )
249 attribute ( 2.5.4.37 NAME 'cACertificate'
250 SYNTAX 1.3.6.1.4.1.1466.115.121.1.8 )
254 attribute ( 2.5.4.38 NAME 'authorityRevocationList'
255 SYNTAX 1.3.6.1.4.1.1466.115.121.1.9 )
259 attribute ( 2.5.4.39 NAME 'certificateRevocationList'
260 SYNTAX 1.3.6.1.4.1.1466.115.121.1.9 )
264 attribute ( 2.5.4.40 NAME 'crossCertificatePair'
265 SYNTAX 1.3.6.1.4.1.1466.115.121.1.10 )
267 # 2.5.4.41 is 'name', moved above since other attribute types derive from it
269 attribute ( 2.5.4.42 NAME 'givenName' SUP name )
271 attribute ( 2.5.4.43 NAME 'initials' SUP name )
273 attribute ( 2.5.4.45 NAME 'x500UniqueIdentifier' EQUALITY bitStringMatch
274 SYNTAX 1.3.6.1.4.1.1466.115.121.1.6 )
276 attribute ( 2.5.4.46 NAME 'dnQualifier' EQUALITY caseIgnoreMatch
277 ORDERING caseIgnoreOrderingMatch SUBSTR caseIgnoreSubstringsMatch
278 SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 )
280 attribute ( 2.5.4.47 NAME 'enhancedSearchGuide'
281 SYNTAX 1.3.6.1.4.1.1466.115.121.1.21 )
283 attribute ( 2.5.4.48 NAME 'protocolInformation'
284 EQUALITY protocolInformationMatch
285 SYNTAX 1.3.6.1.4.1.1466.115.121.1.42 )
287 # 2.5.4.49 is distinguishedName, moved up
289 attribute ( 2.5.4.50 NAME 'uniqueMember' EQUALITY uniqueMemberMatch
290 SYNTAX 1.3.6.1.4.1.1466.115.121.1.34 )
292 attribute ( 2.5.4.51 NAME 'houseIdentifier' EQUALITY caseIgnoreMatch
293 SUBSTR caseIgnoreSubstringsMatch
294 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )
296 # This attribute is to be stored and requested in the binary form, as
297 # 'supportedAlgorithms;binary'.
299 attribute ( 2.5.4.52 NAME 'supportedAlgorithms'
300 SYNTAX 1.3.6.1.4.1.1466.115.121.1.49 )
302 # This attribute is to be stored and requested in the binary form, as
303 # 'deltaRevocationList;binary'.
305 attribute ( 2.5.4.53 NAME 'deltaRevocationList'
306 SYNTAX 1.3.6.1.4.1.1466.115.121.1.9 )
308 attribute ( 2.5.4.54 NAME 'dmdName' SUP name )
310 # Standard object classes from RFC2256
312 objectclass ( 2.5.6.0 NAME 'top' ABSTRACT MUST objectClass )
314 objectclass ( 2.5.6.1 NAME 'alias' SUP top STRUCTURAL MUST aliasedObjectName )
316 objectclass ( 2.5.6.2 NAME 'country' SUP top STRUCTURAL MUST c
317 MAY ( searchGuide $ description ) )
319 objectclass ( 2.5.6.3 NAME 'locality' SUP top STRUCTURAL
320 MAY ( street $ seeAlso $ searchGuide $ st $ l $ description ) )
322 objectclass ( 2.5.6.4 NAME 'organization' SUP top STRUCTURAL MUST o
323 MAY ( userPassword $ searchGuide $ seeAlso $ businessCategory $
324 x121Address $ registeredAddress $ destinationIndicator $
325 preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $
326 telephoneNumber $ internationaliSDNNumber $
327 facsimileTelephoneNumber $
328 street $ postOfficeBox $ postalCode $ postalAddress $
329 physicalDeliveryOfficeName $ st $ l $ description ) )
331 objectclass ( 2.5.6.5 NAME 'organizationalUnit' SUP top STRUCTURAL MUST ou
332 MAY ( userPassword $ searchGuide $ seeAlso $ businessCategory $
333 x121Address $ registeredAddress $ destinationIndicator $
334 preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $
335 telephoneNumber $ internationaliSDNNumber $
336 facsimileTelephoneNumber $
337 street $ postOfficeBox $ postalCode $ postalAddress $
338 physicalDeliveryOfficeName $ st $ l $ description ) )
340 objectclass ( 2.5.6.6 NAME 'person' SUP top STRUCTURAL MUST ( sn $ cn )
341 MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) )
343 objectclass ( 2.5.6.7 NAME 'organizationalPerson' SUP person STRUCTURAL
344 MAY ( title $ x121Address $ registeredAddress $
345 destinationIndicator $
346 preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $
347 telephoneNumber $ internationaliSDNNumber $
348 facsimileTelephoneNumber $
349 street $ postOfficeBox $ postalCode $ postalAddress $
350 physicalDeliveryOfficeName $ ou $ st $ l ) )
352 # Notice that preferredDeliveryMethod is duplicate
354 objectclass ( 2.5.6.8 NAME 'organizationalRole' SUP top STRUCTURAL MUST cn
355 MAY ( x121Address $ registeredAddress $ destinationIndicator $
356 preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $
357 telephoneNumber $ internationaliSDNNumber $
358 facsimileTelephoneNumber $
359 seeAlso $ roleOccupant $ preferredDeliveryMethod $ street $
360 postOfficeBox $ postalCode $ postalAddress $
361 physicalDeliveryOfficeName $ ou $ st $ l $ description ) )
363 objectclass ( 2.5.6.9 NAME 'groupOfNames' SUP top STRUCTURAL MUST ( member $ cn )
364 MAY ( businessCategory $ seeAlso $ owner $ ou $ o $ description ) )
366 # Notice that preferredDeliveryMethod is duplicate
367 # It seems they could not agree on wheter telephoneNumber is MAY
368 # in person. Probably it wasn't originally at was added as an
371 objectclass ( 2.5.6.10 NAME 'residentialPerson' SUP person STRUCTURAL MUST l
372 MAY ( businessCategory $ x121Address $ registeredAddress $
373 destinationIndicator $ preferredDeliveryMethod $ telexNumber $
374 teletexTerminalIdentifier $ telephoneNumber $
375 internationaliSDNNumber $
376 facsimileTelephoneNumber $ preferredDeliveryMethod $ street $
377 postOfficeBox $ postalCode $ postalAddress $
378 physicalDeliveryOfficeName $ st $ l ) )
380 objectclass ( 2.5.6.11 NAME 'applicationProcess' SUP top STRUCTURAL MUST cn
381 MAY ( seeAlso $ ou $ l $ description ) )
383 objectclass ( 2.5.6.12 NAME 'applicationEntity' SUP top STRUCTURAL
384 MUST ( presentationAddress $ cn )
385 MAY ( supportedApplicationContext $ seeAlso $ ou $ o $ l $
388 # This one was wrong in our schema, it only allowed the aditional
389 # knowledgeInformation attribute, while it is derived from
390 # applicationEntity and should allow all its attributes as well.
392 objectclass ( 2.5.6.13 NAME 'dSA' SUP applicationEntity STRUCTURAL
393 MAY knowledgeInformation )
395 objectclass ( 2.5.6.14 NAME 'device' SUP top STRUCTURAL MUST cn
396 MAY ( serialNumber $ seeAlso $ owner $ ou $ o $ l $ description ) )
398 objectclass ( 2.5.6.15 NAME 'strongAuthenticationUser' SUP top AUXILIARY
399 MUST userCertificate )
401 objectclass ( 2.5.6.16 NAME 'certificationAuthority' SUP top AUXILIARY
402 MUST ( authorityRevocationList $ certificateRevocationList $
403 cACertificate ) MAY crossCertificatePair )
407 objectclass ( 2.5.6.17 NAME 'groupOfUniqueNames' SUP top STRUCTURAL
408 MUST ( uniqueMember $ cn )
409 MAY ( businessCategory $ seeAlso $ owner $ ou $ o $ description ) )
413 objectclass ( 2.5.6.18 NAME 'userSecurityInformation' SUP top AUXILIARY
414 MAY ( supportedAlgorithms ) )
418 objectclass ( 2.5.6.16.2 NAME 'certificationAuthority-V2' SUP
419 certificationAuthority
420 AUXILIARY MAY ( deltaRevocationList ) )
424 objectclass ( 2.5.6.19 NAME 'cRLDistributionPoint' SUP top STRUCTURAL
425 MUST ( cn ) MAY ( certificateRevocationList $
426 authorityRevocationList $
427 deltaRevocationList ) )
431 objectclass ( 2.5.6.20 NAME 'dmd' SUP top STRUCTURAL MUST ( dmdName )
432 MAY ( userPassword $ searchGuide $ seeAlso $ businessCategory $
433 x121Address $ registeredAddress $ destinationIndicator $
434 preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $
435 telephoneNumber $ internationaliSDNNumber $
436 facsimileTelephoneNumber $
437 street $ postOfficeBox $ postalCode $ postalAddress $
438 physicalDeliveryOfficeName $ st $ l $ description ) )
440 # Next objectclass is defined in RFC2252, but has to be put after top
442 objectclass ( 1.3.6.1.4.1.1466.101.120.111 NAME 'extensibleObject'
446 # Standard Track URI label schema from RFC2079
448 attribute ( 1.3.6.1.4.1.250.1.57 NAME 'labeledURI'
449 DESC 'Uniform Resource Identifier with optional label'
450 EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
452 objectclass ( 1.3.6.1.4.1.250.3.15 NAME 'labeledURIObject'
453 DESC 'object that contains the URI attribute type'
454 MAY ( labeledURI ) SUP top AUXILIARY )
457 # From draft-ietf-ldapext-nameref-00.txt
458 # used to represent referrals in the directory
460 attribute ( 2.16.840.1.113730.3.1.34 NAME 'ref' DESC 'URL Reference'
461 EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
462 USAGE distributedOperation )
464 objectclass ( 2.16.840.1.113730.3.2.6 NAME 'referral'
465 SUP top STRUCTURAL MAY ( ref ) )
469 # OID not assigned (1.3.6.1.4.1.1466.115.121.1.??)
471 objectclass ( NAME 'LDAPsubEntry'
472 DESC 'Limited X.501 Subentry class, named by cn'
473 SUP top STRUCTURAL MUST ( cn ) )