【发布时间】:2012-02-28 20:46:21
【问题描述】:
我已经使用 CakePHP 的 Auth 帮助程序有一段时间了,虽然它很成功,但最近我被要求重新配置我们的系统。我们将允许用户使用其 Active Directory 凭据登录。
实际上对用户进行身份验证很容易,而且我已经有了执行此操作的代码。然而,Auth 本身就笼罩在神秘之中,我还没有浏览过它的源代码。我想做的是让系统尝试使用标准 Auth 方法进行身份验证,如果失败,则回退到 Active Directory 并尝试以这种方式进行身份验证。
数据库方面,我认为我需要修改我的用户表以某种方式存储 Active Directory 凭据(存储 AD 用户名这样简单的操作实际上就足够了,因为它只是一个链接),然后手动记录用户输入。有没有办法告诉 Auth “嘿,我现在以这个用户身份登录”而不做 POST 到 login()?
我做这一切的主要原因是为了避免通过完全放弃 Auth 来重写项目中其他地方的大量代码。不过,这可能是个坏主意,如果我要引入一些隐藏的不安全感,以后会咬我。
哦:我们使用的是 CakePHP 1.3。我不反对将项目升级到 2.0 版,但除非有充分的理由,否则我会避免这样做。
【问题讨论】:
-
对于 2.0,有很简单的方法可以做到这一点。但是对于 1.3,我很难回答。在我看来,升级有很多很好的理由(一个是这个问题本身,其他是性能、错误修复等等)
-
我可能会艰难地完成更新,但我必须在当前版本中修改核心。 (一个讨厌的 hack 绕过一个过分热心的 mod-security 安装,不喜欢 Cake 字段命名中频繁出现的“][”)我确定在尝试升级时会咬我.
标签: php cakephp authentication