目录:php
什么是LDAP?java
所述轻量级目录访问协议,或 LDAP,是一种应用协议用于查询和修改目录服务运行在TCP / IP(经过维基百科).LDAP全称是一个轻量级的目录访问协议,它是创建在TCP / IP基础以前的用户查询和修改目录服务的。这是照着wiki翻译的,可是有人要问了什么是目录Service(目录服务)?linux
按照wiki的说法的话讲:在软件行业,目录就如同一个字典,他使得经过某一名称去查找绑定在该名称上的值得方式成为一种可能。有点相似Java中Map的概念.a 目录服务仅仅是一个存储,组织和提供对目录中信息的访问的软件系统。一个目录服务就是一个简单的软件系统,在这个目录上提供了存取和组织信息的功能.LDAP目录中能够存储各类类型的数据:电子邮件地址,邮件路由信息,人力资源数据,公用密匙,联系人列表,等等。数据库
openLDAP官方网站:http://www.openldap.org/服务器
openLDAP官网只提供了linux平台的相关安装文件,windows平台的安装包能够到如下一些网站下载:数据结构
按照提示 一直 next ,直到安装完成:dom
安装
secret
安装完成后,在系统服务中(运行>services.msc),找到 OpenLDAP Service,先中止服务,再把启动类型修改为手动,便于本身的测试。
安装目录: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主要的简称含义:
①设置manager的访问密码,CMD中键入slappasswd,按照提示输入两遍密码,即生成了加密后的密码串
②(也能够用MD5加密方式,命令:slappasswd -h {MD5}),复制粘贴到slapd.conf文件的rootpw部分(本文不用,由于用的默认密码,若是用的本身的密码能够用这个办法加密)
======================扩展======================
打开控制台,切换到openLDAP安装目录下,启动openLDAP,命令以下:slapd -d 1
可是cmd一直报:
通过痛苦的查询,忽然发现显示数据库被占用,解决办法:进入“服务”中,先中止服务,再进入cmd再输入“slapd -d 1”
启动成功!搭建LDAP服务器完成!
(注:以上内容参考地址《图文介绍openLDAP在windows上的安装配置》)
新建一个文件: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服务必须先中止
^_^困扰了我一天的问题终于解决啦~~~
先启动LDAP服务,参照上面描述:命令行输入“slapd -d 1”
而后,命令行cd定位到“F:\ruanjian\OpenLDAP\ClientTools”文件夹下,再输入“ldapsearch -x -b "dc=maxcrc,dc=com" "(objectclass=*)"”查询
查询结果以下:
验证成功噢耶!
相关其余文档参考:《LDIF修改ldap记录或配置示例》、《LDAP读书笔记4-LDIF文件》
网上搜索到一个客户端:LdapBrowser282 附件提供相关下载:LdapBrowser282.zip
下载解压后直接双击:lbe.bat 文件便可运行。
点击上图中的 Fetch DNs 按钮会自动获取相关的DN信息的。
上面的输入的密码就是以前安装过程当中的那个密码(若是本身没有修改过)
能够正确查询到以前添加的相关信息。
5、JMeter创建一个扩展LDAP服务器的性能测试脚本开发(搜索为例)
一、添加线程组:
二、默认配置(登录配置元件、LDAP请求默认值)
用户名、密码、服务器、端口、DN都跟上面讲的客户端一致,不细说了。
三、添加LDAP请求
①首先能够添加“简单控制器”(无关紧要),在控制器下添加两个“扩展LDAP请求”
②第一个“扩展LDAP请求”的测试配置选择“Thread Bind”(必选)、“Connection timeout”(非必填)
③第二个“扩展LDAP请求”的测试配置选择“Thread Bind”(必选)、“Connection timeout”(非必填)
导入条目显示:
客户端显示:
search base:定位到根节点
search filter:搜索筛选器(详情见下)
具体文字解释说明能够参照:《Jmeter—扩展LDAP测试》、《Jmeter创建一个扩展LDAP测试计划》
------------------------------------------------------------------------------------------------------------
一、search base:(可选) 进入searchbase下你想执行搜索,相对于basedn,用于绑定请求的线程。
空的时候,做为搜索basedn基地,这文件是很重要的,若是你想使用一个“基本项”或“一级”的搜索
在Search base域中输入搜索的根节点,即RDN。若是此域为空,将使用基础的DN做为搜索的根节点。
二、search filter:进入searchfilter,任何像样的LDAP搜索筛选器会作,可是如今,使用一些简单的,喜欢 (sn = Doe) 或 (cn = *)
三、scope:(可选) 范围字段中输入范围,它有三个选择:
(1)baseobject搜索
只使用给定searchbase,只有检查属性或存在。
(2)onelevel搜索
只搜索一个水平低于给定searchbase使用
(3)子树搜索
搜索对象在任什么时候候低于给定basedn
四、Size limit:(可选) 大小限制,指定返回条目的最大数量,
五、Time limit:(可选) 时间限制,指定最大的毫秒数,服务器可使用来执行搜索。 这不是应用程序将等待的最长时间。
很大returnset返回时,从一个很是快的服务器,在一个很是缓慢,你可能须要等待很长时间搜索请求的完成,可是这个参数不会影响。
六、Attributes:(可选) 你想要在搜索答案属性。 这能够用来限制大小的答案,特别是当有很是大的属性(好比一个对象 jpegPhoto)。 有三种可能性:
(1)离开空(默认设置也必须是空的)这将返回全部属性。
(2)放在一个空值( ”“ ),它将请求一个不存在的属性,因此在现实中它没有返回任何属性的属性,用分号隔开。 它将只返回所请求的属性
七、Return object:(可选) 返回对象。 检查将返回全部java对象属性,将添加这些请求的属性,如上面指定的。
不意味着没有java对象属性将返回。
八、Dereference aliases:(可选) 废弃的别名。 检查将意味着它将跟随引用,不不会说。
九、Parse the search results:(可选) 解析搜索结果。 检查将意味着它会致使响应数据,不不会说。
------------------------------------------------------------------------------------------------------------
四、添加监听器
五、点击运行,而且在“查看结果树”中查看响应结果数据
至此,win8.1系统搭建LDAP以及JMeter测试脚本开发部分截止。
对LDAP的性能测试还能够参照:《Jmeter—扩展LDAP测试》、《Jmeter创建一个扩展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/