目录:

  1. 配置搭建OpenLDAP
  2. 给数据库添加数据
  3. 测试查询刚刚插入的数据
  4. 客户端介绍

一、概述

什么是LDAP?

轻量级目录访问协议:

所述轻量级目录访问协议,或 LDAP,是一种应用协议用于查询和修改目录服务运行在TCP / IP通过维基百科).LDAP全称是一个轻量级的目录访问协议,它是建立在TCP / IP基础之前的用户查询和修改目录服务的。这是照着wiki翻译的,但是有人要问了什么是目录Service(目录服务)?

按照wiki的说法的话讲:在软件行业,目录就如同一个字典,他使得通过某一名称去查找绑定在该名称上的值得方式成为一种可能。有点类似Java中Map的概念.a 目录服务仅仅是一个存储,组织和提供对目录中信息的访问的软件系统。一个目录服务就是一个简单的软件系统,在这个目录上提供了存取和组织信息的功能.LDAP目录中可以存储各种类型的数据:电子邮件地址,邮件路由信息,人力资源数据,公用密匙,联系人列表,等等。

二、安装测试环境

openLDAP官方网站:http://www.openldap.org/

openLDAP官网只提供了linux平台的相关安装文件,windows平台的安装包可以到以下一些网站下载:

  • http://www.userbooster.de/download/openldap-for-windows.aspx
  • http://sourceforge.net/projects/openldapwindows/files/
  • http://sourceforge.jp/projects/openldapwin32/releases/

三、安装过程

按照提示 一直 next ,直到安装完成:

安装

secret

安装完成后,在系统服务中(运行>services.msc),找到 OpenLDAP Service,先停止服务,再把启动类型修改成手动,便于自己的测试。

四、启动配置

1、配置搭建OpenLDAP

安装目录:F:\ruanjian\OpenLDAP

编辑文件:F:\ruanjian\OpenLDAP\slapd.conf 找到如下内容:

database    bdb
suffix "dc=maxcrc,dc=com"
rootdn "cn=Manager,dc=maxcrc,dc=com"
rootpw {SSHA}GQkk5tV5LLQIRzctKNfW/B46ZLlhH/dg

下面的根据自己的需要修改:

database    bdb
suffix "dc=maxcrc(可修改),dc=com"
rootdn "cn=Manager,dc=maxcrc(可修改),dc=com"
rootpw {SSHA}GQkk5tV5LLQIRzctKNfW/B46ZLlhH/dg(可修改密码)

======================扩展======================

这里引申一下LDAP主要的简称含义:

  • o– organization(组织-公司)
  • ou – organization unit(组织单元-部门)
  • c – countryName(国家)
  • dc – domainComponent(域名)
  • sn – suer name(真实名称)
  • cn – common name(常用名称)

①设置manager的访问密码,CMD中键入slappasswd,按照提示输入两遍密码,即生成了加密后的密码串

②(也可以用MD5加密方式,命令:slappasswd -h {MD5}),复制粘贴到slapd.conf文件的rootpw部分(本文不用,因为用的默认密码,如果用的自己的密码可以用这个办法加密)

======================扩展======================

打开控制台,切换到openLDAP安装目录下,启动openLDAP,命令如下:slapd -d 1

但是cmd一直报:

经过痛苦的查询,突然发现显示数据库被占用,解决办法:进入“服务”中,先停止服务,再进入cmd再输入“slapd -d 1”

启动成功!搭建LDAP服务器完成!

(注:以上内容参考地址《图文介绍openLDAP在windows上的安装配置》)

 2、给数据库添加数据

新建一个文件:D:\Program Files (x86)\OpenLDAP\mydemo.ldif ,内容如下:

