给Gitlab添加LDAP登录认证
文章目录
简要记录如何基于docker
创建Gitlab
并集成ldap
1且仅允许LDAP
账号登录。
安装步骤
-
创建一个名为
gitlab_test
的文件夹,之后创建一个名为docker-compose.yml
的文件,写入如下内容1 2 3 4 5 6 7 8 9 10 11 12 13 14
version: "3" services: nacos: image: gitlab/gitlab-ce restart: always container_name: gitlab_custom ports: - 3555:80 environment: - TZ=Asia/Shanghai volumes: - $PWD/etc:/etc/gitlab - $PWD/log:/var/log/gitlab - $PWD/opt:/var/opt/gitlab
-
运行
docker-compose up -d
命令,结合服务器性能以及网络环境等因素,gitlab
需要2-3分钟才能完成启动成功,之后在当前目录下会自动创建相关的挂载目录同时写入相关映射文件输入
http://IP地址:3555
可正常显示登录页面 -
在终端运行
docker exec -it gitlab_custom cat /etc/gitlab/initial_root_password
会显示root
账号的初始密码,可利用改密码登录系统然后修改成更易于记忆的密码 -
在终端运行
vim etc/gitlab.rb
添加如下图所示的LDAP
相关配置 -
在终端运行
docker exec -it gitlab_custom /bin/bash gitlab-ctl reconfigure
来更新gitlab
配置 -
在终端运行
docker exec -it gitlab_custom /bin/bash gitlab-rake gitlab:ldap:check
,若出现类似如下结果则表示LDAP
配置正常,可用单点账号登录重新登录
gitlab
时可发现其已经支持LDAP
,至此集成LDAP
的工作初步完成。
添加额外的管理员
gitlab
默认只有root
这1个admin账号,当禁止非LDAP
方式登录时会将root
账号的登录一并禁止掉,故需要预先将一些LDAP
账户设置为管理员账号,操作过程如下:
-
在终端运行
docker exec -it gitlab_custom /bin/bash gitlab-rails console
进入ruby
的交互式界面 -
在控制台中依次执行如下命令
1 2 3 4
user = User.find_by(username: 'yunqiang.lu') user.admin = true user.save! exit
-
在终端重新执行
docker exec -it gitlab_custom /bin/bash gitlab-ctl reconfigure
-
采用前述过程中配置的账号登录
gitlab
,若在左上角的Menu
菜单下出现Admin
子菜单则表示管理员账号添加成功!
只允许LDAP登录
主要参考How to disable standard authentication进行操作:
-
以管理员账号登录
gitlab
,依次点击Admin
->Settings
->General
-
在
Sign-up restrictions
下取消勾选sign-up enabled
-
在
Sign in restrictions
下取消勾选Sign in restrictions
-
测试之后重新打开
gitlab
登录页面,可发现其支持LDAP
登录,至此全部过程操作完成!
-
采用的是
gitlab-ce
而非gitlab-ee
↩︎