Linux 安装并配置 OpenLDAP 新编(7)第三方工具

Linux 安装并配置 OpenLDAP 新编(7)第三方工具

前面经过多个章节的学习,应该基本了解了 OpenLDAP 的部署知识,在前面的操作中,我们都是用命令行的方式,对于系统初始化配置来说自然没什么问题。但是对于长期的运维来说,这确实是非常不友好的一件事,本章就来讲一讲有哪些第三方的图形化管理工具。

Apache Directory Studio

正如其名,是由 Apache 基金会提供的一个开源软件,有独立的运行版本,也有 Eclipse 的插件版本。由于资料较多,不再赘述,默认情况下不会显示条目的隐藏属性,可以通过下面的方式启用:

在链接属性中,点选 Browser Options 标签后,勾选下面的: Fetch operational attributes while browsing

Ldap Admin

Ldap Admin也是一个老牌的管理客户端,使用比较简单也不再赘述。同样的,默认情况下不会显示条目的隐藏属性,可以通过下面的方式启用:

在链接属性中,点选 Attributes 标签后,勾选下面的 Show operational attributes 后,点击右侧的 Add 按钮添加其他想要显示的隐藏属性。

Ldap Account Manager

除了客户端的管理工具之外,还有许多基于 PHP 开发的Web管理工具,只是比较让人无语的一点是,都2022年了,为什么一讲起管理端都是讲 phpLdapAdmin ,并不是单纯的说其界面如何,目前只支持到 php5 ,为了安装它还要再装个老版本的php,实在划不来。新的版本似乎还在开发中。

个人强烈推荐 Ldap Account Manager ,它同样是一款基于 php 开发的Web管理工具,虽然有收费版本,但是免费版基本适用于多数情况。为了省事,后面统一简称为 lam

安装依赖环境

除了安装必要的 php 环境之外,还需要下面的一些组件,为了省事这里只列出了yum方式安装的,起来的类似。

yum install php-ldap php-xml php-gd php-zip php-gmp php-json php-mbstring -y

密码管理

刚开始使用 lam 时,比较懵逼的一点是, lam 中有三处密码,而这很容易引起混淆。这三个密码分别为:服务器配置文件 密码、通用设置 密码以及 LDAP服务端 密码,请注意区分。其中的 通用设置 密码默认为 lam

编辑服务器资料

初次运行,需要先配置服务端资料配置,点击右上角的 LAM configuration 后根据提示创建新的配置资料。服务器设置文件主要分为4个标签:

通用设置

点选 通用设置 标签,配置 工具设置 中的 树状结构后缀安全设定 中的 合法用户列表

帐号类型

点选 帐号类型 标签,配置 激活帐号类型用户 的 LDAP后缀配置项。

登入系统

登入系统时,需要输入的密码是 LDAP 服务器端配置的初始密码。第一次进入系统,会提示是否为 帐号类型 设置LDAP后缀,确认提示信息和我们配置的信息一致后点击 建立

使用方式

这里的资料也十分丰富,此处也不再赘述。

Self Service Password

在用户的管理中,密码管理是其中不可或缺的一部分。而允许所有人登录服务器直接修改密码也不现实,因此我们可以使用一个第三方工具来允许用户自行修改自己的密码。这个工具叫: Self Service Password

同前面嗯 lam 一样,这是一个基于php开发的web项目,当然你也可以通过其他方式安装,只是我觉得php部署比较简单而已。只是唯一要吐槽的是,它基于 Smarty 模板引擎开发,因此再使用前还要先安装 Smarty3 引擎,不过这个十分简单,就不再赘述了。

安装依赖环境

yum install php-ldap php-gd php-mbstring php-curl php-filter -y

配置

关于php以及相关web server转发的配置,这里也不再赘述,只单纯说下本身的配置。配置文件是位于根目录的 conf 目录中的 config.inc.php 文件,但是官方并不建议直接修改这个文件,而是复制出一个 config.inc.local.php 文件,覆写里面的配置值:

<?php
// file: config.inc.local.php
// Override config.inc.php parameters below
$lang = "cn";
$keyphrase = "9bwXF1i0sCjGalfT";


$ldap_binddn = "cn=admin,dc=example,dc=com";
$ldap_bindpw = '这里是dn的明文密码';
$ldap_base = "dc=example,dc=com";
?>

遗漏的思考

在上一章启用memberof的结尾,我们提到了关于 groupOfNames 类型的组,不一定适用于 posixAccount 类型的用户对象。但是经过实测,也是可以生效的,所以比较纳闷为什么网上的资料,都提到要使用 groupOfUniqueNames 类型等等。而且也未能搜索出两者有何根本的区别,似乎仅仅是名字的区别,再者 groupOfNames 对象是使用 member 属性来关联,而 groupOfUniqueNames 对象,是使用 uniqueMember 属性来关联。

当然,即便是有必须要使用 groupOfUniqueNames 的理由,也不是问题,只需要再添加一个 Overlay 即可。代码如下:

# enable_memberof_posix.ldif
dn: olcOverlay=memberof,olcDatabase={1}mdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcMemberOf
olcOverlay: memberof
olcMemberOfRefint: TRUE
olcMemberOfDangling: ignore
olcMemberOfGroupOC: groupOfUniqueNames
olcMemberOfMemberAD: uniqueMember
olcMemberOfMemberOfAD: memberOf

对比前面的配置,可以就看到,区别是在于 olcMemberOf 对象的 olcMemberOfGroupOColcMemberOfMemberAD 这两个属性不同,即 Overlay 所关联的对象和属性不同,而最终映射到用户对象上的属性, 则都是由 olcMemberOfMemberOfAD 属性所指定的 memberof

参考文档

posted @ 2022-05-08 10:26  雨帝夜泪  阅读(314)  评论(0编辑  收藏  举报