GitLab 更改 LDAP 绑定用户名结构
Posted
技术标签:
【中文标题】GitLab 更改 LDAP 绑定用户名结构【英文标题】:GitLab Change LDAP bind username structure 【发布时间】:2019-06-22 05:26:59 【问题描述】:我想更改 Gitlab 验证 AD 身份验证的方式,因为它以“CN=user ou=xx dc=xx”的形式发送请求。但 AD 需要将其作为域\用户发送。如何更改 Gitlab 配置以在绑定请求中发送“域\用户名”?
或者为什么 Windows AD 会拒绝身份验证?
以下是我的 LDAP 配置
gitlab_rails['ldap_servers'] =
'main' =>
'label' => 'AD',
'host' => '10.0.0.1',
'port' => 389,
'uid' => 'sAMAccountName',
'base' => 'DC=AAA,DC=ORG,DC=LOCAL',
'bind_dn' => 'AAA\abcdefgh',
'password' => 'Password4',
'block_auto_created_users'=> 'true',
'active_directory' => true,
'lowercase_usernames' => true,
wireshark 图片如下。
绑定密码发送数据包4。
绑定密码发送数据包 18
【问题讨论】:
糟糕,需要知道如何更改 gitlab 以便它在绑定请求中发送“域\用户名”! 【参考方案1】:Active Directory 不需要以 domain\uid 格式登录 - 这是通过 LDAP 绑定到 AD 时可以使用的三种有效 ID 格式之一,但 uid@domain和 LDAP 完全限定 DN 同样有效。 GitLab 所做的是使用配置中的 bind_dn 和密码(wireshark #4)绑定到 AD,在配置为“base”的基础上搜索 (&(sAMAccountName=*user supplied uid*))
(wireshark #11),返回已识别帐户的完全限定 DN( wireshark #16),然后通过绑定完全限定的 DN 和用户提供的密码 (wireshark #18) 来验证用户的凭据。
52e(在绑定错误数据中)当用户 ID 匹配有效用户但密码不正确时返回。是否为所提供的 ID 找到了正确的用户(即用户 is 在 dc=aaa,dc=org,dc=local 域中,并且可以在 Head Office\Users OU 下找到)?如果您选择数据包 18,您将在数据包数据中看到密码——验证某些内容在传输过程中没有损坏或输入错误。
【讨论】:
感谢您的回复,两个密码都是一样的,我已经添加了密码回复问题! 是否为提供的 ID 找到了正确的用户?:是的,该用户确实存在于 Head Office\Users OU 中。以上是关于GitLab 更改 LDAP 绑定用户名结构的主要内容,如果未能解决你的问题,请参考以下文章