简介
LDAP(轻量级目录访问协议)是一种通过文件和目录层次结构管理相关信息的协议,它可以从集中位置管理信息。在某些方面,它的功能类似于关系数据库,并且可以用于组织和存储任何类型的信息。LDAP通常用于集中式身份验证。在本指南中,我们将介绍如何在 Ubuntu 12.04 VPS 上安装和配置 OpenLDAP 服务器,并向其添加一些用户和组。在以后的教程中,我们将介绍如何使用 LDAP 进行身份验证。
安装 LDAP
OpenLDAP 服务器在 Ubuntu 的默认软件仓库中,包名为 “slapd”,因此我们可以使用 apt-get 轻松安装它。我们还将安装一些额外的实用工具:
sudo apt-get update sudo apt-get install slapd ldap-utils
安装过程中会要求您输入并确认管理员 LDAP 帐户的密码。
重新配置 slapd
安装完成后,我们实际上需要重新配置 LDAP 软件包。输入以下命令以打开软件包配置工具:
sudo dpkg-reconfigure slapd
您将被询问一系列关于如何配置软件的问题。
- 忽略 OpenLDAP 服务器配置? 否
- DNS 域名?
- 这将创建您的目录路径的基本结构。阅读消息以了解其工作原理。
- 对于如何配置此项没有固定规则。如果您在此服务器上有实际的域名,可以使用该域名。否则,可以使用任何您喜欢的名称。
- 在本文中,我们将称其为 test.com
- 组织名称?
- 同样,这取决于您
- 在本指南中,我们将使用 example
- 管理员密码?
- 使用您在安装过程中配置的密码,或选择其他密码
- 要使用的数据库后端? HDB
- 在清除 slapd 时删除数据库? 否
- 移动旧数据库? 是
- 允许 LDAPv2 协议? 否
安装 PHPldapadmin
我们将通过名为 PHPldapadmin 的 Web 界面管理 LDAP。这也可以在 Ubuntu 的默认软件仓库中找到。
使用以下命令安装:
sudo apt-get install phpldapadmin
这将安装所有必需的 Web 服务器和 PHP 依赖项。
配置 PHPldapadmin
在尝试使用之前,我们需要在 Web 界面配置文件中配置一些值。
以 root 权限打开配置文件:
sudo nano /etc/phpldapadmin/config.php
搜索以下部分并相应地修改它们。
将 红色 值更改为您将如何引用服务器的方式,可以是域名或 IP 地址。
$servers->setValue('server','host','<span class="highlight">domain_nam_or_IP_address</span>');
对于下一部分,您需要反映在我们重新配置 “slapd” 时要求的 DNS 域名时给出的相同值。
您需要将其转换为 LDAP 可理解的格式,方法是通过分隔每个域组件。域组件是由点分隔的任何内容。
然后,将这些组件作为 “dc” 属性的值给出。
例如,如果您的 DNS 域名条目是 “imaginary.lalala.com”,LDAP 需要看到 “dc=imaginary,dc=lalala,dc=com”。编辑以下条目以反映您选择的名称(我们的是 “test.com”,如您所记得的):
$servers->setValue('server','base',array('dc=<span class="highlight">test</span>,dc=<span class="highlight">com</span>'));
下一个要修改的值将使用您刚刚在上一个条目中设置的相同域组件。在下面的条目中的 “cn=admin” 之后添加这些内容:
$servers->setValue('login','bind_id','cn=admin,dc=<span class="highlight">test</span>,dc=<span class="highlight">com</span>');
搜索有关 “hide_template_warning” 属性的部分。我们希望取消注释此行,并将值设置为 “true”,以避免一些不重要的烦人警告。
$config->custom->appearance['hide_template_warning'] = <span class="highlight">true</span>;
保存并关闭文件。
登录到 Web 界面
您可以通过在 Web 浏览器中输入您的域名或 IP 地址后跟 “/phpldapadmin” 来访问:
<span class="highlight">domain_name_or_IP_address</span>/phpldapadmin
点击左侧的 “login” 链接。
您将收到一个登录提示。如果您正确配置了 PHPldapadmin,则正确的登录 DN(可分辨名称)应该被预填充。在我们的情况下,这将是 “cn=admin,dc=test,dc=com”。
输入您在我们的 slapd 配置过程中选择的密码。
最初,您将看到一个相当简洁的界面。
如果您点击域组件(dc=test,dc=com)旁边的 “plus”,您将看到我们正在使用的管理员登录。
添加组织单位、组和用户
LDAP非常灵活。根据您需要访问的信息类型和您的用例,您可以以许多不同的方式创建层次结构和关系。
我们将为我们的信息创建一些基本结构,然后用信息填充它。
创建组织单位
首先,我们将创建一些信息类别,以便稍后放置信息。因为这是一个基本设置,我们只需要两个类别:组和用户。
单击左侧的“在此处创建新条目”链接。
在这里,我们可以看到我们可以创建的不同类型的条目。
因为我们只是将其用作组织结构,而不是信息密集的条目,所以我们将使用“通用:组织单位”模板。
我们将被要求为我们的组织单位创建一个名称。键入“groups”:
然后,我们需要提交更改。
完成后,我们可以在左侧看到一个新条目。
我们将创建另一个组织结构以便开始。重复该过程,但这次使用名称“users”。
完成后,您应该看到类似这样的内容:
创建组
我们将创建三个不同的组,这些组可以用于根据他们需要的权限将用户组织到不同的“访问”组中。
我们将创建一个“admin”组,一个“irc”组和一个“user”组。然后,如果我们设置了客户端LDAP身份验证,我们可以允许不同组的成员进行身份验证。
我们希望在“groups”组织单位内创建这些组。单击我们创建的“groups”类别。在主窗格中,单击“在组中创建子条目”。
这次,我们将选择“通用:Posix组”类别。
填写“admin”作为组名。单击“创建对象”,然后在下一页上确认。
重复该过程,但只需用“irc”和“user”替换“admin”名称。确保在创建子条目之前重新单击“ou=groups”条目,否则您可能会在错误的类别下创建条目。
现在,您应该在左侧面板中有三个组:
您可以通过单击该条目,然后单击“查看3个子项”来查看“ou=groups”类别中条目的概述:
创建用户
接下来,我们将创建用户并将其放入这些组中。首先,单击“ou=users”类别。单击“创建子条目”。
我们将为这些条目选择“通用:用户帐户”。
我们将得到许多要填写的字段:
填写所有条目,使其对您的用户有意义。
需要记住的一点是,“通用名称”对于类别中的每个条目都需要是唯一的。因此,您可能希望使用用户名格式,而不是自动填充的默认“FirstName LastName”。
在底部单击“创建对象”,然后在下一页上确认。
要创建其他用户,我们将利用复制条目的能力。
单击左侧面板中刚创建的用户。在主窗格中,单击“复制或移动此条目”:
调整条目中“cn=user”的部分,以指向您想要用于新条目的通用名称。在底部单击“复制”:
您将看到下一页上填充了您第一个用户的数据。您需要调整它以匹配新用户的信息。
确保调整uidNumber。在底部单击“创建对象”按钮。
添加用户到组
我们可以通过点击所需的组来将用户添加到不同的组中。在主窗格中,选择“添加新属性”:
从下拉菜单中选择“memberUid”:
在弹出的文本字段中,输入您想要添加的第一个用户。点击底部的“更新对象”:
然后,通过点击“修改组成员”并从可用选项中选择他们来添加更多成员:
结论
现在,您应该已经设置了一个基本的LDAP服务器,并拥有一些用户和组。您可以扩展这些信息,并添加所有不同的组织结构,以复制您业务的结构。
我们将在另一部分中介绍如何使用LDAP凭据对各种服务进行身份验证。