编辑:这个问题得到了很多意见,我从来没有真正回来并提供了一个精确的、逐步的解决方案。所以我在 18 个月后回来并做到了。此解决方案适用于简单绑定,最初的问题是在尝试让 Gitlab Omnibus 安装绑定到 LDAP 服务器的上下文中提出的,但它应该适用于任何简单的 LDAP 绑定。有关我为生成解决方案所做的确切步骤,请参阅我接受的答案。以下是我的 Gitlab 版本详细信息(适用于对 Gitlab 有此问题的人):
亚搏体育app 7.0.0
亚搏体育app外壳1.9.6
GitLab API v3
红宝石 2.1.1p76
导轨 4.1.1
原始帖子: 我已经尝试了将近 6 个小时来让我的 Gitlab 部署通过 Windows Server 2012 Essentials Active Directory LDAP 进行身份验证。
我正在为我的 Gitlab 服务器运行 Ubuntu 14.04。它已经通过 SSSD 连接到域控制器。
Gitlab 本身使用 gitlab.rd 配置文件中的 LDAP 设置,如下所示:
# These settings are documented in more detail at
# https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/gitlab.yml.example#L118
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_host'] = 'hostname of LDAP server'
gitlab_rails['ldap_port'] = 389
gitlab_rails['ldap_uid'] = 'sAMAccountName'
gitlab_rails['ldap_method'] = 'plain' # 'ssl' or 'plain'
gitlab_rails['ldap_bind_dn'] = 'CN=query user,CN=Users,DC=mycorp,DC=com'
gitlab_rails['ldap_password'] = 'query user password'
gitlab_rails['ldap_allow_username_or_email_login'] = true
gitlab_rails['ldap_base'] = 'DC=mycorp,DC=com'
我可以查询服务器,但无论我选择什么设置,我总是会收到相同的消息:
"Invalid Credentials"
我尝试使用 ldapsearch 和相同的错误消息手动查询 DC:
"ldap_bind: invalid credentials (49)
我已经在 Windows Server 2012 服务器管理器的 Active Directory 用户部分创建了我用来绑定的用户。
我已经尝试了 OU=Users 和 CN=Users 和其他用户的每一个组合,确保 AD 中所有用户的所有电子邮件地址字段都已填充,但我无法得到一个正确的响应。
是否有一种简单的方法可以返回 Active Directory 对象的所有 Bind_dn 和 Base 信息?这变得非常令人沮丧。
无论我在互联网上的哪个位置查看,所有信息都与旧版本的 Windows(ldapsearch 等)有关。我对系统方面的东西很陌生(这是我的第一份暑期实习工作)。
这是我正在使用的当前设置的示例:
gitlab_rails['ldap_bind_dn'] = 'CN=Gitlab LDAP,OU=Users,DC=servername,DC=local'
gitlab_rails['ldap_base'] = 'OU=Users,DC=servername,DC=local'
以及我一直在尝试使用 ldapsearch 为我的 Windows AD DS 找到正确绑定设置的相应示例:
ldapsearch -b "ou=Users,dc=servername,dc=local" -h 192.168.0.3 -p 389 -D "uid=Gitlab LDAP,ou=Users,dc=servername,dc=local" -w "<password>"
无济于事。我已经尝试了几十种组合。用户“gitlab”在 Windows Server 中的显示名称为“Gitlab LDAP”,带有电子邮件,全部小写。底线:是否有一些简单的方法可以单击 Windows DC 中的对象并检索正确的 LDAP 设置以使用该用户对象进行 ldap 绑定?!如果我容易情绪爆发,这就是我会做的地方。
总是相同的错误消息:“无效的凭据”
感谢您的时间和考虑,任何和所有的帮助将不胜感激。