给Gitlab添加LDAP登录认证
文章目录
简要记录如何基于docker创建Gitlab并集成ldap1且仅允许LDAP账号登录。
安装步骤
-
创建一个名为
gitlab_test的文件夹,之后创建一个名为docker-compose.yml的文件,写入如下内容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的交互式界面
-
在控制台中依次执行如下命令
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↩︎