我遇到过几个关于通过LDAP Active Directory服务器将用户认证集成到公司网站的问题。该网站主要用于内部安全访问文件/ PDF。该网站可在我们的网络外部访问,因为某些客户还需要能够查看/上传文件以进行订单和验证。我们确实有一个SSL证书,用于安全访问该网站,适用于内部和外部。PHP用户认证和安全方法:LDAP-AD和SQL Server
目前,该站点使用PHPass进行密码处理,同时将用户信息存储在MS SQL Server数据库中。需要访问该网站的用户将被添加到此数据库中,并注册帐户级别并处理密码方面的问题。此方法非常安全,对于当前使用情况(内部员工,为外部客户分离的数据)工作良好。但是它也引入了整个系统的更多故障点。 IE:用户需要记住(或忘记)的其他密码以及管理员额外的帐户管理开销。
在计划简化网站身份验证时,我负责整合Active Directory用户信息以便用于登录。这对我们公司的员工会很好,因为他们已经有一个AD帐户。但是,不会为供外部供应商或客户使用,因为他们没有AD帐户(也不应该)进行身份验证。
这使我相信最简单的解决方案是有一个“主要”形式的身份验证(针对AD)和对已经创建的SQL用户数据库的回退。像AD一样回来的用户使用这些凭证,或者搜索用户的SQL DB(其中包含我们需要的任何非AD帐户)。
问题:
- 是核查上述方法的逻辑和安全的计划? 如果不是,我该怎么做呢?
- 如何防范LDAP攻击/蛮力?
- 在PHP/SQL,利用参数/类型转换查询,帐户锁定/超时,一般错误信息,正确的密码哈希方法,等等 - 增加了用于固定的数据库和强制登录尝试
- 有关的ldap_bind,用户名和密码是通过网络发送到LDAP服务器的清晰?
- 由于此登录对于整个网络,我怎么能保证我的登录/网站是不是安全的最薄弱的环节,或造成不应有的四通八达的交通网络密码信息?
注意:这是张贴在StackOverflow上,而不是ServerFault,因为我的问题是编程PHP网站的安全性。我的问题首先涉及用户登录网站的访问权限,限制和权限问题,同时向AD或备份数据库进行身份验证。
我接受你的答案,即使它不*技术*回答这个问题。具有两个用户数据库的额外管理开销和故障点/攻击媒介并不理想。我已经将外部帐户添加到了AD,并且使用了非常锁定的GP,该GP也拒绝了本地登录和其他不需要的网络访问。 – PenguinCoder 2012-05-08 15:10:37