Chương 2 đã giới thiệu 2 tính năng của LDAPv3 là subschemaSubentry và rootDSE. Cả 2 đều cho phép khách hàng biết thơng tin về server thư mục chưa biết.
rootDSE chứa các thơng tin về server naming context, thực hiện SASL, và hỗ trợ hoạt động điều
khiển và mở rộng. LDAPv3 yêu cầu rootDSE phải cĩ DN trống. OpenLDAP chỉ trả lại giá trị của
rootDSE nếu yêu cầu tìm kiếm bị trả lại, do đĩ ký tự “+” được thêm vào yêu cầu tìm kiếm.
$ ldapsearch -x -s base -b "" "(objectclass=*)" + dn: structuralObjectClass: OpenLDAProotDSE namingContexts: dc=plainjoe,dc=org supportedControl: 2.16.840.1.113730.3.4.2 supportedControl: 1.3.6.1.4.1.4203.1.10.2 supportedControl: 1.2.826.0.1.334810.2.3 supportedExtension: 1.3.6.1.4.1.4203.1.11.3 supportedExtension: 1.3.6.1.4.1.4203.1.11.1 supportedExtension: 1.3.6.1.4.1.1466.20037 supportedFeatures: 1.3.6.1.4.1.4203.1.5.1 supportedFeatures: 1.3.6.1.4.1.4203.1.5.2 supportedFeatures: 1.3.6.1.4.1.4203.1.5.3 supportedFeatures: 1.3.6.1.4.1.4203.1.5.4 supportedFeatures: 1.3.6.1.4.1.4203.1.5.5 supportedLDAPVersion: 3 supportedSASLMechanisms: GSSAPI supportedSASLMechanisms: DIGEST-MD5 supportedSASLMechanisms: CRAM-MD5 subschemaSubentry: cn=Subschema
Danh sách này cĩ thể thay đổi và khác nhau giữa các server.
+ StartTLS (OID 1.3.6.1.4.1.1466.20037) và hai hoạt động mở rộng khác + ManageDsaIT (OID 2.16.840.1.113730.3.4.2) và 2 cơng cụ điều khiển LDAP + Hoạt động LDAPv3
+ Cơ chế GSSAPI, DIGEST-MD5, và CRAM-MD5 SASL + Một naming context "dc=plainjoe,dc=org"
Thuộc tính SubSchemaSubentry xác định hậu tố tìm kiếm để truy vấn lược đồ được hỗ trợ của máy chủ. Điều này cĩ nghĩa là khách hàng cĩ thể xác minh rằng server hỗ trợ một quy tắc phù hợp, loại thuộc tính, hoặc lớp đối tượng trước khi thực hiện một hoạt động phụ thuộc vào đặc tính nhất định. Đầu ra của ldapsearch sau đây chỉ ra loại thơng tin trong cây SubSchemaSubentry.
> -w n0pass -x -s base -b "cn=SubSchema" \ > "(objectclass=*)" +
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.26 DESC 'IA5 String' ) . . .
matchingRules: ( 2.5.13.2 NAME 'caseIgnoreMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
. . .
attributeTypes: ( 0.9.2342.19200300.100.1.42 NAME ( 'pager' 'pagerTelephoneNumber' ) EQUALITY telephoneNumberMatch SUBSTR telephoneNumberSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 )
. . .
objectClasses: ( 2.5.6.6 NAME 'person' SUP top STRUCTURAL MUST ( sn $ cn ) MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) )