Active Directory 的 LDAP 搜索过滤器

Fra*_*ori 5 active-directory ldap

我正在尝试通过 LDAP 查询在 Active Directory 中查找用户。基本上我正在以这种方式搜索用户:

Search DN: dc=mydomain, dc=com
Filter: (sAMAccountName=USER)  where USER is replaced with the provided username.
Run Code Online (Sandbox Code Playgroud)

现在,如果 USER 只是没有域的用户名(例如“Joe”),这可以正常工作。但是,我以(域\用户名,例如“myDomain\Joe”)的形式收到它们,显然搜索失败。

我看到两种方式:

  • 在搜索过滤器中使用正则表达式来丢弃域
  • 使用完全不同的搜索过滤器

我不是 LDAP 专家,我什至不知道是否可以在搜索过滤器中使用正则表达式。

有谁知道这是否可能以及如何实现?

PS 我无法预处理用户名以剥离域。这是无法更改的,因为它是大型系统的一部分。

sum*_*mar 3

不可能使用不同的过滤器。用户帐户没有域名属性,因此无法以域名作为参数构造查询。

在 Active Directory 中,LDAP 服务仅包含来自域的信息,DC 是该域的控制器。如果您与森林中的其他域有信任关系,为了获取有关来自不同域的用户的信息,您应该与该域的 LDAP 服务联系。

正确的解决方案:从搜索过滤器中丢弃域名。属性 sAMAccountName 在域中是唯一的。