最近工作中一直在与LDAP打交道,在官方推荐的client-apis里,可以很容易找到每个语言对应的API,进而与LDAP服务器交互。但是在用ApacheDirectoryStudio时,这个软件竟然能展示Schema数据,然后认真看了下官方文档,还是没看到有说明查询Schema数据的地方(如果有小伙伴在文档中看到相关说明,希望能留言告诉我)。但是找到了用php写的客户端phpLDAPAdmin,随后通过其源码,发现了如何查询Schema数据。

通过官方文档,我们查到Schema数据包含下面四个部分

  • syntaxes
  • attributes
  • matching_rules
  • objectclasses

以查询objectclasses为例(也可以一次性查询),其对应的查询方法如下

第一种情况


$read_ret = ldap_read($ds, 'cn=Subschema', '(objectClass=subschema)', ['objectclasses']);
$read_ret = ldap_read($ds, 'cn=Subschema', '(objectClass=*)', ['objectclasses']);

如果第一种查询不到,则用第二种


$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']);

原文地址:https://segmentfault.com/a/1190000015653433

最新文章

  1. weak和nonull
  2. cocos2dx骨骼动画Armature源码分析(二)
  3. python简介和入门
  4. 《JavaScript_DOM编程艺术第二版(中文)》整书笔记
  5. 禁用Windows窗体的关闭按钮
  6. 学习di'z地址
  7. Cookie机制(会话cookie和持久化cookie)在客户端保持HTTP状态信息的方案
  8. [shell基础]——I/O重定向
  9. String、StringBuilder
  10. 【转】U-boot分析与移植(1)----bootloader分析
  11. STL algorithm算法minmax,minmax_element(36)
  12. Linux包管理工具分析
  13. [UWP] Custom Capability的使用
  14. FineUIMvc表格数据库分页,使用CYQ.Data组件
  15. grep 打印相关行内容
  16. Kubernetes命令
  17. mysql 转义字符问题
  18. [DevExpress使用随笔]之预览repx报表(转)
  19. scriptcs简介
  20. memcached-session-manager 教程实现session共享

热门文章

  1. bzoj2720: [Violet 5]列队春游(概率期望+组合数学)
  2. git修改push的注释信息
  3. 使用VS2015打包winform程序安装包简单方法(不需要InstallShield)
  4. 题解报告:hdu 1229 还是A+B
  5. lavas安装
  6. 转 Dock 外 命令解析
  7. 450 Delete Node in a BST 删除二叉搜索树中的结点
  8. 一个页面通过iframe,获取另一个页面的form
  9. C# 控制台语音计算器
  10. 里氏替换原则中is和as分别的作用