当前位置: 首页 > news >正文

图文介绍openLDAP在windows上的安装配置

目录

  • 概述
  • 测试环境
  • 安装过程
  • 配置启动
  • 客户端介绍
  • 多级DC的ldif文件的配置

[一]、概述

什么叫LDAP呢,概念的东西这里就不多讲了,网上搜索下有很多,本文的重点是介绍如何在windows平台上安装和配置openLDAP软件。

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/
 

[二]、测试环境

  • window7 – 64位
  • openLDAP  版本:2.4.30 (http://www.userbooster.de/download/openldap-for-windows.aspx )

[三]、安装过程

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

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

[四]、配置启动

安装目录:D:\Program Files (x86)\OpenLDAP

编辑文件:D:\Program Files (x86)\OpenLDAP\slapd.conf 找到如下内容:

1suffix      "dc=maxcrc,dc=com"
2rootdn      "cn=Manager,dc=maxcrc,dc=com"

修改成:

1suffix      "dc=micmiu,dc=com"
2rootdn      "cn=Manager,dc=micmiu,dc=com"

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

1slapd -d 1

会在控制台看到类似如下的日志信息:

日志信息:slapd starting 表示服务已经启动好了。

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

1dn: dc=micmiu,dc=com
2objectclass: domain
3objectclass: top
4o: Michael Blog
5dc: micmiu
6 
7dn: ou=Developer,dc=micmiu,dc=com
8objectclass: organizationalUnit
9ou: Developer
10description: Container for developer entries
11 
12dn: ou=Tester,dc=micmiu,dc=com
13objectclass: organizationalUnit
14ou: Tester
15description: Container for test entries
16 
17dn: uid=Michael,ou=Developer,dc=micmiu,dc=com
18uid: Michael
19objectClass: inetOrgPerson
20mail: sjsky_007@gmail.com
21userPassword: 111111
22labeledURI: http://www.micmiu.com
23sn: Sun
24cn: Michael Sun
25 
26dn: uid=Miumiu,ou=Tester,dc=micmiu,dc=com
27uid: Miumiu
28objectClass: inetOrgPerson
29userPassword: 111111
30labeledURI: http://www.micmiu.com
31sn: Wu
32cn: Miumiu Wu

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

然后在控制台中切换到openLDAP安装目录下执行ldapadd命令:

1ldapadd -x -D "cn=Manager,dc=micmiu,dc=com" -w secret -f ./mydemo.ldif

参数说明:

  • -x 使用简单验证方式
  • -D 指定管理员DN(与slapd.conf中配置的一致)
  • -W 大写W表示回车后根据提示输入密码,可以使用小写的-w password 直接输入密码
  • -f 需要导入数据LDIF的文件名
  • -h 目录服务器的IP地址

添加成功会显示如下信息:

!!!有网友说:按照我上面的命令,提示:’ldapadd’ 不是内部或外部命令,也不是可运行的程序或批处理文件。经过我的验证发现,该windows版本的openLDAP确实没有这个命令,我能执行成功是因为本机安装过oracle,而Oracle自带安装了LDAP client的一些常用命令。

如果没有”ldapadd“这个命令,还可以用它自带的命令“slapadd”代替导入数据文件。不过要注意的是:和ldapadd命令不同的是:执行slapadd命令前需要先停止之前启动的 slapd 服务(打开服务确定停止了该服务),然后在控制台中切换到openLDAP安装目录下执行命令:

1slapadd -v -l ./mydemo.ldif

运行结果如下:

ldapadd 和 slapadd 的差异:

  • ldapadd 对本地和远程服务都可以操作,操作时LDAP服务是不能停止
  • slapadd 只能对本地的LDAP服务进行操作,操作时本地LDAP服务必须先停止

验证添加的信息,在控制台中,切换到%OpenLDAP_HOME%/ClientTools 输入查询命令:

1ldapsearch -x -b "dc=micmiu,dc=com" "(objectclass=*)"

查询结果如下:

D:\Program Files (x86)\OpenLDAP\ClientTools>ldapsearch -x -b "dc=micmiu,dc=com" "(objectclas
s=*)"
dc=micmiu,dc=com
objectClass=domain
objectClass=top
o=Michael Blog
dc=micmiu

ou=Developer,dc=micmiu,dc=com
objectClass=organizationalUnit
ou=Developer
description=Container for developer entries

ou=Tester,dc=micmiu,dc=com
objectClass=organizationalUnit
ou=Tester
description=Container for test entries

uid=Michael,ou=Developer,dc=micmiu,dc=com
uid=Michael
objectClass=inetOrgPerson
mail=sjsky_007@gmail.com
userPassword=111111
labeledURI=http://www.micmiu.com
sn=Sun
cn=Michael Sun

uid=Miumiu,ou=Tester,dc=micmiu,dc=com
uid=Miumiu
objectClass=inetOrgPerson
userPassword=111111
labeledURI=http://www.micmiu.com
sn=Wu
cn=Miumiu Wu

