首页 > 代码库 > Openldap导入数据(三)

Openldap导入数据(三)

无论是通过本地系统用户和组转换为ldap相关数据,还是通过ldif文件导入,都无法做到所见即所得,仿佛openldap就无法有一个真正可视化的操作界面一样。我们都知道,通过本地系统转换步骤繁琐,通过ldif进行导入或ldapadd交互命令录入又容易出错,且需要对ldap数据结构特别清晰,所以如果有可视化的界面的话,对openldap的管理和编辑就会变得大大简化。值得高兴的是,这种可视化的工具很早就出现了,而且大大提高了我们的工作效率,在此就分别介绍一下Linux上和Windows上的ldap可视化管理工具。

Linux上的ldap管理工具

首先是Linux上的,主要介绍Ldap Account Manager和PhpLdapAdmin这两个软件,由于在Linux上进行可视化操作,都是借助于web的方式进行展现,所以需要安装web软件。而这两款软件都是基于php开发,所以还需要安装php以及运行库进行支持。由于是测试,我就将openldap和客户端管理软件(LAM和PLA)安装在同一台Linux上,如果是生产环境,可以考虑分别部署。

1、Ldap Account Manager的安装介绍

首先,我对虚拟机进行一个快照的还原,还原到之前完成openldap安装,但是还没有导入任何数据的状态,先进行一个查询进行确认。这仅仅是为了确认,环境是刚刚部署的,且在没有任何数据的情况下,如何通过Ldap Account Manager进行数据的初始化和数据的补充完善。

[root@ldapsrv01 ~]# ldapsearch  -x -b "dc=contoso,dc=com"

# extended LDIF

#

# LDAPv3

# base <dc=contoso,dc=com> with scope subtree

# filter: (objectclass=*)

# requesting: ALL

#


# search result

search: 2

result: 32 No such object


# numResponses: 1


1)安装依赖软件包

yum install -y httpd php php-ldap php-gd

2)下载ldap account manager源码包

 wget 
http://jaist.dl.sourceforge.net/project/lam/LAM/4.2/ldap-account-manager-4.2.tar.gz

3)修改配置

mv ldap-account-manager-4.2.tar.gz /var/www/html/
cd /var/www/html/
tar -zxf ldap-account-manager-4.2.tar.gz
mv ldap-account-manager ldap
cd ldap/config
[root@ldapsrv01 config]# ll
total 28
-rw-r--r-- 1 root root  241 Mar 26  2012 config.cfg_sample
-rw-r--r-- 1 root root 2408 Mar 26  2012 lam.conf_sample
-rw-r--r-- 1 root root 1041 Mar 26  2012 language
drwxr-xr-x 3 root root 4096 Mar 26  2012 pdf
drwxr-xr-x 2 root root 4096 Mar 26  2012 profiles
drwxr-xr-x 2 root root 4096 Mar 26  2012 selfService
-rw-r--r-- 1 root root  183 Mar 26  2012 shells
cp config.cfg_sample config.cfg
cp lam.conf_sample lam.conf
sed -i ‘s/cn=Manager/cn=admin/g‘ lam.conf
sed -i ‘s/dc=my-domain/dc=contoso/g‘ lam.conf
sed -i ‘/treesuffix/s/dc=mydomain,dc=org/dc=contoso,dc=com/‘ lam.conf
#注意这里要修改,不然你在web界面看不到自己的域树
[root@ldapsrv01 config]# diff lam.conf_sample lam.conf
8c8
< serverURL: ldap://localhost:389
---
> serverURL: ldap://192.168.49.138:389
13c13
< admins: cn=Manager,dc=my-domain,dc=com
---
> admins: cn=admin,dc=contoso,dc=com
20c20
< treesuffix: dc=yourdomain,dc=org
---
> treesuffix: dc=contoso,dc=com
55c55
< types: suffix_user: ou=People,dc=my-domain,dc=com
---
> types: suffix_user: ou=People,dc=contoso,dc=com
59c59
< types: suffix_group: ou=group,dc=my-domain,dc=com
---
> types: suffix_group: ou=group,dc=contoso,dc=com
63c63
< types: suffix_host: ou=machines,dc=my-domain,dc=com
---
> types: suffix_host: ou=machines,dc=contoso,dc=com
67c67
< types: suffix_smbDomain: dc=my-domain,dc=com
---
> types: suffix_smbDomain: dc=contoso,dc=com

4)启动apache服务

chown -R apache:apache /var/www/html/ldap
/etc/init.d/httpd start

5)浏览器打开并在web中管理ldap

技术分享

好吧,输入http://192.168.49.138/ldap/templates/tree/treeViewContainer.php,  就会看到LAM的登录界面,输入管理员的密码,选择喜欢的语言,登录。

技术分享

由于我的openldap没有任何数据,包括base等信息,这里提示帮助我进行创建,同意就好。

技术分享

base,people等信息创建完成之后,我先创建一个组,然后再向这个组中添加用户,选择组,然后新组。

技术分享

输入组的相关信息,保存即可成功创建一个用户组。

技术分享

再选择用户标签,新建一个用户,首先输入用户个人信息,

技术分享

然后是Unix信息,也即在Linux Server上的用户名密码等信息,类似于/etc/passwd保存的信息。

技术分享

还有Shadow属性,如果有需要使用的话,可以启动该扩展。

技术分享

关于samba的设置,如果有samba服务器的话,可以在此添加相关设置。

技术分享

