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账户的统一管理。

后面大家有什么问题欢迎大家一起讨论

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

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

相关文章

【汇编】其他转移指令、call指令和ret指令

文章目录 前言一、其他转义指令1.1 jcxz指令怎么使用jcxz性质 1.2 loop指令 二、call和ret指令2.1 模块化程序设计模块化程序设计是什么&#xff1f; 2.2 call和retcall 指令指令“call far ptr 标号”实现的是段间转移转移地址在寄存器中的call指令转移地址在内存中的call指令…

RESTful API 设计指南——为什么要用(上)

引言 在上一篇中&#xff1a;RESTful API 设计指南——开篇词 我们介绍了几个十分有争议的案例&#xff1a; 所有的接口都使用Post请求不管成功还是失败&#xff0c;HTTP状态码都返回200API命名千奇百怪 本章我们来深入分析一下&#xff0c;为什么不要像案例中所说的那样干…

微信小程序内嵌h5页面,实现动态设置顶部标题的功能

一、需求描述 使用HBuilder X作为开发工具&#xff0c;vue作为开发语言&#xff0c;开发微信小程序。微信小程序页面内嵌h5页面&#xff0c;即<web-view></web-view>标签。通过设置不同url连接地址&#xff0c;设置不同的标题。 二、失败做法 页面A嵌入h5页面&a…

07_面向对象高级_内部类

内部类 1. 认识内部类 它是类中的五大成分之一&#xff08;成员变量、方法、构造器、内部类、代码块&#xff09;如果一个类定义在另一个类的内部&#xff0c;这个类就是内部类。 public class Test {public static void main(String[] args) {// 直接输出: 内部类的静态成员…

python 端口快速扫描

笔记&#xff0c;直接看代码&#xff1a; import socket import threadingdef PortScan(target_ip, start_port40000, end_port65535, num_threads16):open_ports []thread_list []def scan_ports(ip, start, end):local_open_ports []for port in range(start, end 1):tr…

Vscode GDB 查看内存的值

在VSCode的GDB图形界面中&#xff0c;你可以使用"调试控制台(Debug Console)"来查看malloc返回的地址里的值。以下是具体的步骤&#xff1a; 首先&#xff0c;你需要在你的代码中设置一个断点&#xff0c;这个断点应该在malloc函数调用之后&#xff0c;这样你可以获…

JAXB:用XmlElement注解复杂类型的Java属性,来产生多层嵌套的xml元素

例如&#xff0c;下面这段请求的xml代码&#xff0c;在元素body下面又多了一层&#xff0c;嵌套了4个元素&#xff1a; <?xml version"1.0" encoding"UTF-8"?><request><reqtype>04</reqtype><secret>test</secret>…

电机应用开发-编码器的使用

编码器 增量式编码器倍频技术 增量式编码器输出的常见脉冲波形信号形式&#xff1a; 占空比为50%的方波&#xff0c;通道A和通道B相位差为90。 正弦波的模拟信号&#xff0c;通道A和通道B相位差为90。 对于占空比为50%的方波&#xff0c;通道A和通道B相位差为90。先以下图为例…

C++ LibCurl实现Web隐藏目录扫描

LibCurl是一个开源的免费的多协议数据传输开源库&#xff0c;该框架具备跨平台性&#xff0c;开源免费&#xff0c;并提供了包括HTTP、FTP、SMTP、POP3等协议的功能&#xff0c;使用libcurl可以方便地进行网络数据传输操作&#xff0c;如发送HTTP请求、下载文件、发送电子邮件等…

响应体和状态码

后端响应体和状态码设计 主流技术&#xff1a;响应体 和 状态码结合使用 响应体&#xff1a;数据 响应 给前端的 格式 1、为什么要设计统一响应体? 1、系统默认提供许多的状态码&#xff0c;但HTTP的状态码数量有限。 通过修改响应返回的JSON数据&#xff0c;更好的表达业务中…

【docker下安装jenkins】(一)

