OpenLDAP配置web管理界面PhpLDAPAdmin服务-centos9stream
之前已经发了一篇关于centos9下面配置openldap多主高可用集群的内容,不会配置ldap集群的请参考:服务器集群配置LDAP统一认证高可用集群(配置tsl安全链接)-centos9stream-openldap2.6.2-CSDN博客
这里跟着前篇文章详细说明如何配置openldap的web管理界面PhpLDAPAdmin;
1、安装http及php、phpldapadmin
###安装必要的包,一般不用特别关注什么版本,直接安装就行,可以在所有server节点安装
###默认这个包应该在epel源,没有配置的可以使用 yum install epel-release -y 安装,不用多说了吧。
###已经安装了httpd或apache的就不用重复安装了。
yum install httpd php phpldapadmin -y
2、配置httpd
###配置httpd服务ip和端口,如果直接使用默认端口的不用改了,如果有多个端口的注意不要与现有http服务冲突
cd /etc/httpd/conf.d/##这里配置phpldapadmin的参数,注意查看一下php的路径,默认配置了phpldapadmin和ldapadmin两个根路径的别名,也就是说大家可以用 http://192.168.1.11/phpldapadmin或者http://192.168.1.11/ldapadmin访问web服务即可出现登陆界面
##下方Directory模块是配置目录权限,当然这里还可以配置用户访问的服务端口和ip,不会配置的大家尽量挑选一个没有其他服务的主机来配置这个服务吧。具体权限和安全问题就不在这里说了。欢迎大家关注我博客里的其他文章,这里主要是配置了允许访问的ip,allow from
vim phpldapadmin.conf
#
# Web-based tool for managing LDAP servers
#
Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
Alias /ldapadmin /usr/share/phpldapadmin/htdocs<Directory /usr/share/phpldapadmin/htdocs><IfModule mod_authz_core.c># Apache 2.4Require localRequire ip 110.110.11.0/24Require ip 198.18.30.0/24</IfModule><IfModule !mod_authz_core.c># Apache 2.2Order Deny,AllowDeny from allAllow from 127.0.0.1Allow from 110.110.11.0/24Allow from 198.18.30.13</IfModule>
</Directory>
3、配置phpldapadmin
###配置根域加上密码的方式登陆,以下只显示需要修改的地方,大家执行查询修改
vim /etc/phpldapadmin/config.php#不同版本的文件可能不一样,我这里在453行;
$servers->setValue('login','attr','dn');
// $servers->setValue('login','attr','uid'); ##这里注释掉,选择dn方式登陆,当然改成cn也行,当然可以使用uid方式登陆,但前提是你配置了对应uid的操作和访问权限。#525行左右可配置是否可以让匿名用户登录,这个其实在openldap中本身可以进行设置,大家可以选配,需要配置的话去掉前面的注释符号“//”即可。
// $servers->setValue('login','anon_bind',true);###另外,还可以配置指定可登录的根域,tls安全链接的安全证书等,基本都是一些安全方面的配置,这里不一一说明了,自己可以修改配置然后访问测试,这个不影响已经配置好的ldap服务。// $servers->setValue('login','bind_id','');
# $servers->setValue('login','bind_id','cn=Manager,dc=example,dc=com');/* Your LDAP password. If you specified an empty bind_id above, this MUST alsobe blank. */
// $servers->setValue('login','bind_pass','');
# $servers->setValue('login','bind_pass','secret');/* Use TLS (Transport Layer Security) to connect to the LDAP server. */
// $servers->setValue('server','tls',false);/* TLS Certificate Authority file (overrides ldap.conf, PHP 7.1+) */
// $servers->setValue('server','tls_cacert',null);
# $servers->setValue('server','tls_cacert','/etc/openldap/certs/ca.crt');/* TLS Certificate Authority hashed directory (overrides ldap.conf, PHP 7.1+) */
// $servers->setValue('server','tls_cacertdir',null);
# $servers->setValue('server','tls_cacertdir','/etc/openldap/certs');/* TLS Client Certificate file (PHP 7.1+) */
// $servers->setValue('server','tls_cert',null);
# $servers->setValue('server','tls_cert','/etc/pki/tls/certs/ldap_user.crt');
4、重启httpd服务
直接systemctl restart httpd即可。
systemctl restart httpd
5、界面操作
在可访问到服务的计算机上使用浏览器打开http://192.168.1.11/phpldapadmin

