如何配置GitLab FreeIPA LDAP认证

时间:2020-02-23 14:38:20  来源:igfitidea点击:

在本指南中,将介绍如何配置GitLab服务器以根据FreeIPA服务器对用户进行身份验证。 FreeIPA是由Red Hat赞助的一个开源身份管理系统。

另一方面,GitLab是用于加速软件开发的全功能平台。它提供了最多的功能,例如集成的CI/CD,Auto DevOps,Kubernetes集成,GitLab Container Registry 等

通过利用FreeIPA的高级用户管理功能,可以轻松管理用户对GitlLab服务器的访问。我们不必在GitLab服务器上手动创建用户,这对于大而言可能是乏味的。

配置GitLab FreeIPA身份验证准备工作

此设置的准备工作是:运行GitLab服务器运行FreeIPA服务器

如果我们有兴趣全新安装FreeIPA或者GitLab服务器,则可以参考以下指南:

如何在CentOS 7上安装FreeIPA服务器

如何在Ubuntu 18.04和Ubuntu 16.04上安装FreeIPA Server

对于GitLab,我们有以下指南:

在Ubuntu 18.04/Debian 9上安装Gitlab CE在CentOS 7/Fedora 29/Fedora 28上安装Gitlab CE

设置GitLab FreeIPA身份验证的步骤如下。

在FreeIPA上创建LDAP绑定用户

很需要一个用户绑定到FreeIPA服务器。登录到FreeIPA服务器并创建一个名为gitlab的用户。

导航到身份>用户>添加

填写所需的详细信息,然后单击添加

配置GitLab服务器

如果我们没有在DNS上配置FreeIPA Server的域名,则将该行添加到/etc/hosts文件中。

echo "192.168.3.10 ipa.example.com" | sudo tee -a /etc/hosts

编辑/etc/gitlab/gitlab.rb并启用LDAP

gitlab_rails['ldap_enabled'] = true

然后使用FreeIPA的LDAP设置指定文件的路径

gitlab_rails['ldap_servers'] = YAML.load_file('/etc/gitlab/freeipa_settings.yml')

最后,创建YAML文件以保存IPA连接设置

sudo vim /etc/gitlab/freeipa_settings.yml

如下配置:

main: 
  label: 'FreeIPA'
  host: 'ipa.example.com'
  port: 389
  uid: 'uid'
  method: 'tls'
  bind_dn: 'uid=gitlab,cn=users,cn=accounts,dc=example,dc=com'
  password: 'gitlabuserpassword'
  encryption: 'plain'
  base: 'cn=accounts,dc=example,dc=com'
  verify_certificates: false
  attributes:
    username: ['uid']
    email: ['mail']
    name: 'displayName'
    first_name: 'givenName'
    last_name: 'sn'

用FreeIPA服务器主机名替换为ipa.example.com,并使用FreeIPA服务器域组件替换examplecom的所有外观。用yourgitlab IPA用户密码替换为gitlabuserpassword。

保存文件,然后重新配置GitLab:

sudo gitlab-ctl reconfigure

通过FreeIPA登录到GitLab

现在,我们可以使用FreeIPA服务器上的用户凭据登录到GitLab服务器。

点击登录,使用提供的用户名登录到GitLab服务器。