运维咖啡吧

追求技术的道路上,我从不曾停下脚步

LDAP落地实战(三):GitLab集成OpenLDAP认证

上一篇文章介绍了SVN集成OpenLDAP认证,版本控制除了SVN外,Git目前也被越来越多的开发者所喜爱,本文将介绍GitLab如何集成OpenLDAP实现账号认证

GitLab配置

  1. 修改配置文件gitlab.yml
ldap:
enabled: true
servers:
  main: 
    label: 'LDAP'

    host: 'ldap.ops-coffee.cn'
    port: 389
    uid: 'uid'
    method: 'plain'
    bind_dn: 'uid=authz,ou=Public,dc=ops-coffee,dc=cn'
    password: 'ImNVZODT884'

    timeout: 10

    active_directory: false
    allow_username_or_email_login: false

    block_auto_created_users: false

    base: 'dc=ops-coffee,dc=cn'
    user_filter: ''
  1. 重启GitLab服务,看到页面已经有LDAP的登录选项了

重要配置参数解释

仔细阅读上一篇svn集成LDAP认证的文章这些参数会更好理解

报错处理

当重启完成后登陆报:Could not authenticate you from Ldapmain because "Invalid credentials"

查日志有如下报错:(LDAP) Error saving user: ["Email is not whitelisted. Email domains valid for registration are: domain.com"]

Email不在白名单??仔细想了一下原因:

  1. GitLab之前为了安全配置了 Restricted domains for sign-ups只允许domain.com邮箱的用户注册
  2. 而我OpenLDAP在新建用户的时候邮箱没有填写为空

或许就是这个问题了,登录lam将用户的邮箱字段补上(需符合白名单规则)重新登录便正常了