PHP 获取LDAP服务器Schema数据
最近工作中一直在与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
PHP 获取LDAP服务器Schema数据的更多相关文章
- React学习(4)——向服务器请求数据并显示
本文中涉及到的技术包括:node.js/express服务器的搭建.fetch发送数据请求. 在之前的几篇文章中,介绍了如何搭建基础的React项目,以及一些简单知识,现在,我们还需要掌握如何用Rea ...
- js进阶ajax读取json数据(ajax读取json和读取普通文本,和获取服务器返回数据(链接)都是一样的,在url处放上json文件的地址即可)
js进阶ajax读取json数据(ajax读取json和读取普通文本,和获取服务器返回数据(链接)都是一样的,在url处放上json文件的地址即可) 一.总结 ajax读取json和读取普通文本,和获 ...
- HTTP请求(GET与POST区别)和响应(get是从服务器上获取数据,post是向服务器传送数据,格式与举例都非常清楚)
HTTP有两部分组成:请求与响应,下面分别整理. 一.HTTP请求 1.HTTP请求格式: <request line> <headers> <blank line> ...
- 获取redis中所有的key,清空整个 Redis 服务器的数据
获取 redis 中所有的 key 可用使用 *. redis 127.0.0.1:6379> KEYS * Redis Flushall 命令用于清空整个 Redis 服务器的数据(删除所有数 ...
- Windows 下搭建LDAP服务器
五一闲来没事,加上项目正在进行UAT.抽空研究了一下LDAP相关知识.随手做一个记录. 为了方便阅读还是先介绍一下什么是LDAP? 前言.Lightweight Directory Access Pr ...
- LDAP服务器的概念和原理简单介绍
LDAP服务器的概念和原理简单介绍 1. 目录服务 目录是一个为查询.浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样.目录数据库和关系数据库不 ...
- LDAP的Schema
Schema是LDAP的一个重要组成部分,类似于数据库的模式定义,LDAP的Schema定义了LDAP目录所应遵循的结构和规则,比如一个 objectclass会有哪些属性,这些属性又是什么结构等等, ...
- 【JMeter4.0学习(二)】之搭建openLDAP在windows8.1上的安装配置以及JMeter对LDAP服务器的性能测试脚本开发
目录: 概述 安装测试环境 安装过程 配置启动 配置搭建OpenLDAP 给数据库添加数据 测试查询刚刚插入的数据 客户端介绍 JMeter建立一个扩展LDAP服务器的性能测试脚本开发 附:LDAP学 ...
- 2020年,手把手教你如何在CentOS7上一步一步搭建LDAP服务器的最新教程
同步滚动:关 什么是LDAP 什么是LDAP? 要想知道一个概念,最简单的办法就是wikipedia,当然也可以百科. LDAP全称是轻型目录访问协议(Lightweight Directory Ac ...
随机推荐
- 51nod 1238 最小公倍数之和 V3 【欧拉函数+杜教筛】
首先题目中给出的代码打错了,少了个等于号,应该是 G=0; for(i=1;i<=N;i++) for(j=1;j<=N;j++) { G = (G + lcm(i,j)) % 10000 ...
- 5位ID生成方案
最近在某微信技术群,有人问到如何生成5位唯一数字+字母字符串的算法,要保证生成的字符串唯一,且字符串内部也要唯一. 怎么样,这个需求是不是很简单,也有点特殊呢?简单是指需求简单,特殊是指,字符串长度要 ...
- 手机端实现6位短信验证码input输入框效果(样式及代码方法)
微信移动端4位.6位.多位验证码密码输入框功能的实现代码,实现思路: 方案1: 写一个简单的input框. 评估:样式不好看,待定. 方案2: 就是用6个input框,每输入一个数字之后,切换到下一个 ...
- ————————C语言中快速排序方法——————————————
在对浮点型排序是一定要用三木运算符(三目运算符内容下去自己看),因为如果也是用整形那样的减法的时候如果是两个十分相近的数字 可能返回一个小数(自己一会去试试),冉冉他cmp返回值是int(试试别的)因 ...
- shiro错误:Subject does not have permission [user:select]
使用的是jdbcRealm,在数据库中有相应的权限 错误日志: org.apache.shiro.authz.UnauthorizedException: Subject does not have ...
- 《windows核心编程系列》十七谈谈dll
DLL全称dynamic linking library.即动态链接库.广泛应用与windows及其他系统中.因此对dll的深刻了解,对计算机软件开发专业人员来说非常重要. windows中所有API ...
- 【已解决】python中文字符乱码(GB2312,GBK,GB18030相关的问题)
http://againinput4.blog.163.com/blog/static/1727994912011111011432810/ [已解决]python中文字符乱码(GB2312,GB ...
- _bzoj1088 [SCOI2005]扫雷Mine【dp】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1088 简单的状压dp(话说本题的编号减1,即1087,也是一道状压dp),不解释. #inc ...
- MyEclipse常用设置记录
MyEclipse版本:MyEclipse 2014 Blue版本. 设置内容: 1.内存优化 <MyEclipse_ROOT>/myeclipse-blue.ini文件 主要修改-vma ...
- 【RSA】在 ASP.NET Core中结合web前端JsEncrypt.JS使用公钥加密,.NET Core使用私钥解密;
有一个需求,前端web使用的是JsEncrypt把后端给的公钥对密码进行加密,然后后端对其进行解密: 使用的类库如下: 后端使用第三方开源类库Bouncy Castle进行RSA的加解密和生成PEM格 ...