点击左侧的login,显示登录界面。

在登录界面直接输入管理根域和在ldap中设置的rootPW密码

如果已经设置禁止匿名用户登陆的话这里使用anonymous登陆应该是访问不了了

登陆成功后,左侧web界面应该就显示自己登陆的当前域下的情况了,可以点击+号展开查看已有账户。
6、导入功能import测试
这里测试一下创建用户组,当然其他配置的ldif文件或者配置内容都可以在这里导入进行创建或配置,条件是当前登陆的管理域账户有权限操作写入。
ldap可以批量导入如账户,直接点击左侧的import按钮会打开账户导入界面,可以直接选择ldif文件或者将编写号的ldif内容直接粘贴到对话框中,任选其一,然后点击Proceed按钮

这里直接粘贴编写内容测试一下

如果出现以下错误,这里很可能是因为当前的服务节点不是主节点,或者当前节点处于同步状态,所以应切换至主节点去操作。

大家可以点击左侧的monitor按钮查看ldap集群的连接情况,这里面127.0.0.1一般就是当前phpldapadmin服务所在的本地server了, 其他ip表示是其他ldapserver的ip。

当然phpldapadmin可以设置连接其他server,但前提是有对应的远程操作权限,大约在/etc/phpldapadmin/config.php的第329行:

我一般不会改这里,最好是在每个server上都配置各自的phpldapamin服务,因为如果server的ldap服务down掉基本上其他服务可能都down了,所以还不如每个都独立后基于这些web服务再用haproxy配置高可用。
如果是可操作的正常节点,这里应该就导入成功了,刷新一下左侧的ou=Group即可查看到自己创建的用户组

7、web界面创建用户
前面使用导入功能可以直接操作ldif文件内容进行创建或导入,创建用户同样可以直接使用import功能,但这里主要展示交互界面通过web界面添加用户,
首先点击ou=people或者自己准备的其他域,或者先创建一个ou,再在对应ou下创建用户。我这里使用migrationtools的方式导入的系统账户,所以默认就有了ou=Group和ou=People两个ou,下面我们在ou=People下创建用户
首先:点击左侧dc下的ou=Peopel组,摊开下拉菜单,点击Create new entry here按钮,或者点击左侧的ou=People后再点击右侧的Create a child entry按钮

弹出下面界面,选择Generic Ucer Account

弹出一下对话框,
对话框中,firstname,lastname以及commonname都可以按照自己的需求填写就行,
UserID这里要注意了,不要与现有系统的用户名重复,
输入密码的时候建议大家使用ldappasswd生成加密字符串填写,当然也可以用默认的clear也就是明文的方式填写, 如果使用加密字符串需要点击下拉箭头选择加密方式。
uid这里不让随便修改了,应该是防止重复,如果觉得不方便大家就是用前面的ldif文件导入方式创建吧,如果出现重复会给予警告, 当然我们也可以在openldap中设置起始uid的编号
GidNumber这里需要选择已有的用户组id,如果没有则需要先创建用户组再来创建用户。
home directory就是用户登陆后的默认文件夹,这里一般是/home/userid,可以自行指定,如果配置好ldap的登陆后,一般会自动创建这里指定的文件夹,如果发现登陆时没有对应文件夹应在系统中创建对应的文件夹。
login shell就是默认登陆时启动的shell服务,一般都是bash了。
然后再点击Create Object按钮

弹出再次确认的窗口,这里会让用户再确认一遍用户信息,确认后点击Commit提交创建,点击Cancel就取消掉了。

