---恢复内容开始---

编辑gitlab.rb文件

sudo vi /etc/gitlab/gitlab.rb

下图是我编辑的内容示例(仅供参考):

编辑以下内容:

gitlab_rails['ldap_enabled'] = true

gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'LDAP'
host: 'xxx.xxx.xxx.xxx'  #指定ldap服务器地址
port: 389        #默认情况下,LDAP服务在TCP和UDP端口389上侦听连接。LDAPS(基于SSL的LDAP)在端口636侦听。
uid: 'cn'        #默认SamAccountName 如果要使用中文登录时就使用默认配置SamAccountName,英文登录为cn
method: 'plain' # "tls" or "ssl" or "plain"
bind_dn: 'cn=administrator,cn=users,dc=xxx,dc=com' #指定ldap服务器的管理员信息即cn=账户,cn=组织单位
password: 'xxx'         #指定ldap服务器的管理员密码
active_directory: true
allow_username_or_email_login: true #是否允许用户名或者email登录,true即允许。如果此处用户要使用ldap中的mail进行登录,则mail地址必须为"用户名@xxx.com",否则无法登录。
block_auto_created_users: false
base: 'dc=xxx,dc=com' #指定ldap服务器的base域 user_filter: 'memberOf=CN=gituser,OU=Groups,OU=UsersAndGroups,DC=EXAMPLE,DC=com'  #用户登录权限控制,格式为LDAP查询条件,示例按用户组进行控制
attributes:
username: ['cn', 'uid']
email: ['mail', 'email']
EOS

常见的组合是encryption: 'plain'port: 389,或 encryption: 'simple_tls'port: 636

官网文档:https://docs.gitlab.com/ee/administration/auth/how_to_configure_ldap_gitlab_ce/#how-to-configure-ldap-with-gitlab-ce

内容编辑完成之后,需要使用命令配置重置

gitlab-ctl reconfigure

重启服务

gitlab-ctl restart

测试获取AD域用户列表:

sudo gitlab-rake gitlab:ldap:check

问题: 
其他集成的系统使用AD账号都无认证错误的问题,只有Gitlab认证时,提示报错:Invalid credentials

注:

1、检查了一下这个配置文件和里边用的AD信息都正常,没有什么问题,为什么登录时,就是会报错呢,无意之间测试了一个英文账户(cn和SamaccountName)都是英文字母的,发现他能认证成功,这时候我就觉得这个集成没有问题,应该是哪里的么有配置正确。
通过在AD中查看一个中文账户和英文账户的却别,发现两者区别在于cn这个属性上,英文账户的cn属性和SamaccountName属性是一模一样的,但是中文的两个不一样,中文的cn是中文显示名,SamaccountName是登录账号。
于是用了一个中文名字去认证登录,发现通过了,能够正常通过。再返回去查看gitlab.rb配置文件,这时注意到 “uid: ‘cn’”这个配置,此命令式说调用AD中CN属性值作为Gitlab登录账户,当AD中都是英文账户时,这个命令是没有问题的,但是当存在中文账户时,需要改为uid:‘SamAccountName’,这样账户就改为了AD一样的登录账号。

2、还有一个就是bind_dn: 'cn=administrator,cn=users,dc=xxx,dc=com'这个属性没有加cn=users这个组织单位,导致报错

我搭建环境的时候没有配置邮箱,以下内容仅供参考

配置邮箱
配置文件/etc/gitlab/gitlab.rb,配置完成之后需要gitlab-ctl reconfigure 和 gitlab-ctl restart
QQ exmail (腾讯企业邮箱)配置如下,

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "xxxx@xx.com"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'xxxx@xx.com'
gitlab_rails['smtp_domain'] = "exmail.qq.com"

 

更多邮箱配置示例:

https://docs.gitlab.com/omnibus/settings/smtp.html

最新文章

  1. PHP如何自动识别第三方Restful API的内容,自动渲染成 json、xml、html、serialize、csv、php等数据
  2. jQuery实现等比例缩放大图片
  3. Hibernate 一级缓存的陷阱
  4. python的类和对象——进阶篇
  5. 多线程编程之Linux环境下的多线程(一)
  6. BloomFilter——读数学之美札记
  7. 【网络流24题】No. 20 深海机器人问题 (费用流)
  8. MySQL&nbsp;升级方法指南大全
  9. windows安装设备的驱动程序软件遇…
  10. ERP中通过EDI导入资料的时候出现【Microsoft Office Excel不能访问文件‘C:\Windows\TEMP\433....’
  11. phpadmin增加使得项目能连接数据库
  12. ef core自动映射
  13. 日积月累--Lock锁机制
  14. 前端---JQuery初识
  15. glCleatDepth
  16. lightoj 1220 唯一分解定理
  17. Caused by: org.postgresql.util.PSQLException: ERROR: operator does not exist: character varying = integer
  18. pytest.9.使用fixture参数化接口入参
  19. OpenCV——边缘检测入门、Canny边缘检测
  20. Mac下显示和隐藏隐藏文件的命令

热门文章

  1. (二)Cisco dhcp snooping配置解释
  2. rk3288 usb无线网卡支持 8188eu
  3. python3.6安装 zipimport.ZipImportError: can&#39;t decompress data; zlib not available【转】
  4. Python中的args和kwargs
  5. [转]JRebel 热部署激活教程
  6. CSS MDN - 选择器与样式化文字
  7. Python3基础 list(dict) 使用 * 扩充时,出现字典元素重复问题
  8. Vue 引入 .md 文件,解析markdown语法
  9. [LeetCode] 399. Evaluate Division 求除法表达式的值
  10. 百练1724 ROADS