GitLab集成LDAP登录并解决OpenLDAP的memberOf问题

一、前言

LDAP是Light weight Directory Access Protocol(轻量级目录访问协议)的缩写,其前身是更为古老的DAP协议。

常公司员需要记住很多密码,管理这些密码是一件让人感觉十分麻烦的事情。LDAP协议就是解决这样问题的一个

统一认证标准协议(LDAP的服务原理请查看参考文档1)。该篇文章简单的介绍OpenLDAP的安装和配置和GitLab(高

版本才支持,过低的版本请升级)添加对LDAP认证的支持。该文章的亮点(也是写这篇文章的主要目的)是解决了

OpenLDAP(我使用的版本号为2.4.*)加载memberof模块,并通过groupOfNames和memberOf实现分组认证的功能。

二、OpenLDAP安装

我的Linux系统为Centos6.7(64位)系统,具体安装步骤请查看参考文档2。

三、实现OpenLDAP的memberOf功能

  1、在/etc/openldap目录下新建文件memberof_load_configure.ldif。内容如下:

dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulepath: /usr/lib64/openldap
olcModuleload: {0}memberof.la

dn: olcOverlay={0}memberof,olcDatabase={2}bdb,cn=config
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {0}memberof

说明:上面的参数请根据实际情况修改(比如32的系统的话olcModulepath为/usr/lib/openldap)。该处灵感来源参考文档3。

2、执行命令sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f memberof_load_configure.ldif。该处命令来源

参考文档4。

3、删除步骤二OpenLDAP安装创建的测试数据(如果已经创建),重新用inetOrgPerson创建用户信息(在“创建

新条目”下的“默认”中的ObjectClasses查找)和用groupOfNames创建组信息(位置同上,不过这里创建组不能

选择groupOfUniqueNames类型,二者区别可以查看参考文档6)。本人的重新配置之后的目录如下图:

GitLab集成LDAP登录并解决OpenLDAP的memberOf问题_第1张图片

4、用命令ldapsearch -x -LLL -H ldap:/// -b cn=test,ou=users,ou=***,dc=ldap,dc=live-in,dc=org dn 

memberof进行测试,如果输入如下内容表示配置成功。


四、GitLab集成LDAP认证

1、修改GitLab配置文件/etc/gitlab/gitlab.rb找到gitlab_rails['ldap_enabled']位置做如下图配置就行

了。具体设置请查看参考文档5。

GitLab集成LDAP登录并解决OpenLDAP的memberOf问题_第2张图片

说明:base属性执行所有员工,user_filter属性主要用来实现分组功能。上面的配置是只有ldap中的gitlab分组中

的用户可以登录GitLab。

2、执行sudo gitlab-ctl reconfigure命令重新加载GitLab配置;

3、重启GitLab服务

##关闭命令如下
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-ctl stop nginx
##启动命令如下
sudo gitlab-ctl start unicorn
sudo gitlab-ctl start sidekiq
sudo gitlab-ctl start nginx


参考文档:

1、http://czmmiao.iteye.com/blog/1561597 LDAP服务原理详解(原创);

2、http://www.live-in.org/archives/1731.html CentOS Linux安装OpenLDAP服务器;

3、https://forums.opensuse.org/showthread.php/425183-OpenLDAP-2-4-Overlays-Missing Thread: OpenLDAP 2.4 - Overlays Missing?

4、https://technicalnotes.wordpress.com/2014/04/19/openldap-setup-with-memberof-overlay/ openldap setup with memberof overlay;

5、https://docs.gitlab.com/ee/administration/auth/ldap.html;

6、http://www.openldap.org/lists/openldap-software/200308/msg00073.html RE: *answer?* groupOfNames vs groupOfUniqueNames。

你可能感兴趣的:(环境搭建与运维)