使用Perl绑定到Active Directory,其中OU是可变的

时间:2012-04-23 20:41:07

标签: perl login ldap

我在内部应用上有一段需要修改的遗留代码。在重做整个事情之前,有一种简单的方法来完成对AD的绑定,其中OU可以根据正在进行身份验证的用户而有所不同。设置非常标准:

my($mesg) = $ldap->bind ("cn=$uid,ou=Workers,ou=Domain Users,dc=something,dc=com", password => "$psswd");

并非所有用户都是“Workers”OU。有些是在不同的OU ...基本上我想知道的是,是否存在从perl绑定到AD的“if-then-else”例程。如果可以避免的话,我宁愿不设置第三方帐户来搜索这个...但我读过的几乎所有文档似乎都指向这种登录方法。有什么想法或建议吗?

2 个答案:

答案 0 :(得分:1)

您无需为AD指定完整DN。用户名应该足够了。

答案 1 :(得分:1)

这称为“简单”绑定请求,它将可分辨名称和可分辨名称的凭据作为参数。绑定请求可以包含零个或多个请求控件。在传输绑定请求之前构造一个名为$distinguishedName的变量,传输绑定请求,处理响应,并处理响应中包含的任何响应控件:

my $namingContext = "ou=domain users,dc=something,dc=com";
my $distinguishedName = sprintf "%s,%s,%s",$cn,$ou,$namingContext;
my $bindResult = $ldap->bind($distinguishedName,$credentials);
# handle any response controls attached to the bind response ...