验证成功。

[五]、客户端介绍

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

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


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

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

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

[六]、多级DC的ldif文件的配置

在实际应用中我们经常会碰到二级域名,类似:app1.micmiu.com、app2.micmiu.com,那么对应到LDAP中的DC就是多级,这时我们ldif文件又是如何配置呢?下面将给出个示例演示,新建一个文件:D:\Program Files (x86)\OpenLDAP\myappuser.ldif ,内容如下:

1dn: dc=app1,dc=micmiu,dc=com
2objectclass: domain
3o: Michael Demo
4dc: app1
5 
6dn: dc=app2,dc=micmiu,dc=com
7objectclass: domain
8o: Michael Demo
9dc: app2
10 
11dn: ou=Demo,dc=app1,dc=micmiu,dc=com
12objectclass: organizationalUnit
13ou: Developer
14description: Container for Demo entries
15 
16dn: ou=Demo,dc=app2,dc=micmiu,dc=com
17objectclass: organizationalUnit
18ou: Developer
19description: Container for Demo entries
20 
21dn: uid=michael,ou=Demo,dc=app1,dc=micmiu,dc=com
22uid: admin
23objectClass: inetOrgPerson
24mail: sjsky_007@gmail.com
25userPassword: 111111
26labeledURI: http://www.micmiu.com
27sn: Sun
28cn: Michael Sun
29 
30dn: uid=hazel,ou=Demo,dc=app1,dc=micmiu,dc=com
31uid: user
32objectClass: inetOrgPerson
33userPassword: 111111
34labeledURI: http://www.micmiu.com
35sn: Wu
36cn: Hazel Wu
37 
38dn: uid=michael,ou=Demo,dc=app2,dc=micmiu,dc=com
39uid: admin
40objectClass: inetOrgPerson
41mail: sjsky_007@gmail.com
42userPassword: 111111
43labeledURI: http://www.micmiu.com
44sn: Sun
45cn: Michael Sun
46 
47dn: uid=hazel,ou=Demo,dc=app2,dc=micmiu,dc=com
48uid: user
49objectClass: inetOrgPerson
50userPassword: 111111
51labeledURI: http://www.micmiu.com
52sn: Wu
53cn: Hazel Wu

tips:注意dc的对应关系,如下图:

然后在控制台窗口中执行ldapadd命令:

ldapadd -x -D "cn=Manager,dc=micmiu,dc=com" -w secret -f ./myappuser.ldif

添加成功会显示如下信息:

如果 ldapadd 命令无法运行,先停止slapd 服务,然后在控制台中切换到openLDAP安装目录下执行命令:

slapadd -v -l ./myappuser.ldif

客户端工具中可以查询到相关信息:

ok,本文到此已经基本介绍完了,以后再详细介绍如何用Java实现对LDAP的相关操作。

相关文章:

  • 新模板电子版发布
  • Tomcat绑定具体IP
  • Heritrix 3.1.0 源码解析(十二)
  • oracle alert 日志位置
  • 转:字符编码笔记:SCII,Unicode和UTF-8
  • tomcat服务器宕机解决方案
  • JS页面跳转
  • 在Firefox 58中,WebAssembly组件性能提升了10倍
  • Java之jdbc_采用Statement查询全部数据
  • Node学习4-Buffer模块
  • nginx 和apache 性能测试对比
  • 初识 Vue(07)---(Vue 实例的生命周期钩子)
  • 征服 TIME_WAIT !
  • 如何给操作文档添加目录
  • 保存Hive查询结果的方法
  • 自己简单写的 事件订阅机制
  • 【剑指offer】让抽象问题具体化
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 08.Android之View事件问题
  • 30天自制操作系统-2
  • Angular 4.x 动态创建组件
  • Git 使用集
  • HashMap剖析之内部结构
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • isset在php5.6-和php7.0+的一些差异
  • java8-模拟hadoop
  • node 版本过低
  • Node项目之评分系统(二)- 数据库设计
  • Quartz初级教程
  • Vue2 SSR 的优化之旅
  • 从零开始在ubuntu上搭建node开发环境
  • 工程优化暨babel升级小记
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 如何解决微信端直接跳WAP端
  • 小程序开发中的那些坑
  • 译米田引理
  • 用element的upload组件实现多图片上传和压缩
  • HanLP分词命名实体提取详解
  • PostgreSQL之连接数修改
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #1015 : KMP算法
  • #include到底该写在哪
  • #laravel 通过手动安装依赖PHPExcel#
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (003)SlickEdit Unity的补全
  • (6)设计一个TimeMap
  • (9)STL算法之逆转旋转
  • (poj1.2.1)1970(筛选法模拟)
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (转)socket Aio demo
  • .bashrc在哪里,alias妙用
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .net 反编译_.net反编译的相关问题
  • .NET企业级应用架构设计系列之技术选型