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

编辑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

gitlab用户登录与AD域用户集成的更多相关文章

  1. AD 域服务简介(二)- Java 获取 AD 域用户

    博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 一.前言 先简单简单回顾上一篇 ...

  2. Java利用jcifs集成AD域用户认证

    近期一段时间发现AD这东西老火了,尤其是涉及到安全这一方面的,所以AD域用户认证成了如今网络安全方面的产品必备!这里就简单的分享一下,Java通过jcifs集成AD域用户实现认证,以实现网络安全! 我 ...

  3. JAVA 通过LDAP获取AD域用户及组织信息

    因为工作需求近期做过一个从客户AD域获取数据实现单点登录的功能,在此整理分享. 前提:用户可能有很多系统的情况下,为了方便账号的统一管理使用AD域验证登录,所以不需要我们的系统登录,就需要获取用户的A ...

  4. SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)

    前段时间工作很忙,好久没更新博客了,趁国庆休假期间,整理了两个之前积累很实用的企业集成组件,并在真正的大型项目中经受住了考验:.Net版SAP RFC适配器组件和SharePoint 2013修改AD ...

  5. java修改AD域用户密码使用SSL连接方式

    正常情况下,JAVA修改AD域用户属性,只能修改一些普通属性, 如果要修改AD域用户密码和userAccountControl属性就得使用SSL连接的方式修改, SSL连接的方式需要操作以下步骤: 1 ...

  6. AD 域服务简介(三)- Java 对 AD 域用户的增删改查操作

    博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 Java 获取 AD 域用户, ...

  7. SharePoint 2010中重置windows 活动目录(AD)域用户密码的WebPart(免费下载)

    由于SharePoint 2013推出不久,并非所有的企业都会升级到SharePoint 2013的,毕竟升级不是打打补丁这么简单,更多的企业还是使用Sharepoint 2010版本的,因此本人自行 ...

  8. python-ldap修改AD域用户密码(CA+SSL)

    代码连接:https://github.com/raykuan/ldap-notes 使用python的ldap模块连接AD服务器,有两种方式: 非加密:con = ldap.initialize(' ...

  9. root用户登录mysql后新建用户提示1045错误

    执行以下命令查看root权限 show grants for 'root'@'localhost'; 如果没有显示with grant option,说明是root没有拥有新建授权用户的权限(为什么会 ...

随机推荐

  1. 微信小程序 wxs的简单应用

    Demo地址:微信小程序wxs的简单应用 案例分析 张三.李四.王五,各自分别都有数量不等的车,现在需要列表显示名字及他们拥有车的数量, list数据结构如下,当我们使用wx:for进行显示时,发现个 ...

  2. 多语言编程必备的十大 Vim 插件

    原文地址:http://www.linuxeden.com/a/58769 使用这 10 个 Vim 插件,可以让你在写代码或运维时,感觉更棒. 我使用 Vim 文本编辑器大约 20 年了.有一段时间 ...

  3. mysql 遍历所有表并条件查询

    use eepm_push; DROP PROCEDURE IF EXISTS FountTable; delimiter $$ create procedure FountTable() begin ...

  4. Oralce 如何将查询结果中的0转成空的

    我们遇到过大多的情况的需求是查询结果中空转为0,这个可以通过oracle的NVL()函数就可以搞定. 之前做报表客户有个需求,查询出结果为0 要转成空的,不显示0 那么在oracle有没有现成函数能搞 ...

  5. kafka集群部署以及单机部署

      kafka单机部署 一.环境准备 当前环境:centos7.3一台软件版本:kafka_2.12部署目录:/usr/local/kafka启动端口:9092配置文件:/usr/local/kafk ...

  6. 命令mark

    for i in `sudo /usr/local/sbin/fping -g 10.181.37.0/26 -p 10 -r 1 | grep alive | awk '{print $1 }'`; ...

  7. Robotics Education and Research at Scale - A Remotely Accessible Robotics Development Platform

    张宁  Robotics Education and Research at Scale - A Remotely Accessible Robotics Development Platform链接 ...

  8. [译]如何比较master分支上与git上任意的一个老版本的区别?

    原文来源:https://stackoverflow.com/questions/5586383/how-to-diff-one-file-to-an-arbitrary-version-in-git ...

  9. Postman:上传文件测试

    1.设置好接口地址与提交方法 2.设置header Content-Type:multipart/form-data 3.设置body 选择为:form-data key要和服务器端保持一致 选择好自 ...

  10. [LeetCode] 597. Friend Requests I: Overall Acceptance Rate 朋友请求 I: 全部的接受率

    In social network like Facebook or Twitter, people send friend requests and accept others’ requests ...