我有一个应用程序需要进行身份validation(login为)特定的用户。 供应商说,他们需要对用户的完整DN进行硬编码,以使其发生。
从查看LDAP开始已经有一段时间了,但记住一种方法,用户可以使用“缩短的”LDAP查询进行search,引用或validation,但忘记了语法。
题
什么LDAP语法将允许用户引用一个CN (又名“用户”),而不需要硬编码完整的OUpath?
原因:如果pipe理员重新组织AD OU结构,某些应用程序将无法进行身份validation,从而导致意外
这真的取决于应用程序如何实现对象绑定。 有些应用程序根本不支持子树search(在这种情况下真的令人沮丧)。 您应该询问您的供应商,如果他们的产品支持子树search,这些search允许您绑定到更高级别的目录并search它。 可能只是它们只能直接绑定到用户对象。 我与一个应用程序的情况下是这样的…真的很沮丧,我遇到了你经常描述的问题。
如果他们的提供者支持它,像这样的东西将做子树search。
<LDAP://DC=mydomain,DC=com>;&(objectClass=User)(cn=myusername);distinguishedName,cn,AdsPath;subTree
但是,如果他们要求你提供完整的dn,那么他们将需要这些。
这听起来像是你特别指的是configuration绑定的DN,应用程序将用于validation到LDAP?
如果是这样,那么你完全正确; 您不需要对用户DN进行硬编码。 UPN也是有效的( username@upnsuffix ,其中upnsuffix通常是你域名的FQDN)。
是否可以发送,以及search基础或用户/组标识等其他LDAPpath是否被粘贴到特定path,完全取决于实施软件,因此您的公司将会有所不同。
如果用户对象正在用于身份validation的目的,我可以从他们如何确定用户的angular度来看他们的观点。 如您所知,LDAP在整个LDAP名称空间中支持具有相同CN(通用名称)的对象。 所以,假设你只使用CN来引用这个对象,那么你可能会在你的命名空间的另一部分引用一个用户。
在我看来,这与应用程序需要更自由地查询LDAP的情况是不同的,例如:需要parsing用户对象的设备通常会指向适当的树根,以便find相关的用户。 在这里,当然,子树search绝对有一个目的。
回到原来的问题,你可以select“防止意外删除”选项(或任何实际的话)为用户帐户。 这不会阻止它被移动,但会阻止一个可能的****。 你也可以脚本定期的“dsquery用户”命令,以确保您的帐户没有被移动。
最后,如果你的pipe理员在没有适当的变更控制的情况下“重新组织”OU,那么有人需要一个耳光;-)