TeamCity On-Premises 2024.03 Help

LDAP 故障排查

一般建议:如果您遇到 LDAP 配置问题,打开调试日志(详见报告问题)。

无法使用 LDAP 进行身份验证

检查 teamcity-ldap.log 文件。 对于每次登录失败的尝试,都应指定一个原因。 最常见的包括:

  • 登录过滤器与输入的登录不匹配("用户输入的登录与 teamcity.auth.loginFilter=...不匹配,正在中止")

  • LDAP 服务器以“无效的凭证”信息(“无法由于身份验证错误而登录用户'...')拒绝了登录。 原因:无效的凭证([LDAP:错误代码 49 - 80090308:LdapErr:DSID-0C090334,注释:AcceptSecurityContext 错误,数据 525,vece^@])")

第一个原因是登录无法用于签入,因为它不符合某个特定的筛选器。 例如,默认情况下,您无法使用 DOMAIN\用户名 登录 —— 此过滤器禁止 /\@ 符号。 查看 teamcity.auth.loginFilter 属性。

第二个错误可能由各种原因造成,例如:

  • 您正在尝试使用您的用户名登录,但 LDAP 服务器只接受完整的 DN。
    如果所有用户都存储在一个 LDAP 分支中,请使用 teamcity.auth.formatDN 属性。 否则,请参阅下面的部分。

  • 检查您的 DN 和日志中的实际主体,可能存在拼写错误或未转义的序列。 尝试使用另一种 LDAP 工具用此主体登录。

  • 尝试更改安全级别( java.naming.security.authentication ):它可以是 "simple","strong" 或 "none"。

LDAP 中的用户存储在不同的分支中,因此不能应用 teamcity.auth.formatDN 属性。 用户如何用他们的用户名登录?

此功能从 5.0 版本开始可用。 您应该明确如何查找用户( teamcity.users.login.filter ),例如,通过用户名或电子邮件。 在每次登录时,TeamCity 都会在登录之前在 LDAP 中查找用户,获取用户 DN,然后执行绑定。 因此,您也必须为 TeamCity 定义凭据以执行搜索操作( java.naming.security.principaljava.naming.security.credentials)。

最后修改日期: 16日 7月 2024年