最后,给用户设置一个密码,确定完成。

技术分享

点击保存按钮,用户的新建也就完成了。

技术分享

回到用户标签,可以查看创建好的用户,当然也可以对用户进行编辑和删除等操作,也就是说,用户的增删改查都在这里进行。

技术分享

回到组标签中,可以查看创建好的组,跟用户标签一样,对组的增删改查都可以在这里进行。

技术分享

点击右上角的“树状结构”可以看到域树,有点类似Windows AD的结构,能对域的结构一目了然。

补充一点:

如果这里无法显示,那么结果的方法是:

    第一:检查域的base节点是否创建,如果没有可以通过ldif导入或者手工录入。

    第二:注意lam.conf中的treesuffix是否修改为自己的域名,默认为mydomain.org。

    第三:检查LAM版本,如果前两步都已修改扔无法显示,可以考虑换更新的版本进行尝试。我的配置使用LAM3.7无法显示,换4.2能正常显示。

关于Lamp Account Manager的使用说明,就到此为止了。

2、PhpLadpAdmin的安装介绍

下面就直接在上面的基础上进行PLA的安装,因为PLA和LAM一样都依赖于php和apache,这里就省略安装过程了。

1)安装依赖软件包

 yum install -y httpd php php-ldap php-gd

2)下载phpldapadmin软件包

wget http://nchc.dl.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/1.2.3/phpldapadmin-1.2.3.zip

3)修改phpldapadmin配置文件

mv phpldapadmin-1.2.3.zip /var/www/html/
cd /var/www/html/
unzip phpldapadmin-1.2.3.zip
mv phpldapadmin-1.2.3 phpldapadmin
cd phpldapadmin/config      
[root@ldapsrv01 config]# ll
total 28
-rw-r--r-- 1 root root 24935 Oct  1  2012 config.php.example
cp config.php.example config.php


#其实如果openldap和phpldapadmin装在同一台服务器上,只需拷贝config.php即可,无须进行下面配置文件的修改,但是最好还是进行修改,万一某一天需要迁移phpldapadmin到别的server,直接拷贝配置文件即可

vi config.php

需要修改的地方主要有:

将$ldapservers->SetValue($i,’server’,‘name’,‘My LDAP Server’);这一行之后的如下内容:

// $ldapservers->SetValue($i,’server’,‘host’,’127.0.0.1′);

// $ldapservers->SetValue($i,’server’,‘port’,’389′);

// $ldapservers->SetValue($i,’server’,‘base’,array(”));

// $ldapservers->SetValue($i,’server’,‘auth_type’,‘cookie’);

# $ldapservers->SetValue($i,’login’,‘dn’,‘cn=Manager,dc=example,dc=com’);

# $ldapservers->SetValue($i,’login’,‘pass’,‘secret’);

依次对应修改为:

$ldapservers->SetValue($i,’server’,‘host’,‘192.168.49.138’);

$ldapservers->SetValue($i,’server’,‘port’,’389′);

$ldapservers->SetValue($i,’server’,‘base’,array(‘dc=contoso,dc=com’));

$ldapservers->SetValue($i,’server’,‘auth_type’,‘cookie’);

$ldapservers->SetValue($i,’login’,‘dn’,‘cn=admin,dc=contoso,dc=com’);

$ldapservers->SetValue($i,’login’,‘pass’,‘’); #这里留空,需要在浏览器中填写,不建议将dn的密码明文写在此处

4)启动apache服务

chown -R apache:apache /var/www/html/phpldapadmin
/etc/init.d/httpd restart #因为我在部署LAM的时候已经启动了httpd,所以这里用重启命令

5)在浏览器中通过PLA管理ldap

技术分享

打开浏览器,输入地址:http://192.168.49.138/phpldapadmin/index.php ,然后选择登录。

注意:如果这里点击登录之后,出现一系列的错误,且错误信息包含:Php版本和PLA版本等信息,那就是因为版本不匹配,我的PHP版本是5.3.3,使用PLA 1.1.0就无法登录,出现包含php版本以及PLA版本的错误信息,于是更换PLA 1.2.3,更新PLA版本之后一切正常。

技术分享

这里登录之后看到的界面,左侧是域的树状结构,右侧是对应的详细信息。

技术分享

因为用户组sudoers已经在LAM创建过了,这里只演示创建一个新的用户。选择sudoers组,然后在右侧选择“创建一个子条目”。

技术分享

在右侧的创建对象菜单中选择要创建对象的类型,可以看到PLA中的对象类型是相当丰富的,这里选择Generic: User Account。

技术分享

技术分享

键入用户的详细信息,然后选择“创建对象”。

技术分享

最后给出新建对象的概览信息,同时这也是确认信息的操作,确认无误则提交,如果有问题还可以取消操作,我觉得这个步骤还是蛮人性化的,这里提交。

技术分享

好的,用户创建成功,可以在左侧域树种看到,同样也可以点击用户在右侧查看详细信息。

技术分享

如果要查看ldap相关的objectClass属相,可以选择“显示内部属性”。

技术分享

再回到LAM中,刷新一下就可以看到在PLA中添加的用户了,这两个工具都可以对用户进行管控,并且可以管理对方创建的用户,所以无须担心多个管理者使用工具的不同造成数据无法统一管理,不同的只是工具,数据还是统一的,这点要注意。

本文出自 “IT小二郎” 博客,请务必保留此出处http://jerry12356.blog.51cto.com/4308715/1851408

Openldap导入数据(三)