最近工做中一直在与LDAP打交道,在官方推荐的client-apis里,能够很容易找到每一个语言对应的API,进而与LDAP服务器交互。可是在用ApacheDirectoryStudio时,这个软件居然能展现Schema数据,而后认真看了下官方文档,仍是没看到有说明查询Schema数据的地方(若是有小伙伴在文档中看到相关说明,但愿能留言告诉我)。可是找到了用php写的客户端phpLDAPAdmin,随后经过其源码,发现了如何查询Schema数据。php
经过官方文档,咱们查到Schema数据包含下面四个部分apache
以查询objectclasses为例(也能够一次性查询),其对应的查询方法以下api
第一种状况服务器
$read_ret = ldap_read($ds, 'cn=Subschema', '(objectClass=subschema)', ['objectclasses']); $read_ret = ldap_read($ds, 'cn=Subschema', '(objectClass=*)', ['objectclasses']);
若是第一种查询不到,则用第二种code
$read_ret = ldap_read($ds, 'cn=Aggregate,cn=Schema,cn=configuration,dc=example,dc=com', '(objectClass=*)'; $read_ret = ldap_read($ds, 'cn=Schema,cn=configuration,dc=example,dc=com', '(objectClass=*)', ['objectclasses']); $read_ret = ldap_read($ds, 'cn=Schema,ou=Admin,dc=example,dc=com', '(objectClass=*)', ['objectclasses']);
若是第二种查询不到,则用第三种文档
$read_ret = ldap_read($ds, 'cn=schema,cn=config', '(objectClass=*)', ['objectclasses']);