基于FreeIPA的LDAP服务器搭建与Gitlab, JupyterHub, Metabase, JumpServer等集成配置
搭建OpenLDAP会变得不幸,FreeIPA也是
缘由
由于需要JupyterHub多用户使用,其文档中有LDAP认证方式,两年前曾搭建过OpenLDAP,异常复杂,今又参考鸟哥私房菜的教程发现了FreeIPA,至少搭建过程非常轻松。但又因原服务器是Ubuntu,安装FreeIPA需要RHEL系,这才得知CentOS即将结束支持,取而代之的有RockyLinux, AlmaLinux等。个人喜欢追新,故重装系统使用了AlmaLinux 9.4版本。由于也身处一个不大不小的团队,内网运行着数种服务,需要一个方案做SSO,故优先想进一步折腾LDAP这套old school方案,备选OAuth2, Excel表格粗放管理等。没想到,基于FreeIPA也有些麻烦,最后基本算是放弃了这套方案,但把折腾过程记录一下,没准后面又一时兴起继续折腾。
FreeIPA is All You Need
以下主要参考鸟哥私房菜的最新教程,https://linux.vbird.org/linux_server/rocky9/0240ldap.php
- 准备一个RHEL系的操作系统
- dnf install freeipa-server
- ipa-server-install
- 关闭防火墙,设置hostname等
- FreeIPA安装完毕
- 当前服务器80端口已开放FreeIPA web UI管理,增删改查用户
基于上面几步,似乎很爽。但是落实到客户端应用,就需要了解LDAP的机制。
FreeIPA的服务端同时作为客户端不知为何无法使用
上面谈到,FreeIPA的服务端是基于 AlmaLinux 9.4 的,由于也想复用这台机器,故安装完FreeIPA服务端后,又同时安装了客户端。但是在FreeIPA 的 web UI 中增加用户等,并不会在本机创建新的用户以及在家目录创建用户目录,sssd服务等均开启了,不知道为什么,留着以后折腾。也是因为这一点一直无法实现,故成为放弃这套方案的原因之一。
集成配置
Gitlab客户端配置
Step 1: 编辑 /etc/gitlab/gitlab.rb
Step 2:
1 | gitlab_rails['ldap_enabled'] = true |
Step 3: gitlab-ctl reconfigure
JupyterHub客户端配置
Step 1: 编辑 jupyterhub_config.py
Step 2:
1 | c.JupyterHub.authenticator_class = 'ldapauthenticator.LDAPAuthenticator' |
Step 3: jupyterhub
Metabase客户端配置
Step 1: 进入Web UI 的 Admin 管理 AUTHENTICATION 的 LDAP
Step 2:
1 | LDAP Host: Server hostname |
Step 3: Save and Test
JumpServer客户端配置
Step 1: 进入 Web UI 的 Admin 管理 Auth 的 LDAP
Step 2:
1 | Enable LDAP auth |
Step 3: Save and Test
基于FreeIPA的LDAP服务器搭建与Gitlab, JupyterHub, Metabase, JumpServer等集成配置