如何为未知层次结构组成基本ldap字符串

时间:2018-10-15 14:29:20

标签: go active-directory ldap ldap-query

我有一个活动目录,看起来像这样:

gdcmpny.com
    |__GoodCompany
       |
       |__NYC
       |  |__Users
       |
       |__SF
          |__Users

当用户向我发送他的用户名+密码时,我不知道他是在NYC / Users还是SF / Users下。有没有办法复合这样的字符串:

CN=Users,OU=%s,OU=GoodCompany,DC=gdcmpny,DC=com

因此ldap请求会同时出现在NYC / Users和SF / Users中吗?还是必须指定确切的绝对路径?
我正在使用Go来发送请求,并带有github.com/jtblin/go-ldap-client包。
谢谢!

3 个答案:

答案 0 :(得分:0)

很遗憾,不在Microsoft Active Directory上。

有一个叫ExtensibleMatch的东西,但有not supported on Microsoft Active Directory

-吉姆

答案 1 :(得分:0)

您不需要将完全限定的DN用于针对Active Directory服务器的LDAP绑定。您可以使用sAMAccountName和userPrincipalName值对AD LDAP进行身份验证...,前提是您在单个林中只有一棵树,这些树是通过将用户提供的登录ID与字符串连接起来形成的。

对于具有旧域名GDCMPNY的AD域gdcmpny.com,登录ID为MyUserName的用户具有userPrincipalName MyUserName@gdcmpny.com 和sAMAccountName为 GDCMPNY \ MyUserName 它们的ID在目录结构中的位置。

如果您在目录林中有多个域,而又不能简单地知道要添加到用户ID的正确字符串,则可以在已知的系统凭据下绑定,搜索用户-提供的登录ID,并返回匹配条目的标准DN(FQDN)。然后,使用FQDN和用户提供的密码来验证用户的凭据。

答案 2 :(得分:0)

字符串格式,例如:

CN=Users,OU=%s,OU=Goenter code hereodCompany,DC=gdcmpny,DC=com

不受支持,但我不能在请求中指定整个层次结构。
这对我有用:

OU=GoodCompany,DC=gdcmpny,DC=com