AI给我的标题:一键创建LDAP账号,解放IT运维双手 😂
随着公司内部系统越来越多,各系统账号维护繁琐,使用LDAP作为统一账号中心,统一管理各种内部系统账号。
应IT维护人员需求,使用PHP+LAYUI制作了一个可以快速创建LDAP账号的小工具。
开发思路,个人浅见,如有巧合,以你为准
痛点分析
- IT运维中手动创建LDAP账号的重复性工作现状
- 传统流程耗时、易出错、难以批量处理的局限性
- 自动化需求在团队协作、权限管理中的必要性
一、功能设计
1、管理员登录功能
- 需要登录才能使用该创建工具,避免未授权的账号创建;
- 管理员账号密码使用本地文件管理,无需数据库;
2、账号创建功能
- 使用邮箱号通过HR系统接口获取人员基础信息
- 根据人员信息一键生成LDAP账号
3、发送邮件功能
- 账号创建后通过邮件下发给申请人;
- 使用PHPMailer发送组件,无需额外的邮件服务器;
4、日志功能
- 每次创建记录账号、邮件发送信息,管理员、IP地址等信息到本地log文件;
二、 技术实现
环境信息
| 类型 | 描述 |
|---|---|
| LDAP服务器 | OpenLDAP |
| 服务器运行环境 | CentOS7+Apache+PHP7(PHP安装LDAP扩展) |
| 其他 | Layui前端样式库 |
技术架构

技术细节
- 使用php_ldap扩展,连接ldap查询用户信息;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16//LDAP配置
define('LDAP_SERVER', "ldap://localhost:389"); //服务器地址
define('LDAP_ADMIN_DN', 'cn=admin,dc=example,dc=net'); //管理员DN
define('LDAP_ADMIN_PASSWORD', 'ldappassword'); //管理员密码
define('LDAP_BASE_DN', 'ou=demo,dc=example,dc=net'); //搜索DN
//连接服务器
$ldapconn = ldap_connect(LDAP_SERVER) or die("Could not connect to LDAP server.");
//设置版本
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
//绑定管理员账号
$ldapbind = ldap_bind($ldapconn, LDAP_ADMIN_DN, LDAP_ADMIN_PASSWORD) or die("Error trying to bind: ".ldap_error($ldapconn));
$searchFilter = '(sn='.$search_sn.')';//搜索过滤器
//获取用户信息
$ldapSearch = ldap_search($ldapconn, $searchBase, $searchFilter, array("cn","uid","mail"));
//获取所有结果条目
$ldapEntries = ldap_get_entries($ldapconn, $ldapSearch); - 使用PHPMailer发送邮件
1 | include_once 'PHPMailer.php'; |
目录结构

三、界面展示
登录页面

功能页面

邮件模板

四、小结
- 使用工具可以简化账号创建的繁琐操作,如下图所示:

- 程序未过多考虑安全设计,仅建议企业内网系统使用;
五、优化方向
- 如果条件允许,可以对接人员信息系统实现入职自动化创建账号等,无需额外操作,进一步释放人力;
- 自助式账号申请Web界面开发;
- 提升安全能力;
项目GitHub地址: https://github.com/WannaCryZ/ldap-user-create
注:实际部署需配置 config.php 中的LDAP连接参数和邮件服务器等凭证