GitLab是一款高效的程式碼管理工具,它能夠幫助團隊更有效率地管理程式碼,並實現更好的協作。在一個團隊中,有時需要給予不同人員不同的權限,這時就需要使用LDAP來對GitLab進行認證工作。接下來,我們就來了解如何在GitLab中部署LDAP。
一、安裝LDAP外掛
首先,在安裝GitLab之前,需要先安裝LDAP外掛程式。在安裝完GitLab之後,我們進入GitLab的安裝目錄,安裝LDAP依賴套件。
yum install openldap openldap-devel -y
安裝完依賴套件之後,我們需要安裝GitLab的LDAP插件,先進入GitLab的插件目錄:
cd /usr/share/gitlab/lib/gitlab/auth/backends/
然後,我們需要下載LDAP插件的tar包:
sudo curl -o ldap.tar.gz https://gitlab.com/gitlab-org/gitlab-ce/repository/archive.tar.gz?ref=master
解壓縮LDAP外掛程式的tar包,覆寫原有檔案:
sudo tar -zxf ldap.tar.gz --strip-components 2 gitlab-ce-master/lib/gitlab/auth/backends/gitlab_ldap/
重新執行GitLab的設定:
sudo gitlab-ctl reconfigure
二、設定LDAP
在安裝LDAP外掛後,我們需要對GitLab進行LDAP的設定。開啟GitLab的設定文件,新增LDAP設定內容:
sudo vim /etc/gitlab/gitlab.rb
我們需要設定的主要參數如下:
gitlab_rails['ldap_enabled'] = true gitlab_rails['ldap_servers'] = YAML.load <<-'EOS' main: # ‘main’其实是名称,可以根据实际情况进行配置,下面也需要使用同样的名称 label: 'LDAP' host: 'ldap.example.com' # LDAP服务器地址 port: 389 # LDAP服务器端口 uid: 'sAMAccountName' # 用户登录时需要使用的属性 block_auto_created_users: false # 是否阻止自动创建 bind_dn: 'CN=ldapuser,OU=Web Services,DC=example,DC=com' # LDAP的管理员账户 password: 'yourpassword' # LDAP管理员账户的密码 encryption: 'plain' # 加密方式,plain或tls base: 'CN=Users,DC=example,DC=com' # 查询的基础DN user_filter: '' # 根据需要设置用户筛选规则 EOS
設定完畢後,重新執行GitLab的設定:
sudo gitlab-ctl reconfigure
三、測試LDAP連線
設定完LDAP之後,我們要測試LDAP連線是否成功。首先,我們需要在LDAP上建立一個測試帳戶,例如:testuser。
在GitLab伺服器上使用ldapsearch命令測試LDAP連接,例如:
ldapsearch -H ldap://ldap.example.com -x -b "CN=Users,DC=example,DC=com" -D "CN=ldapuser,OU=Web Services,DC=example,DC=com" -w 'yourpassword'
如果連接成功,我們可以查看LDAP中用戶信息,例如:
# testuser, Users, example.com dn: CN=testuser,CN=Users,DC=example,DC=com objectClass: top objectClass: person ...
如果出現以上訊息,說明連接成功。
四、在GitLab中啟用LDAP
當LDAP連線成功之後,我們需要在GitLab中啟用LDAP。啟用LDAP後,每個LDAP使用者都能夠登陸GitLab,並使用其允許的權限。
在GitLab的使用者面板中,點選“Administrator area” -> “Settings” -> “LDAP”,然後啟用LDAP選項。
我們需要設定的主要參數如下:
根據情況,我們也可以修改登入時使用的屬性名,以及在LDAP過濾器中新增自訂規則,以篩選特定的使用者。
五、總結
透過這篇文章的介紹,我們可以知道如何在GitLab中部署LDAP。在GitLab中啟用LDAP可以有效管理團隊中的用戶,為日後的開發工作提供了良好的基礎。
以上是手把手教你在GitLab部署LDAP的詳細內容。更多資訊請關注PHP中文網其他相關文章!