提交后会默认进入当前已创建用户的update界面,不想更新的话就可以忽略了,现在可以在系统中使用 id $uerid的命令查看用户id和用户组信息,也可以直接使用这里的user id 和password明文密码进行登陆了:


结束语
phpldapadmin的web界面还可以进行导出备份等操作,页面也可以进行用户、用户组、用户组织以及组映射的创建和维护操作,这里大家都可以自己进行测试,如果错误直接操作删除或者重新配置更新即可。
当然最大的好处还是在与ldap账户的统一管理。
后面大家有什么问题欢迎大家一起讨论
相关文章:
OpenLDAP配置web管理界面PhpLDAPAdmin服务-centos9stream
之前已经发了一篇关于centos9下面配置openldap多主高可用集群的内容,不会配置ldap集群的请参考:服务器集群配置LDAP统一认证高可用集群(配置tsl安全链接)-centos9stream-openldap2.6.2-CSDN博客 这里跟着前篇文章详细说明如何配置…...
深兰科技多款大模型技术产品登上新闻联播!
11月20日晚,新闻联播报道了2023中国5G工业互联网大会,深兰科技metamind、汉境大型城市智能体空间等大模型技术和产品在众多参展产品中脱颖而出,被重点播报。 2023中国5G工业互联网大会 本届大会由工信部和湖北省人民政府联合主办,…...
移远通信推出六款新型天线,为物联网客户带来更丰富的产品选择
近日,移远通信重磅推出六款新型天线,覆盖5G、非地面网络(NTN)等多种新技术,将为物联网终端等产品带来全新功能和更强大的连接性能。 移远通信COO张栋表示:“当前,物联网应用除了需要高性能的天线…...
八、ffmpeg录制视频为yuv文件
前言 测试环境: ffmpeg的4.3.2自行编译版本windows环境qt5.12 图片的一些重要知识: RGB图片 位深度:每一个像素都会使用n个二进制位来存储颜色信息。每一个像素的颜色都是由红(Red)、绿(Green࿰…...
Rust并发编程:理解线程与并发
大家好!我是lincyang。 今天我们来深入探讨Rust中的并发编程,特别是线程的使用和并发的基本概念。 Rust中的线程 Rust使用线程来实现并发。线程是操作系统可以同时运行的最小指令集。在Rust中,创建线程非常简单,但与此同时&…...
二次开发问题汇总【C#】
1未将对象引用到实例。 接口函数的参数不对。解决办法【用fixed去限制数组长度】 unsafe public struct VCI_BOARD_INFO {public UInt16 hw_Version;public UInt16 fw_Version;public UInt16 dr_Version;public UInt16 in_Version;public UInt16 irq_Num;public byte can_Num;…...
中职组网络安全B模块-渗透提权2
任务五:渗透提权2 任务环境说明: 仅能获取xxx的IP地址 用户名:test,密码:...
【考研】数据结构(更新到循环链表)
声明:所有代码都可以运行,可以直接粘贴运行(只有库函数没有声明) 线性表的定义和基本操作 基本操作 定义 静态: #include<stdio.h> #include<stdlib.h>#define MaxSize 10//静态 typedef struct{int d…...
DB2—03(DB2中常见基础操作)
DB2—03(DB2中常见基础操作) 1. 前言1.1 oracle和mysql相关 2. db2中的"dual"2.1 SYSIBM.SYSDUMMY12.2 使用VALUES2.3 SYSIBM.SYSDUMMY1 "变" dual 3. db2中常用函数3.1 nvl()、value()、COALESCE()3.2 NULLIF() 函数3.3 LISTAGG() …...
华为云cce健康检查有什么用?配置需要注意什么?
华为云cce健康检查 如上图,华为云健康检查可用来探测cce的实例运行状态,必要时cce会自动重启实例,达到cce持续服务。 但是配置时需要注意一下几个方面,否则cce的状态总是有些不正常。 1、http探查比较友好。因为我们的在cce里面…...
微信小程序会议OA-登录获取手机号流程登录-小程序导入微信小程序SDK(从微信小程序和会议OA登录获取手机号到登录小程序导入微信小程序SDK)
目录 获取用户昵称头像和昵称 wx.getUserProfile bindgetuserinfo 登录过程 登录-小程序 wx.checkSession wx.login wx.request 后台 准备数据表 反向生成工具生成 准备封装前端传过来的数据 小程序服器配置 导入微信小程序SDK application.yml WxProperties …...
原来 TinyVue 组件库跨框架(Vue2、Vue3、React、Solid)是这样实现的?
本文由 TinyVue 组件库核心成员郑志超分享,首先分享了实现跨框架组件库的必要性,同时通过演示Demo和实际操作向我们介绍了如何实现一个跨框架的组件库。 前言 前端组件库跨框架是什么? 前端组件库跨框架是指在不同的前端框架(如…...
自定义label组件
自定义label组件 支持边框绘制 支持shape背景(按指定圆角裁剪,矩形,圆角矩,圆形),支持指定角圆角 支持自定义阴影(颜色,偏移,深度) 边框颜色支持状态选择器 预览 核心绘制辅助类 public class LabelHelper {private final Paint paint;private Paint shadowPaint;private fina…...
【Linux】使用Makefile自动化编译项目:简化开发流程、提高效率
文章目录 示例一:编译一个进度条程序示例二:编译一个简单的程序gcc的几个选项结论 当你开始一个新的软件项目时,编写一个好的Makefile是非常重要的。Makefile是一个文本文件,用于指定如何构建和编译项目。它定义了目标文件、依赖关…...
浅谈开源和闭源的认知
目录 在大型模型的发展中,开源和闭源两种截然不同的开发模式扮演着关键的角色。开源模式通过促进技术共享,吸引了大量优秀人才的加入,从而推动了大模型领域的不断创新。与此相反,闭源模式则着重于保护商业利益和技术优势ÿ…...
你了解Postman 变量吗?
变量是在Postman工具中使用的一种特殊功能,用于存储和管理动态数据。它们可以用于在请求的不同部分、环境或集合之间共享和重复使用值。 Postman变量有以下几种类型: 1、环境变量(Environment Variables): 环境变量是在Postman…...
ArmSoM-RK3588编解码之mpp编码demo解析:mpi_enc_test
一. 简介 [RK3588从入门到精通] 专栏总目录mpi_enc_test 是rockchip官方编码 demo本篇文章进行mpi_enc_test 的代码解析,编码流程解析 二. 环境介绍 硬件环境: ArmSoM-W3 RK3588开发板 软件版本: OS:ArmSoM-W3 Debian11 三. …...
【ES6.0】-详细模块化、export与Import详解
【ES6.0】-详细模块化、export与Import详解 文章目录 【ES6.0】-详细模块化、export与Import详解一、模块化概述二、ES6模块化的语法规范三、export导出模块3.1 单变量导出3.2 导出多个变量3.3 导出函数3.4 导出对象第一种第二种: 3.5 类的导出第一种第二种 四、imp…...
网工内推 | Base北京,国企网工运维,最高30k*14薪,IE认证优先
01 万方数据股份有限公司 招聘岗位:网络工程师 职责描述: 1.负责完成基础网络组网工作; 2.负责网络对象的访问控制及安全策略,配置VLan,黑白名单、地址转换、故障排查及网络安全监控工作; 3.负责对操作系…...
SQL LIKE 运算符:用法、示例和通配符解释
SQL中的LIKE运算符用于在WHERE子句中搜索列中的指定模式。通常与LIKE运算符一起使用的有两个通配符: 百分号 % 代表零个、一个或多个字符。下划线 _ 代表一个单个字符。 以下是LIKE运算符的用法和示例: 示例 选择所有以字母 “a” 开头的客户&#x…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
