如何在 Ubuntu 12.04 VPS 上安装和配置基本的 LDAP 服务器

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

简介


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非常灵活。根据您需要访问的信息类型和您的用例,您可以以许多不同的方式创建层次结构和关系。

我们将为我们的信息创建一些基本结构,然后用信息填充它。

创建组织单位


首先,我们将创建一些信息类别,以便稍后放置信息。因为这是一个基本设置,我们只需要两个类别:组和用户。

单击左侧的“在此处创建新条目”链接。

在这里,我们可以看到我们可以创建的不同类型的条目。

LDAP object selection

因为我们只是将其用作组织结构,而不是信息密集的条目,所以我们将使用“通用:组织单位”模板。

我们将被要求为我们的组织单位创建一个名称。键入“groups”:

LDAP groups name

然后,我们需要提交更改。

LDAP commit ou

完成后,我们可以在左侧看到一个新条目。

LDAP ou groups

我们将创建另一个组织结构以便开始。重复该过程,但这次使用名称“users”。

完成后,您应该看到类似这样的内容:

LDAP ou complete

创建组


我们将创建三个不同的组,这些组可以用于根据他们需要的权限将用户组织到不同的“访问”组中。

我们将创建一个“admin”组,一个“irc”组和一个“user”组。然后,如果我们设置了客户端LDAP身份验证,我们可以允许不同组的成员进行身份验证。

我们希望在“groups”组织单位内创建这些组。单击我们创建的“groups”类别。在主窗格中,单击“在组中创建子条目”。

LDAP child of groups

这次,我们将选择“通用:Posix组”类别。

LDAP posix group

填写“admin”作为组名。单击“创建对象”,然后在下一页上确认。

重复该过程,但只需用“irc”和“user”替换“admin”名称。确保在创建子条目之前重新单击“ou=groups”条目,否则您可能会在错误的类别下创建条目。

现在,您应该在左侧面板中有三个组:

LDAP three groups

您可以通过单击该条目,然后单击“查看3个子项”来查看“ou=groups”类别中条目的概述:

LDAP view three children

创建用户


接下来,我们将创建用户并将其放入这些组中。首先,单击“ou=users”类别。单击“创建子条目”。

我们将为这些条目选择“通用:用户帐户”。

LDAP user account

我们将得到许多要填写的字段:

LDAP user fields

填写所有条目,使其对您的用户有意义。

需要记住的一点是,“通用名称”对于类别中的每个条目都需要是唯一的。因此,您可能希望使用用户名格式,而不是自动填充的默认“FirstName LastName”。

在底部单击“创建对象”,然后在下一页上确认。

要创建其他用户,我们将利用复制条目的能力。

单击左侧面板中刚创建的用户。在主窗格中,单击“复制或移动此条目”:

LDAP copy user entry

调整条目中“cn=user”的部分,以指向您想要用于新条目的通用名称。在底部单击“复制”:

LDAP copy common name

您将看到下一页上填充了您第一个用户的数据。您需要调整它以匹配新用户的信息。

确保调整uidNumber。在底部单击“创建对象”按钮。

添加用户到组


我们可以通过点击所需的组来将用户添加到不同的组中。在主窗格中,选择“添加新属性”:

LDAP add new attribute

从下拉菜单中选择“memberUid”:

LDAP memberuid entry menu

在弹出的文本字段中,输入您想要添加的第一个用户。点击底部的“更新对象”:

LDAP add user2

然后,通过点击“修改组成员”并从可用选项中选择他们来添加更多成员:

LDAP user choices

结论


现在,您应该已经设置了一个基本的LDAP服务器,并拥有一些用户和组。您可以扩展这些信息,并添加所有不同的组织结构,以复制您业务的结构。

我们将在另一部分中介绍如何使用LDAP凭据对各种服务进行身份验证。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/32348.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【4003】基于springboot实现的线上阅读系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…

ARM裸机:基础了解

ARM的几种版本号 ARM内核版本号 ARMv7 ARM SoC版本号 Cortex-A8 芯片型号 S5PV210 ARM型号的发展历程 m microcontroller微控制器 就是单片机 a application应用级处理器 就是手机、平板、电脑的CPU r realtime实时处理器 响应速度快,主要用在工业、航天等领域 soc 、cpu、…

ubutu 18.04源码编译安装freeswitch 1.10.7支持视频通话——筑梦之路

软件版本说明 ubuntu版本18.04&#xff1a;https://releases.ubuntu.com/18.04.6/ubuntu-18.04.6-live-server-amd64.iso freeswitch 版本1.10.7&#xff1a;https://files.freeswitch.org/freeswitch-releases/freeswitch-1.10.7.-release.tar.gz spandsp包&#xff1a;https:…

VB计算圆柱体积和表面积

已知圆半径和圆柱的高&#xff0c;计算圆柱体积和表面积。 Public Class Form1Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickConst PI 3.14159Dim r As Integer, h As IntegerDim t As Single, s As Singler Val(TextBox1.Text)h V…

免杀笔记 ---> C语言

这次的更新可能有点慢&#xff0c;因为这段时间也比较忙&#xff0c;加上C语言还得和汇编结合&#xff0c;导致小编一个知识点总是得反复揣摩&#xff08;太菜了&#xff09;&#xff0c;所以免杀的更新篇幅长度可能会达到两个月和三个月&#xff0c;但是小编能保证&#xff0c…

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-24深度卷积神经网络AlexNet

24深度卷积神经网络AlexNet import torch from torch import nn import liliPytorch as lp import liliPytorch as lp import matplotlib.pyplot as pltdropout1 0.5 #Alexnet架构 net nn.Sequential(nn.Conv2d(1, 96, kernel_size11, stride4, padding1),nn.ReLU(),nn.MaxPo…

