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


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

    GitLab集成OpenLDAP认证

    1. 修改配置文件gitlab.yml
    ldap:
    enabled: true
    servers:
      main: 
        label: 'LDAP'
    
        host: 'ldap.blz.netease.com'
        port: 389
        uid: 'uid'
        method: 'plain'
        bind_dn: 'uid=authz,ou=Public,dc=blz,dc=internal'
        password: 'ImNVZODT884'
    
        timeout: 10
    
        active_directory: false
        allow_username_or_email_login: false
    
        block_auto_created_users: false
    
        base: 'dc=blz,dc=internal'
        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的登录选项了

    image

    报错处理

    当重启完成后登陆报: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将用户的邮箱字段补上(需符合白名单规则)重新登录便正常了


    扫码关注公众号查看更多实用文章

    相关文章推荐阅读:

  • 相关阅读:
    MySql 数据备份与还原
    PHP 连接数据库
    迭代法写线性回归
    ML numpy、pandas、matplotlib的使用
    005 动态加载实例
    爬虫实现案例
    004 使用scrapy框架爬虫
    003 爬虫持久化的三个不同数据库的python代码
    内置函数和匿名函数
    迭代器和生成器
  • 原文地址:https://www.cnblogs.com/37Y37/p/9335034.html
Copyright © 2020-2023  润新知