当 Apache(在 Solaris 上运行)尝试针对 SVN 服务器的特定用户通过 LDAP 进行身份验证时,出现以下错误:
auth_ldap 身份验证:用户 abc 身份验证失败;URI /svn/reponame [用户不唯一(搜索发现两个或更多匹配项)][没有这样的对象]
根本原因是两个不同的域中有具有相同用户名的用户。是否可以将域指定为用户登录的一部分?我无法让它工作。我尝试过域\用户名、用户名@域,但身份验证失败。
有任何想法吗?
答案1
根据您在评论中添加的 AuthLDAPURL(请将其编辑到问题中),您的搜索正在查看全局目录(端口 3268),该目录显示 Active Directory 林中的所有用户,但使用 sAMAccountName 属性进行搜索,该属性仅在单个域内全局唯一。
因此,请将您的 AuthLDAPURL 从以下位置更改为:
ldap://domain.com:3268/DC=com?sAMAccountName?sub
更像这样:
ldap://domain.com:3268/DC=com?userPrincipalName?sub
并告诉人们使用他们的 UPN 登录,这将是[电子邮件保护]
现在,如果您想使用更简单的值登录,那么您必须想出一种方法来通过真正独特的东西来区分用户。
可能电子邮件是唯一的,因此您可以将其更改为:
ldap://domain.com:3268/DC=com?mail?sub
因此他们需要通过指定电子邮件登录。