dn: dc=maxcrc,dc=com
changetype: add(这一行有问题别复制,下面有说明)
objectclass: top
objectclass: dcobject
objectclass: organization
dc: maxcrc
o: swust dn: o=swust,dc=maxcrc,dc=com
changetype: add(这一行有问题别复制,下面有说明)
objectclass: organization
o: swust dn: ou=Developer,o=swust,dc=maxcrc,dc=com
changetype: add(这一行有问题别复制,下面有说明)
objectclass: organizationalUnit
ou: Developer dn: cn=xxx xxx,ou=Developer,o=swust,dc=maxcrc,dc=com
changetype: add(这一行有问题别复制,下面有说明)
objectclass: person
sn:xxx
cn:xxx xxx dn: ou=Tester,o=swust,dc=maxcrc,dc=com
changetype: add(这一行有问题别复制,下面有说明)
objectclass: organizationalUnit
ou: Tester

上面定义格式内容,参考文档《ldif的数据结构及一个DEMO》。

mydemo.ldif保存为txt文件格式,并且编码要求为ANSI

tips:格式要严格,每行的开头和末尾不能有空格

然后再命令行中输入“slapadd -v -l ./mydemo.ldif”,因为我没有没有”ldapadd“这个命令。

但是有的小伙伴会出现下列错误:

①str2entry: entry -1 has no dn

slapadd: could not parse entry (line=1)

经过查询资料得知可能是因为txt文档编码问题,之前一直用的“UTF-8”编码,保存变为“ANSI”编码就可以了。

②还有一种是报:(changetype):attribute type undefined,【刚刚上面说不要复制的问题】

经过查询得知我原来添加了“changetype: add”属性,不要这一行就可以了。

③还有一种简单的问题就是database already in use

这个是因为数据库被占用了,需要先关闭LDAP服务器才可以。(把下面的CMD命令行关闭就可以)

因为slapadd 只能对本地的LDAP服务进行操作,操作时本地LDAP服务必须先停止

^_^困扰了我一天的问题终于解决啦~~~

3、测试查询刚刚插入的数据

先启动LDAP服务,参照上面描述:命令行输入“slapd -d 1”

然后,命令行cd定位到“F:\ruanjian\OpenLDAP\ClientTools”文件夹下,再输入“ldapsearch -x -b "dc=maxcrc,dc=com" "(objectclass=*)"”查询

查询结果如下:

验证成功噢耶!

相关其他文档参考:《LDIF修改ldap记录或配置示例》、《LDAP读书笔记4-LDIF文件

 4、客户端介绍

网上搜索到一个客户端:LdapBrowser282  附件提供相关下载:LdapBrowser282.zip

下载解压后直接双击:lbe.bat 文件即可运行。

点击上图中的 Fetch DNs 按钮会自动获取相关的DN信息的。

上面的输入的密码就是之前安装过程中的那个密码(如果自己没有修改过)

可以正确查询到之前添加的相关信息。

五、JMeter建立一个扩展LDAP服务器的性能测试脚本开发(搜索为例)

1、添加线程组:

2、默认配置(登陆配置元件、LDAP请求默认值)

用户名、密码、服务器、端口、DN都跟上面讲的客户端一致,不细说了。

3、添加LDAP请求

①首先可以添加“简单控制器”(可有可无),在控制器下添加两个“扩展LDAP请求

②第一个“扩展LDAP请求”的测试配置选择“Thread Bind”(必选)、“Connection timeout”(非必填)

③第二个“扩展LDAP请求”的测试配置选择“Thread Bind”(必选)、“Connection timeout”(非必填)

导入条目显示:

客户端显示:

search base:定位到根节点

search filter:搜索筛选器(详情见下)

具体文字解释说明可以参照:《Jmeter—扩展LDAP测试》、《Jmeter建立一个扩展LDAP测试计划

------------------------------------------------------------------------------------------------------------

1、search base:(可选) 进入searchbase下你想执行搜索,相对于basedn,用于绑定请求的线程。
   空的时候,作为搜索basedn基地,这文件是很重要的,如果你想使用一个“基本项”或“一级”的搜索

   在Search base域中输入搜索的根节点,即RDN。如果此域为空,将使用基础的DN作为搜索的根节点。

2、search filter:进入searchfilter,任何像样的LDAP搜索筛选器会做,但是现在,使用一些简单的,喜欢 (sn = Doe) 或 (cn = *)
3、scope:(可选) 范围字段中输入范围,它有三个选择:
 (1)baseobject搜索
  只使用给定searchbase,只有检查属性或存在。
 (2)onelevel搜索
  只搜索一个水平低于给定searchbase使用
 (3)子树搜索
  搜索对象在任何时候低于给定basedn
