使用ldap在gerrit上缺少用户名

时间:2015-02-10 20:44:06

标签: ldap gerrit

我一直试图在没有运气的情况下找出这一天,并最终决定发布关于gerrit配置文件中缺少用户名的问题。我已成功设法单独设置git,gerrit和ldap并使用ldap在gerrit中进行身份验证。但问题是缺少ssh连接所必需的用户名。尝试了gerrit配置的几个变种但没有任何作用。还应该提到当gerrit使用openId时ssh连接有效。

gerrit配置文件

    sslVerify = true
    server = ldap://xxxxxxxx/

    #username = ${username}
    accountBase = ou=People,dc=srees,dc=com
    accountPattern = (&(objectClass=person)(uid=${username}))
    accountSshUserName = ${sAMAccountName.toLowerCase}
    #accountSshUsername = sAMAccountName
    #accountSshUserName = uid
    accountFullName = displayName
    accountEmailAddress = mail

    groupBase = ou=Groups,dc=srees,dc=com
    groupMemberPattern = (&(objectClass=group)(member=${dn}))

2 个答案:

答案 0 :(得分:0)

你最终做到了吗?

对我而言,将sslVerify与ldap://(不是ldaps://)协议一起使用似乎很奇怪。用户名选项也应该包含" login"登录LDAP服务器以执行查询。

我没有做任何特别的事情来让Gerrit SSH与AD一起工作。它使用userName属性。

答案 1 :(得分:0)

将LDAP与gerrit一起使用时,重要的一点是要确保accountSshUserName的填充正确。使用ldap时,gerrit不允许用户手动设置它,它会保持空白,这将导致用户无法通过ssh进行访问。

如果您签入<gerrit-home>/logs/sshd_log,您可能应该会看到类似以下内容:

[2019-10-16 11:18:59,129 -0400] 5bc68bb1 lmcdipr - AUTH FAILURE FROM xxx.xxx.xxx.xx user-not-found 

为确保正确填充用户名,请将accountSshUserName设置为cn或您正在使用的任何模式。

示例配置:

  server = ldap://ldap
  username = cn=admin,dc=example,dc=com
  accountBase = dc=example,dc=com
  groupBase = dc=example,dc=com
  accountPattern = (&(objectClass=person)(cn=${username}))
  accountFullName = displayName
  accountEmailAddress = mail
  accountSshUserName = cn