我在内部应用上有一段需要修改的遗留代码。在重做整个事情之前,有一种简单的方法来完成对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”例程。如果可以避免的话,我宁愿不设置第三方帐户来搜索这个...但我读过的几乎所有文档似乎都指向这种登录方法。有什么想法或建议吗?
答案 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 ...