我正在尝试使用他们的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,
);
4 回答
这是LDAP到A / D的标准FAQ项 .
您必须创建一个特殊用户才能绑定到A / D,并在客户端中对凭据进行硬编码 . AFAIK没有办法解决这个问题,但是如果有更新的信息(几年前我解决了这个问题),我很想知道 .
您可以将凭据存储在一个单独的文件中,该文件以编程方式读取,具有严格的权限,因此至少您不必将凭据直接嵌入源中 .
您应该在活动目录中创建一个用户(比如'aduser'),该用户可以拥有一个简单的密码 . 然后,您可以简单地授予该用户无权执行或访问任何内容的权限 . AD允许任何用户(甚至没有访问权限的用户)绑定到目录,但他们必须在域上拥有一个帐户 .
如果只有经过身份验证的用户可以绑定到数据库,只需从用户收集用户名和密码并尝试使用它们进行绑定 . 如果绑定成功,则用户的用户名和密码是正确的 .