如果我以这种方式在LDAP上添加数据:
$ldapserver = "mail";
$ds = ldap_connect($ldapserver);
$r = ldap_bind($ds, $ldaprootun, $ldaprootpw);
add = ldap_add($ds, "cn=$full_name,ou=$domain,o=mygroup.com", $infonew);
那是否意味着当我登录我的帐户时,我将使用:
`cn="mynameHere",ou="domainIused",o=mygroup.com`
作为我的用户名?或者只是我的uid?
我的帐户无法登录,但我确信它存在于LDAP中。
非常感谢答案。 =)
答案 0 :(得分:1)
通常在LDAP应用程序中,您只需使用您的UID登录,而不是使用完整的X.500名称。
尝试用你的信件调用ldap_bind()并查看它返回的内容?
答案 1 :(得分:0)
通常,用户提供一个简单的名称。然后,应用程序在LDAP源中搜索具有该值的某个属性。然后在代码中绑定或密码比较,作为完整的DN。
您可以使用唯一ID的uid,它必须是唯一的。即如果您找到多个实例,那就是错误。
您可以尝试使用CN,但这通常可以是多值的,具体取决于您的LDAP实现架构。
如果您知道自己反对eDirectory,那么uid就可以了,或者如果它是多值的,CN只会做一些事情。
如果您知道自己违反了Active Directory,则可以假设sAMAccountName是唯一的,因为系统会强制执行唯一性。 userPrinicpalName应该是唯一的,但实际上并没有强制执行它。
您可以随时使用邮件,这是一个非常统一的电子邮件地址。