最近工做中一直在與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']);