智慧校园综合管理系统的优点有哪些

在当今这个信息化飞速发展的时代&#xff0c;智慧校园综合管理系统正逐步成为教育领域的一股革新力量&#xff0c;它悄然改变着我们对传统校园管理的认知。这套系统如同一个无形的桥梁&#xff0c;将先进的信息技术与学校的日常运作紧密相连&#xff0c;展现出多维度的优势。 …

训练营第四十五天 | 435. 无重叠区间763.划分字母区间56. 合并区间738.单调递增的数字968.监控二叉树

435. 无重叠区间 力扣题目链接(opens new window) 给定一个区间的集合&#xff0c;找到需要移除区间的最小数量&#xff0c;使剩余区间互不重叠。 注意: 可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”&#xff0c;但没有相互重叠。 示例 1…

6/22 第四周 python操作word

学习到了word有四个段落&#xff0c;都可以通过python来操作。 并且课程的体系&#xff0c;只是一个启蒙&#xff0c;需要在公司的项目中熟悉&#xff0c;从而具备专项测试的能力。 后续每天的学习笔记也需要侧重于理解的部分。

【CPP】归并排序

目录 1.归并排序简介代码分析归并的非递归形式 1.归并排序 归并排序&#xff08;MERGE-SORT&#xff09; 是建立在归并操作上的一种有效的排序算法,该算法是采用分治法&#xff08;Divide andConquer&#xff09;的一个非常典型的应用。 将已有序的子序列合并&#xff0c;得到…

NXP实战笔记(十四):32K3xx基于RTD-SDK在S32DS实现HSE的安装。

目录 1、概述 1.1、什么是HSE&#xff1f; 1.2、如何实现HSE的OTA功能 1.3、S32K3放置HSE的地址 2、通过调试器安装HSE 3、通过IVT方式安装HSE 4、坑点慎重踩 4.1、优化等级 4.2、Flash放RAM 4.3、C40_Ip配置更改 4.4、程序烧录 5、测试结果 6、代码链接 1、概述 首…

“论SOA在企业集成架构设计中的应用”必过模板,软考高级,系统架构设计师论文

论文真题 企业应用集成(Enterprise Application Integration, EAI)是每个企业都必须要面对的实际问题。面向服务的企业应用集成是一种基于面向服务体系结构(Service-OrientedArchitecture,SOA)的新型企业应用集成技术,强调将企业和组织内部的资源和业务功能暴露为服务,实现…

vue-json-viewer组件 copyable失效,页面并不现实copy按钮

<json-viewer :value"props.row.param_detail.query" :expand-depth"10" copyable> </json-viewer> 官方文档中&#xff0c;说明&#xff0c;只要在json-viewer中加入 copyable属性&#xff0c;即可实现copy功能&#xff0c;如下图&#xff1…

yolov8环境搭建+训练自己数据集

一、yolov8环境搭建 1. 安装miniconda环境 地址&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda 选择Python3.8版本 最好安装在C盘 勾选自动添加环境变量 ***以下操作安装过程中关闭代理软件 *** 2. 创建虚拟环境 conda create -n yolov8 python3…

vue自建h5应用,接入企业微信JDK(WECOM-JSSDK),实现跳转添加好友功能

一、项目场景&#xff1a; 1、使用vue开发了一套h5页面的项目 2、这个h5链接是在企业微信里某个地方打开的 3、打开页面的时候有一个好友列表&#xff0c;点击好友列表某一条复制手机号跳转到企业微信添加好友页面 二、实现的效果图 博客只允许上传gif图&#xff0c;所以我只…

浙江工商大学24计算机考研数据,好几个专业都接收调剂,计专复试线284分!

浙江工商大学&#xff08;Zhejiang Gongshang University&#xff09;&#xff0c;简称“浙商大”&#xff08;ZJSU&#xff09;&#xff0c;坐落于浙江省杭州市&#xff0c;是中华人民共和国教育部、中华人民共和国商务部和浙江省人民政府共建的浙江省重点建设高校&#xff0c…

C#调用OpenCvSharp计算并显示带掩膜的图像直方图

之前的文章简要测试了调用OpenCvSharp的Cv2.CalcHist函数计算直方图的用法&#xff0c;不过使用过程中参数mask的值始终为null&#xff0c;也就是计算的整幅图像的直方图&#xff0c;如果mask不为空&#xff0c;则可以计算图像指定区域的直方图&#xff0c;本文学习掩膜的创建方…

css grid实现九宫格布局

常见的九宫格布局可以使用flex布局实现&#xff0c;但是flex布局有个致命的缺陷&#xff0c;比如3行3列的布局&#xff0c;当第不足3个元素的时候&#xff0c;元素依然是平局平铺的&#xff0c;这样就不满足九宫格的效果&#xff0c;这种情况&#xff0c;使用grid布局可以轻松搞…

Zigbee协议详解:低功耗无线通信的理想选择

什么是Zigbee协议 Zigbee是一种基于IEEE 802.15.4标准的无线通信协议&#xff0c;专为低功耗、低数据速率和短距离通信设计。它广泛应用于物联网&#xff08;IoT&#xff09;设备&#xff0c;如智能家居、工业自动化和健康监测等领域。Zigbee协议由Zigbee联盟维护和推广&#x…

Antd Table 表格 拖拽列宽

antd 的表格组件的列宽&#xff0c;是通过width属性去初始化的&#xff0c;有时候渲染的内容不固定&#xff0c;这个宽做不到通用所以研究怎么实现表格列宽拖动&#xff0c;主要的实现步骤如下&#xff1a; 使用table的components API修改表格头部为 react-resizable提供的组件…