集中账号认证OpenLDAP

易雾君
发布于 2024-07-06 / 27 阅读
0
0

集中账号认证OpenLDAP

前言

OpenLDAP是一款轻量级目录访问协议,属于开源集中账号管理架构的实现,且支持众多系统版本,被广大互联网公司所采用,当然,家用也很适合。

需求闲谈

打造一个比较完善的家庭网络系统,比如即时聊天工具rocketchat、源码仓库gitlab、堡垒机jumpserver、知识库wiki、虚拟化管理平台proxmox、网盘nextcloud、家庭影音jellyfin等等一系列应用,每个应用都设置一套独立的账号密码,管理起来相当的炸裂。好在它们有个共同的优点,集成优秀的OpenLDAP,那么开始本文的故事。

OpenLDAP作为家庭数据中心的核心认证服务,应部署到能够被公共访问的区域,我将它放置到了网络管理区,该区域最新的访问控制策略实行了白名单,可以放心把它放这里。ldap服务对外暴露ldaps协议端口636,其他应用统一通过这个协议对接。另外,设置web化的管理系统,方便系统管理员对它进行管理。同时,还需要设置自助服务,对于家里多个用户的场景,怎么的也得让他们能自己改自己应用账号的密码吧,一条龙服务必须安排到位。

基础软件部署

这里我已经给大家准备好了,依旧采用docker-compose编排,只需要做相应的配置即可自己使用。项目地址为:https://github.com/evling2020/openldap.git

克隆该项目到本地

git clone https://github.com/evling2020/openldap.git

更新 docker-compose.yml 文件中的环境变量为自己的信息,域名信息、管理账号信息等,尤其是画红框的部分。

截屏2024-07-06 17.04.54.png

修改ssp openldap自助改密服务系统的配置文件 ssp/config.inc.local.php ,更新里边ldap管理账号的信息,要与上边配置的保持一致。邮件发送部分,如果有专用的发件邮箱,也可以补充填写,如果没有发件邮箱,也可以不用变更。为了系统的安全性,变量 keyphrase 建议大家也要更改一下。这个文件是从 ssp 主配置文件摘取的一部分,如需更高的定制,可以从主配置文件里拷贝更多设置变量以满足自己的需求。

截屏2024-07-06 17.14.13.png

完成配置后,即刻拉起服务。

docker compose up -d

服务端口说明:
8080: openldap 自助改密服务
8443: openldap 后台管理服务
369,636: ldap、ldaps协议端口

账号信息配置

我这里采用实验机器10.32.12.100进行演示,域名采用 evling.tech 。打开openldap后台管理服务 https://10.32.12.100:8443/ ,登录时需要注意用户名的格式

截屏2024-07-06 17.20.13.png

接下来我们创建两个 OU ,一个用来放置用户账号信息,包括实体账号和虚拟账号,一个用来放置应用分组。

点击根分枝,在它下面创建一个子选项。

截屏2024-07-04 22.42.28.png

选择 OU 模版

截屏2024-07-04 22.43.34.png

输入OU名称为users

截屏2024-07-04 22.44.46.png

确认好信息点击提交

截屏2024-07-04 22.45.08.png

采用同样的方式在users下面创建2个子选项,一个名叫people,一个名叫virtual。

截屏2024-07-04 22.49.03.png

然后尝试在people下创建一个实体账号,账号的类别选用inetOrgPerson即可。

点击ou=people,创建子选项

截屏2024-07-06 17.31.38.png

选取最后一个默认模版

截屏2024-07-06 17.32.32.png

鼠标下滑找到 inetOrgPerson 并选中,点击继续

截屏2024-07-06 17.33.39.png

来到创建用户的详情页面,RDN要选取uid,设置cn、sn、displayName、Email、givenName、Password、User Name等基础属性,不用全部填写。

截屏2024-07-06 17.37.41.png

确认好账户信息,点击提交

截屏2024-07-06 17.38.33.png

创建应用分组。这里以proxmox为例。

点击ou=apps,创建子选项,模版选取最后一个默认,跟创建用户一样。在对象类别处选groupOfNames,这里不要选groupOfUniqueNames,因为在构建镜像时memberOf没有启用这项,如必须使用,请自行修改构建镜像。

截屏2024-07-06 17.44.19.png

RDN选cn,cn填写proxmox,成员那里选择刚创建的用户jmeade2

截屏2024-07-06 17.45.46.png

确认proxmox分组信息,并点击提交

截屏2024-07-06 17.47.38.png

至此已完成用户和分组的创建

截屏2024-07-06 17.48.32.png

应用对接openldap

proxmox对接示例

截屏2024-07-06 17.55.09.png

用户过滤器

(memberOf=cn=proxmox,ou=apps,dc=evling,dc=tech)

截屏2024-07-06 17.55.22.png

jumpserver对接示例

截屏2024-07-06 17.51.33.png

这里罗列两个示例,其他请自行研究。

用户自助改密

用户自助改密服务提供了两种方式,一种是通过验证旧密码改密,一种是发送邮件链接改密。

打开8080端口,这里以http://10.32.12.100:8080/ 为例,首页就是以验证旧密码进行改密,用在密码泄漏等场景。

截屏2024-07-06 18.00.12.png

点击Email,进入邮箱找回密码模式,输入自己的账户名和邮箱地址,提交即可。

截屏2024-07-06 18.02.57.png

结语

至此,前文所有需求皆已实现,开启的统一账号管理之旅吧,欢迎沟通交流属于你的专属最佳实践。


评论