爱猫家

Gitlab整合测试openldap

Openldap和Gitlab的配置本文不再赘述
主要讲下gitlab和openldap的整合,同时测试一下openldap的连通性

修改gitlab配置,让其支持openldap认证

# cat /etc/gitlab/gitlab.rb |egrep -v "^#|^$"
...
external_url 'http://gitlab-server'
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS' # remember to close this block with 'EOS' below
  main: # 'main' is the GitLab 'provider ID' of this LDAP server
    label: 'LDAP'
    host: 'ldap-server'
    port: 636
    uid: 'uid'
    method: 'ssl' # "tls" or "ssl" or "plain"
    bind_dn: 'uid=test,ou=TestOu,dc=testdc,dc=com'
    password: 'password'
    active_directory: true
    allow_username_or_email_login: false
    block_auto_created_users: false
    base: 'ou=TestOu,dc=testdc,dc=com'
    user_filter: ''
    attributes:
      username: ['uid']
      email:    ['email']
      name:       'displayName'
      first_name: 'givenName'
      last_name:  'sn'
EOS
...

将gitlab的bin添加到profile

# cat >> /etc/profile <<EOF
export GITBIN=/opt/gitlab/embedded/bin
export PATH=$GITBIN:$PATH
EOF

通过source命令使其生效

# source /etc/profile

接下来测试下gitlab和openldap的连通性

# cd /opt/gitlab/embedded/service/gitlab-rails/  
# bundle exec rake gitlab:ldap:check RAILS_ENV=production
 Warning 
  You are running as user root, we hope you know what you are doing.
  Things may work/fail for the wrong reasons.
  For correct results you should run this as user git.

Checking LDAP ...

Server: ldapmain
LDAP authentication... Success
LDAP users with access to your GitLab server (only showing the first 100 results)
    DN: uid=user1,ou=TestOu,dc=testdc,dc=com     uid: user1

Checking LDAP ... Finished

测试通过

接下来登录gitlab 地址:http://gitlab-server/
如果报如下错误

因为 Undefined method `provider' for nil:nilclass,所以您无法从 Ldapmain 获得授权。
(也有网友登录的时候报 Could not authorize you from LDAP because “(ldap) account must provide a dn,uid and email address”)

这是因为Gitlab要求有email属性
所以需要添加email

登录phpldapadmin管理,http://ldap-server/phpldapadmin/
给用户添加email属性即可

文章评论

奇谭 回复

2016年12月18日 22:32

测试openldap服务 ldapwhoami -D "uid=user1,ou=TestOu,dc=testdc,dc=com" -W -H ldaps://ldap-server -v

发表评论

Hot Posts

Latest Comments

water 08月09日
 《基于saltstack开发的SOMSSH发布平台》 中的评论

版主https://github.com/qitan/SOMS 上边不是最新的吗?运行和你这显示的不一样哇。

打酱油的二师兄 05月08日
 《基于saltstack开发的SOMSSH发布平台》 中的评论

您好,想请教一下 配置salt-master 我这里把soms解压到了/data/wwwroot下 这个目录就是github中的SOMS项目?如果是的话,为什么没有/soms/saltconfig/*.conf的文件?

jja 09月25日
 《基于django的saltstack自动化运维平台SOMS》 中的评论

"上传的Html页面通过js限制了类型" 那个txt不是没有限制吗?所有的文件上传都提示上传失败

zander 07月21日
 《Django嵌套评论-icomments》 中的评论

这个好呀。学习一下,我是新手,才学django,收藏大神您了。

franjia 07月19日
 《基于django的saltstack自动化运维平台SOMS》 中的评论

你好,请问远程管理部分,目标主机是分组后的多个机器的话,执行命令后的返回信息如下: post tgt_select lcb-u-assets arg pwd check_type panel-group 源代码 tgt_select=lcb-u-assets&arg=pwd&check_type=panel-group 响应返回是{},空,是什么原因呢?