apacheDS ldap 安装,配置,增删查该及备份恢复

ApacheDS、ApacheDirectoryStudio详解


一、说明

之前看了看openldap的文章,能用,但是不太好用。包括安装,部署以及web页面phpadminldap的安装,环境比较麻烦。也找了找apacheDS ldap的文章,真心没多少人有写,国人好像也没怎么用,个人使用觉得apacheDS确实比openldap好用一点

下面来说说apacheds与openldap的比较

1、apacheDS ldap 所需的服务说明

JDK:Java 语言的软件开发工具包,用户运行apacheds服务
apacheDS:ldap服务端
ApacheDirectoryStudio:ldap客户端,用来管理apacheds服务

2、界面
apacheds较为清爽,apacheds有一个客户端管理软件叫做ApacheDirectoryStudio
下载地址:http://directory.apache.org/studio/


3、安装

apacheds简单,ApacheDirectoryStudio客户端配置,不需要第三方的管理web页面,相对openldap的phpadminldap就方便很多


4、备份和还原

备份方面openldap和apacheds都差不多,基本上都是导出ldif文件的方式
还原的话apacheds相对方便一点,客户端插件有一个import的功能,直接把备份出来的文件进行倒入即可


5、创建用户 && 创建组 && 加入组
手动添加

  • openldap 较为方便(通过uid的方式,填入相应的参数就好)
  • apacheds 相对麻烦(要记住所需的Attribute和objectClass)

ldif添加

  • apacheds 更加方便,直接通过客户端将ldif文件导入即可

6、认证
apacheds 和 openldap 没什么区别



二、安装 apacheDS

环境:

  • 系统:centos 7.6
  • JDK:jdk-8u201-linux-x64.tar.gz
  • apacheDS:apacheds-2.0.0.AM26.tar.gz
  • ApacheDirectoryStudio:ApacheDirectoryStudio-2.0.0.v20180908-M14-macosx.cocoa.x86_64.dmg

1、安装jdk及添加系统变量

tar zxf jdk-8u201-linux-x64.tar.gz -C /usr/local/

vim /etc/profile && source /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_241
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

2、安装 apacheds
解压apacheds

[root@server opt]# tar zxf apacheds-2.0.0.AM26.tar.gz -C /opt/

启动apacheds

[root@server opt]# /opt/apacheds-2.0.0.AM26/bin/apacheds.sh start
Using ADS_HOME:    /opt/apacheds-2.0.0.AM26
Using JAVA_HOME:   /usr/local/jdk1.8.0_241
Starting ApacheDS instance 'default'...
[root@server opt]#

安装好了,是不是很简单,等下通过ApacheDirectoryStudio配置即可。




三、访问 apacheDS

1、将ApacheDirectoryStudio下载下来,并且安装好



2、打开客户端进行访问apacheDS

点击左下角的LDAP小图标,建立一个新的连接


3、配置连接信息

依次填入连接名,apacheds地址,端口(apacheDS默认使用10389端口),加密方式选择不加密,单机Next


3、配置认证信息

验证方式选择默认的简单认证,并且填入apacheDS默认的dn(uid=admin,ou=system),密码默认为secret,单击Finish


4、连接apacheDS服务

双击已经建立好的连接,即可登录到ApacheDS服务器


5、连接apacheDS成功


四、配置

打开配置页面


1、修改apacheDS服务默认端口号(ApacheDirectoryStudio也要一起改)
apacheDS默认的端口号是10389(ldap)和10636(ldaps),如果需要配置,可在Overview界面自行调节,修改完重启生效

  • 只用ldaps登录,选择Enable LDAPS Server即可
  • 修改默认的端口号,输入自己想用的端口即可

2、修改默认管理员密码(ApacheDirectoryStudio的连接信息也要一起改)

apacheDS中默认管理员为admin,密码为secret,当需要修改的时候
从目录结构中,单击ou=system,单击uid=admin


接着右边就会出现一个叫做userPassword的Attribute


双击value进行修改密码,选择下图中的New Password,然后输入密码并且确认,选择Show new password detail可以查看明文字符,单击ok保存


3、创建自己的partition

partition就好比一个完整的分区列表,在apacheds中,有一个默认的partition是"dc=example,dc=com",下面我们自定义一个partition

打开apacheDS配置


选择Partitions

在这里插入图片描述

单击新增Add


在Partitions General Detail 页面中,填入你自己的Partition ID和Suffix即可保存配置,command+s(mac保存方式)

重启apacheDS使刚才的修改生效

[root@server opt]# /opt/apacheds-2.0.0.AM26/bin/apacheds.sh stop
Using ADS_HOME:    /opt/apacheds-2.0.0.AM26
Using JAVA_HOME:   /usr/local/jdk1.8.0_241
Stopping ApacheDS instance 'default' running as 12474
ApacheDS stopping 12474: 0, 60 attempts remaining
ApacheDS instance 'default' stopped successfully

[root@server opt]# /opt/apacheds-2.0.0.AM26/bin/apacheds.sh start
Using ADS_HOME:    /opt/apacheds-2.0.0.AM26
Using JAVA_HOME:   /usr/local/jdk1.8.0_241
Starting ApacheDS instance 'default'...

apacheDS重启以后,刷新页面即可看到刚才新增的Partition


4、禁用匿名访问

