2010-06-29 91 views
1

我正尝试使用他们的LDAP凭据对我的网站上的用户进行身份验证。然而,绑定到活动目录似乎需要我的凭据,然后才能验证任何其他用户名/密码。
我不想在应用程序中对我的凭证进行硬编码。有什么建议么?LDAP活动目录身份验证问题

$self->authen->config( 
DRIVER => [ 'Authen::Simple::LDAP', 
host => 'ldapad.company.com', 
basedn => 'OU=XXX,OU=AD,DC=YYY,DC=ZZZ', 
binddn => 'CN=myname,OU=Users,OU=company,OU=AD,DC=company,DC=ZZZ', 
bindpw => 'secret', 
filter => '(cn=%s)', 

], 

CREDENTIALS   => [ 'authen_username', 'authen_password' ], 
STORE    => 'Session', 
LOGOUT_RUNMODE  => 'logout', 
LOGIN_RUNMODE  => 'login', 
POST_LOGIN_RUNMODE => 'okay', 
RENDER_LOGIN   => \&my_login_form, 

);

回答

2

这是LDAP到A/D的标准常见问题项目。

您必须创建一个特殊用户才能绑定到A/D,并对客户端中的凭证进行硬编码。 AFAIK没有办法解决这个问题,但如果有更新的信息可用(我几年前解决了这个问题),我很想知道。

2

您可以将凭证存储在单独的文件中,您可以通过严格的权限以编程方式读取凭据,所以至少您不必将凭证正确地嵌入到源文件中。

1

您应该在活动目录中创建一个用户(比如'aduser'),该用户可能有一个微不足道的密码。然后你可以简单地给这个用户没有权利做或访问任何东西。 AD允许任何用户(即使没有访问权限的用户)绑定到目录,但他们必须在域上有一个帐户。

0

如果只有经过身份验证的用户可以绑定到数据库,只需从用户收集用户名和密码并尝试使用它们进行绑定。如果绑定成功,那么用户的用户名和密码是正确的。