4、Size limit:(可选) 大小限制,指定返回条目的最大数量,
5、Time limit:(可选) 时间限制,指定最大的毫秒数,服务器可以使用来执行搜索。 这不是应用程序将等待的最长时间。
  很大returnset返回时,从一个非常快的服务器,在一个非常缓慢,你可能需要等待很长时间搜索请求的完成,但是这个参数不会影响。
6、Attributes:(可选) 你想要在搜索答案属性。 这可以用来限制大小的答案,特别是当有非常大的属性(比如一个对象 jpegPhoto)。 有三种可能性:
 (1)离开空(默认设置也必须是空的)这将返回所有属性。
 (2)放在一个空值( ”“ ),它将请求一个不存在的属性,所以在现实中它没有返回任何属性的属性,用分号隔开。 它将只返回所请求的属性
7、Return object:(可选) 返回对象。 检查将返回所有java对象属性,将添加这些请求的属性,如上面指定的。
  不意味着没有java对象属性将返回。
8、Dereference aliases:(可选) 废弃的别名。 检查将意味着它将跟随引用,不不会说。
9、Parse the search results:(可选) 解析搜索结果。 检查将意味着它会导致响应数据,不不会说。

------------------------------------------------------------------------------------------------------------

4、添加监听器

5、点击运行,并且在“查看结果树”中查看响应结果数据

至此,win8.1系统搭建LDAP以及JMeter测试脚本开发部分截止。

对LDAP的性能测试还可以参照:《Jmeter—扩展LDAP测试》、《Jmeter建立一个扩展LDAP测试计划

包括(对比,修改、删除等测试请求)

==============================================================================

附:LDAP学习资料

LDAP的特定错误

https://www.cnblogs.com/phpliu/archive/2013/09/24/3336713.html

大神:http://seanlook.com/2015/01/22/openldap_ldif_example/

小申:https://blog.csdn.net/jiujiuming/article/details/70057904

配置:http://www.micmiu.com/enterprise-app/sso/openldap-windows-config/

错误总结:https://blog.csdn.net/zdwzzu2006/article/details/8550910

error:http://qxjabc.blog.163.com/blog/static/109450820100276465324/

最新文章

  1. Mac 操作技巧
  2. iOS 内存管理机制和循环引用处理方法
  3. ie下的onscroll和onresize的优化
  4. thrift在windows的编译/安装--c++版
  5. 解析AFNetWorking 网络框架(一)
  6. Virtualbox中安装Openwrt
  7. Scala中的Extractor
  8. LoadRunner调用Java程序—性能测试-转载
  9. ZOJ2112 Dynamic Rankings 动态区间第K最值 平方分割
  10. SQL Server系统表讲解
  11. HDU 2668 Daydream
  12. 【python学习笔记】3.字符串使用
  13. 使用Python中的mock模块进行单元测试
  14. JAVA RPC (六) 之手把手从零教你写一个生产级RPC之client的代理
  15. 网络扫描工具nmap
  16. Centos7.4上Apache(http)编译安装
  17. 【CF471E】MUH and Lots and Lots of Segments 扫描线+并查集+线段树+set
  18. MATLAB 矩阵处理基础
  19. [arm学习]makefile学习总结
  20. Ionic Tabs使用

热门文章

  1. 1.13(java学习笔记)异常机制
  2. SQL表操作
  3. 分享最新申请IDP账号的过程,包含duns申请的分享(2013年6月)
  4. Android开发实践:Java层与Jni层的数组传递
  5. WPF程序中的弱事件模式
  6. 用CSS3产生动画效果
  7. 关于计算机中的《补码》,公式:-n=~n+1 引伸:~n=-n-1
  8. [转载]Linux 卸载JDK并安装新版本JDK (rpm,tar)
  9. Elasticsearch 的 Update更新
  10. 持久化配置管理 diamond 使用简介