匿名访问在Overview页面,为了安全,我们将匿名用户访问禁用。默认是开启的,只需要把Allow Anonymous Access 前面的勾去掉即可(command+s进行保存)


5、启用访问控制

访问控制即ACI权限相关,默认情况下是关闭的。也就是说,用户除了ou=users,ou=system外,对于其他条目,均有操作权限,当开启该功能,则表示只有admin用户有管理权限,其他用户均无任何权限,如果需要给某个用户开启权限,则可以参考apacheds官方提到的ACI权限

在这里插入图片描述


五、增删查改

1、新增

关于新增,我们都通过ldif导入的方式


新增两个ou(people和group)
在需要增加ou的时候,通过ldif文件的导入形式远比手动添加更为方便,下面是添加两个ou的ldif配置文件内容。并且将他们导入进去

dn: ou=group,dc=baidu,dc=com
ou: group
objectclass: top
objectclass: organizationalUnit

dn: ou=people,dc=baidu,dc=com
ou: people
objectclass: top
objectclass: organizationalUnit

下图已经导入成功



新增两个组(jenkins-admin,jenkins-view)

我们的组在ou=group下面,分别为jenkins-admin和jenkins-view分组

dn: cn=jenkins-admin,ou=group,dc=baidu,dc=com
cn: jenkins-admin
objectclass: top
objectclass: groupOfNames
member: cn=jenkins-admin,ou=group,dc=baidu,dc=com

dn: cn=jenkins-view,ou=group,dc=baidu,dc=com
cn: jenkins-view
objectclass: top
objectclass: groupOfNames
member: cn=jenkins-view,ou=group,dc=baidu,dc=com

下图已经导入成功


新增两个用户(user1,user2)

dn: cn=user1,ou=people,dc=baidu,dc=com
mail: user1@baidu.com
sn: user1
cn: user1
objectclass: top
objectclass: inetOrgPerson
objectclass: person
objectclass: organizationalPerson
userpassword: 12345678

dn: cn=user2,ou=people,dc=baidu,dc=com
mail: user2@baidu.com
sn: user2
cn: user2
objectclass: top
objectclass: inetOrgPerson
objectclass: person
objectclass: organizationalPerson
userpassword: 12345678

下图已经导入完成


2、删除
对于apacheDS 条目的删除,非常简单,只需要单击右键,选择 Delete Entry 即可。


3、查询
查询则是根据一些用户的一些attribute,通过key,value的形式来匹配用户信息
当我们选择用户的时候,可以有下列attrubute来进行查询


并且我们可以看到查询的多种条件,当然,最常用的就是"="
在这里插入图片描述

我们来看看user1用户有哪些属性可以供我们查询,如下图,我们在创建用户的时候,定义了sn、cn、即mail参数


那么,接下来我来查询mail 为 user1@baidu.com 的这个账户信息,可以看到,我们查询的目录为"dc=baidu,dc=com",单击下图中左上角的按钮,即可查询到对应的结果


4、修改
修改用户信息也特别方便,我们只需找到对应的用户,然后将右边的attribute对应的value进行双击,即可修改value。例如,我要修改user1用户的密码,如下图,找到对应的value,双击即可修改。


六、备份

apacheDS的数据备份有两种形式,我们推荐第二种方式
注意:

在apacheDS数据备份的时候,如果你将所有的数据进行导出,并且接下来恢复会遇到一些问题
在apacheDS中,Partitions不可导入,只能通过ApacheDirectoryStudio进行创建
在apacheDS中,导入数据的时候要按照架构的方式,例如先创建Partition,再创建ou,再创建组或用户
那么在本例中当Partition或者ou不存在的时候,你导入用户或者组就会失败

所以我们在备份数据的时候,选择下面第二种方式(当然你也可以通过ApacheDirectoryStudio导出的时候选择objectclass=你想要导出的类型),先备份ou,再备份group和user
还原的时候也一样,先创建Partitions,再恢复ou,最后恢复group和user

1、通过 ApacheDirectoryStudio 进行export导出即可


2、通过 ldapsearch进行导出即可

导出 ou
ldapsearch -x -D "uid=admin,ou=system" -w admin -h 192.168.101.55 -p 10389 -b "dc=baidu,dc=com" "(objectclass=organizationalUnit)" > baidu_ou_bak.ldif

导出 group
ldapsearch -x -D "uid=admin,ou=system" -w admin -h 192.168.101.55 -p 10389 -b "dc=baidu,dc=com" "(objectclass=groupOfNames)" > baidu_group_bak.ldif

导出 user
ldapsearch -x -D "uid=admin,ou=system" -w admin -h 192.168.101.55 -p 10389 -b "dc=baidu,dc=com" "(objectclass=inetOrgPerson)" > baidu_user_bak.ldif

在下图中可以看到,我们已经将ou,group,user进行了备份


七、还原

还原特别方便,通过 ApacheDirectoryStudio import 备份的 ldif 文件即可
先将刚才备份的数据进行删除。如下图所示,这时候我们只剩下 Partitions(“dc=baidu,dc=com”)


接下来,我们将备份的文件通过 ApacheDirectoryStudio 进行导入


1、将备份的ou文件 baidu_ou_bak.ldif 进行导入


2、将备份的group文件 baidu_group_bak.ldif 进行导入


3、将备份的user文件 baidu_user_bak.ldif 进行导入


可以看到,在我们导入完成以后,我们所删除的数据都已经恢复到ApacheDS服务当中

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值