Gerrit + LDAP:"Cannot assign user name "X“到帐户 Y;名称不符合”
Gerrit + LDAP: "Cannot assign user name "X" to account Y; name does not conform"
我是 Gerrit 的新手。进行设置的人离开了公司,现在我需要为新员工创建一个帐户。
我们正在使用 LDAP 进行身份验证。它适用于所有注册用户。
如果新用户已经拥有通过 LDAP 提供的帐户,他应该能够登录 Gerrit。对吗?
但是,当他尝试登录时,出现错误“Cannot assign user name "Example Name" to account 1000054; name does not conform.
”。
详细信息:每次登录尝试失败后,帐号(示例中为 1000054)都会增加。
detail2:如果密码输入错误,会抛出wrong email/password的错误。
与 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
.
我真的迷路了。提前致谢。
我将我们的设置与您的设置进行了比较,我认为 accountPattern 和 groupPattern 中缺少某些内容。这是我们的设置:
accountPattern = (&(objectClass=user)(sAMAccountName=${username}))
groupPattern = (&(objectClass=group)(cn=${groupname}))
"objectClass=xxxx" 子句也在 Gerrit documentation ldap 示例中显示。
但我无法解释为什么它不适用于新用户。
我终于可以让它工作了!
我做了什么:
已停止 Gerrit (./bin/gerrit.sh stop
)
打开数据库(java -jar bin/gerrit.war gsql
)
在帐户中插入了新行 table (insert into ACCOUNTS values ('2018-10-11 00:00:00.000', 'Name Surname', 'name.surname@company.com.br', 'N', 'NULL', 1000052);
)
在 ACCOUNT_EXTERNAL_IDS table 中插入了两个引用新用户 ID 的新行(insert into ACCOUNT_EXTERNAL_IDS values ('1000052', 'name.surname@company.com.br', 'NULL', 'gerrit:name.surname');
和 insert into ACCOUNT_EXTERNAL_IDS values ('1000052', 'NULL', 'NULL', 'username:name.surname');
)
再次启动 Gerrit (./bin/gerrit.sh start
)
如果有人能解释这里发生了什么...请!
我是 Gerrit 的新手。进行设置的人离开了公司,现在我需要为新员工创建一个帐户。
我们正在使用 LDAP 进行身份验证。它适用于所有注册用户。
如果新用户已经拥有通过 LDAP 提供的帐户,他应该能够登录 Gerrit。对吗?
但是,当他尝试登录时,出现错误“Cannot assign user name "Example Name" to account 1000054; name does not conform.
”。
详细信息:每次登录尝试失败后,帐号(示例中为 1000054)都会增加。
detail2:如果密码输入错误,会抛出wrong email/password的错误。
与 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
.
我真的迷路了。提前致谢。
我将我们的设置与您的设置进行了比较,我认为 accountPattern 和 groupPattern 中缺少某些内容。这是我们的设置:
accountPattern = (&(objectClass=user)(sAMAccountName=${username}))
groupPattern = (&(objectClass=group)(cn=${groupname}))
"objectClass=xxxx" 子句也在 Gerrit documentation ldap 示例中显示。
但我无法解释为什么它不适用于新用户。
我终于可以让它工作了!
我做了什么:
已停止 Gerrit (
./bin/gerrit.sh stop
)打开数据库(
java -jar bin/gerrit.war gsql
)在帐户中插入了新行 table (
insert into ACCOUNTS values ('2018-10-11 00:00:00.000', 'Name Surname', 'name.surname@company.com.br', 'N', 'NULL', 1000052);
)在 ACCOUNT_EXTERNAL_IDS table 中插入了两个引用新用户 ID 的新行(
insert into ACCOUNT_EXTERNAL_IDS values ('1000052', 'name.surname@company.com.br', 'NULL', 'gerrit:name.surname');
和insert into ACCOUNT_EXTERNAL_IDS values ('1000052', 'NULL', 'NULL', 'username:name.surname');
)再次启动 Gerrit (
./bin/gerrit.sh start
)
如果有人能解释这里发生了什么...请!