ldap落地实战:gitlab集成openldap认证

Posted 37y37

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ldap落地实战:gitlab集成openldap认证相关的知识,希望对你有一定的参考价值。

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

gitlab集成openldap认证

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

    host: ‘ldap.domain.com‘
    port: 389
    uid: ‘uid‘
    method: ‘plain‘
    bind_dn: ‘uid=authz,ou=Public,dc=domain,dc=com‘
    password: ‘ImNVZODT884‘

    timeout: 10

    active_directory: false
    allow_username_or_email_login: false

    block_auto_created_users: false

    base: ‘dc=domain,dc=com‘
    user_filter: ‘‘

重要配置参数解释(仔细阅读上一篇svn集成ldap认证的文章这些参数会更好理解):

  • host:ldap服务器地址
  • port:ldap服务端口
  • uid:以哪个属性作为验证属性,可以为uid、cn等,我们使用uid
  • method:如果开启了tls或ssl则填写对应的tls或ssl,都没有就填写plain
  • bind_dn:search搜索账号信息的用户完整bind(需要一个有read权限的账号验证通过后搜索用户输入的用户名是否存在)
  • password:bind_dn用户的密码,bind_dnpassword两个参数登录ldap服务器搜索用户
  • active_directory:LDAP服务是否是windows的AD,我们是用的openldap,这里写false
  • allow_username_or_email_login:是否允许用户名或者邮箱认证,如果是则用户输入用户名或邮箱都可
  • base:从哪个位置搜索用户,例如允许登录gitlab的用户都在ou gitlab里,name这里可以写ou=gitlab,dc=domain,dc=com
  • filter:添加过滤属性,例如只过滤employeeType为developer的用户进行认证(employeeType=developer)
  1. 重启gitlab服务,看到页面已经有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将用户的邮箱字段补上(需符合白名单规则)重新登录便正常了

技术分享图片

以上是关于ldap落地实战:gitlab集成openldap认证的主要内容,如果未能解决你的问题,请参考以下文章

ldap+kerberos集成

jenkinSVNarchery集成openLDAP

Linux/UNIX OpenLDAP实战指南勘误

集成OpenLDAP与Kerberos实现统一认证:基于SSSD同步LDAP账号

集成OpenLDAP与Kerberos实现统一认证:基于SSSD同步LDAP账号

gitlab集成ldap