我是Gerrit的新手。进行设置的人离开了公司,现在我需要为新员工创建一个帐户。
我们正在使用LDAP进行身份验证。它适用于所有注册用户。
如果新用户已经具有通过LDAP提供的帐户,则应该能够登录到Gerrit。对吧?
但是,当他尝试登录时,出现错误“ Cannot assign user name "Example Name" to account 1000054; name does not conform.
”。
详细信息:每次尝试登录失败后,帐号(在示例中为1000054)都会增加。
详细信息2:如果输入了错误的密码,则会引发错误的电子邮件/密码错误。
与LDAP管理员交谈时,他告诉用户请求尚未到达LDAP服务器。
试图使用java -jar bin/gerrit.war gsql
打开Gerrit DB。在“ ACCOUNTS”和“ ACCOUNT_EXTERNAL_IDS”表中没有与此新用户相关的信息。
我们的设置:
[ldap]
server = ldap://LDAP_SERVER_IP
accountBase = OU=Usuários Rede,OU=COMPANY,DC=COMPANY,DC=com,DC=br
groupBase = OU=Grupos,OU=COMPANY,DC=COMPANY,DC=com,DC=br
referral = follow
accountPattern = (mailNickname=${username})
groupPattern = (memberOf=${cn})
accountFullName = cn
accountEmailAddress = mail
accountSshUserName = cn
username = ldapread@COMPANY_NAME.com.br
password = PASS
如何调试这里的问题?我们公司中的用户名遵循name.surname
模式。
我真的迷路了。预先感谢。
答案 0 :(得分:0)
我将我们的设置与您的设置进行了比较,我认为accountPattern和groupPattern中缺少某些设置。这是我们的设置:
accountPattern = (&(objectClass=user)(sAMAccountName=${username}))
groupPattern = (&(objectClass=group)(cn=${groupname}))
Gerrit documentation ldap示例中也显示了“ objectClass = xxxx”子句。
但是我无法解释为什么它不适用于新用户。
答案 1 :(得分:0)
我终于可以开始工作了!
我做了什么:
停止使用Gerrit(endTime
)
打开数据库(./bin/gerrit.sh stop
)
在ACCOUNTS表(java -jar bin/gerrit.war gsql
)中插入了新行
在ACCOUNT_EXTERNAL_IDS表中插入了两个新行,它们引用了新的用户ID(insert into ACCOUNTS values ('2018-10-11 00:00:00.000', 'Name Surname', 'name.surname@company.com.br', 'N', 'NULL', 1000052);
和insert into ACCOUNT_EXTERNAL_IDS values ('1000052', 'name.surname@company.com.br', 'NULL', 'gerrit:name.surname');
)
再次启动Gerrit(insert into ACCOUNT_EXTERNAL_IDS values ('1000052', 'NULL', 'NULL', 'username:name.surname');
)
如果有人可以解释这里发生的事情...请!