2

我对 Crowd 中的 LDAP 配置有疑问。

背景 运行 Atlassian Crowd 的远程 CentOS 服务器需要与内部的 Microsoft Active Directory 集成。

我们为 Crowd 配置了以下经过混淆的详细信息:

  • 网址:ldap://ldaps.xyzgroup.com.uk:389
  • 基本 DN:OU=用户,DC=xyz,DC=本地
  • 用户帐号:xyz\parkbasead
  • 密码:<somepass>

问题 Crowd 正在正确验证服务器,但在用户登录时抛出异常:

AcceptSecurityContext error, data 52e, v1db1]; nested exception is javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C090400, comment: AcceptSecurityContext error, data 52e, v1db1]

鉴于上述详细信息,什么构成基本 DN,我们应该使用 UPN(完全限定用户名)从远程服务器登录吗?如果应该用有意义的域控制器名称替换 DC=local,那么在基本 DN 中有人可以分享想法吗?

4

1 回答 1

2

在这里解决每个问题,但将来您应该真正避免一个问题中的多个问题。当一个问题中有多个问题时,人们不太可能提供帮助。

  1. 在 Active Directory 中,用户是一个容器而不是 OU。因此,在您的情况下,作为 LDAP 路径的基本 DN 实际上是:CN=Users,DC=xyz,DC=local。注意逗号后面没有空格。基本 DN 也可以简单地为DC=xyz,DC=local。基本 DN 指定 Active Directory 中搜索的根。根据我的经验,如果您是每个大型组织,将基本 DN 指定为目录的根确实会导致 CPU 时间成本稍高一些,因为 Active Directory 中有更多级别可以查找用户,所以我会尝试首先使用CN=Users,DC=xyz,DC=local作为基本 DN,如果这是您所有用户所在的位置。如果没有,请尝试DC=xyz,DC=local,类似于下面的示例,其中 Base DN 是ISL.local

Active Directory 用户和计算机

LDAP / AD 集成屏幕

  1. UPN类似于parkbasead@xyz.local 。根据我的经验,根据安装的身份验证库,从远程服务器进入可能会或可能不会起作用,因此也可以单独尝试parkbasead。当客户端和服务器的域成员身份是xyz.local时,假定xyz.local

  2. 请注意,域控制器名称绝不是Base DN的一部分,因为 Base Dn 只不过是一个 LDAP 路径。

这是我在其中找到示例和屏幕截图的主题的一个很好的外部参考:如何找到正确的基本 DN 设置

编辑:根据我的经验,解决您怀疑可能向 Active Directory 发送错误密码或被锁定在 Active Directory 中的帐户问题的最佳方法是使用Microsoft 帐户锁定状态工具。它会告诉您任何帐户锁定的来源,然后您可以快速通知 AD 管理员解锁帐户。小心不要仅仅依赖代码,LDAP 代码可能很神秘,问题的真正根源可能直接包含在代码中,也可能不直接包含在代码中。Microsoft 帐户锁定状态工具示例:

帐户锁定状态工具

于 2018-01-15T15:59:00.240 回答