LDAP落地實戰(三):GitLab集成OpenLDAP認證

上一篇文章介紹了svn集成OpenLDAP認證,版本控制除了svn外,git目前也被愈來愈多的開發者所喜好,本文將介紹GitLab如何集成openldap實現帳號認證git

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認證的文章這些參數會更好理解):windows

  • 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"]bash

email不在白名單??仔細想了一下緣由:服務器

  1. gitlab以前爲了安全配置了 Restricted domains for sign-ups只容許domain.com郵箱的用戶註冊
  2. 而我OpenLDAP在新建用戶的時候郵箱沒有填寫爲空

或許就是這個問題了,登陸lam將用戶的郵箱字段補上(需符合白名單規則)從新登陸便正常了dom

掃碼關注公衆號查看更多原創文章
相關文章
相關標籤/搜索