目的&#xff1a;在Linux操作系统&#xff08;x86_64)下&#xff0c;使用docker部署jenkins&#xff0c;python使用压缩包安装 安装jenkins的步骤 &#xff11;、编排jenkins的docker-compose.yml文件 说明&#xff1a;这里遇到部署jenkins后&#xff0c;占用内存8G,所以重新…

scala解析命令行参数详解

如何用scala解析命令行参数&#xff1a; 首先&#xff0c;需要在项目中添加Apache Commons CLI库的依赖。可以在pom.xml中加&#xff0c; 也可以在build.sbt文件中添加如下行&#xff1a; libraryDependencies "commons-cli" % "commons-cli" % "…

HarmonyOS第一课-对比Kotlin,快速入门TypeScript

编程语言简介 基础类型 1. 布尔值 TypeScript 和 Kotlin: 两者都有 boolean 类型&#xff0c;用于表示 true 或 false。 ts示例&#xff1a; let isDone:boolean falsekotlin示例&#xff1a; val isDone: Boolean false2. 数字 TypeScript: 有 number 类型&#xff0c…

hadoop 配置历史服务器 开启历史服务器查看 hadoop (十)

1. 配置了三台服务器&#xff0c;hadoop22, hadoop23, hadoop24 2. hadoop文件路径: /opt/module/hadoop-3.3.4 3. hadoop22机器配置历史服务器的配置文件&#xff1a; 文件路径&#xff1a;/opt/module/hadoop-3.3.4/etc/hadoop 文件名称&#xff1a;mapred-size.xml 新增历…

帮我想几个关于实人认证API的中文文章标题

引言 随着信息时代的迅速发展&#xff0c;数据变得愈加庞大和复杂。在这个大数据的时代&#xff0c;企业面临着海量信息的管理和利用挑战。为了更有效地获取并利用数据&#xff0c;企业信息模糊搜索API成为了企业数据智能引擎的一部分&#xff0c;为企业提供了精准的企业列表检…

RK3588产测软件介绍

1. 简介 本公司研发的产测软件是用于在量产的过程中快速地甄别产品功能和器件的好坏&#xff0c;即重点 FCT&#xff08;Functional Test&#xff09;测试&#xff0c;进而提高生产效率和检测的准确性。 2. 产测软件介绍 QT开发的ARM平台产测图形化软件&#xff0c;一键开启傻…

【问题处理】WPS提示不能启动此对象的源应用程序如何处理?

哈喽&#xff0c;大家好&#xff0c;我是雷工&#xff01; 最近在用WPS打开word文件中&#xff0c;插入的Excel附件时&#xff0c;无法打开&#xff0c;提示&#xff1a;“不能启动此对象的源应用程序”。 经过上网查找处理办法&#xff0c;尝试解决&#xff0c;现将解决过程记…

前端新手Vue3+Vite+Ts+Pinia+Sass项目指北系列文章 —— 系列文章目录

系列文章目录 第一章 技术栈简介 (开篇) 第二章 环境部署 (Node等环境安装) 第三章 项目创建 (Vite项目初始化) 第四章 认识项目目录 第五章 Element-Plus组件库安装和使用 第六章 样式格式化 (Sass) 第七章 路由配置 (vue-router路由守卫) 第八章 请求配置 (Axios请求和响应拦…

大模型LLM 在线量化;GPTQ\AWQ量化及推理

1、大模型LLM 在线量化 参考:https://www.cnblogs.com/bruceleely/p/17348782.html ##8bit model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).quantize(8).half(

HDR相关文章收集

一文分清HDR10/HDR10/Dolby Vision 什么是4K HDR&#xff1f;HDR10、HDR10 PRO、杜比视界HDR区别 HDR中显示器标准和视频编码标准 芯片支持HDR解码 HDR详解 HDR技术趋势浅析 BT.2100 HDR 基本规范 图形图像基础知识&#xff08;5&#xff09;---- HDR 基本概念