【发布时间】:2010-11-18 15:34:08
【问题描述】:
我们正在考虑为一些 Web 应用程序实现单点登录的选项,其中一些是 CakePHP (1.3),而另一些则不是。我希望从以前做过这件事的人那里得到建议或cmets。
想法如下:对 CakePHP 应用程序的访问由服务器 AuthType 控制。如果用户未通过身份验证,则他们根本无法访问应用程序,而是被踢回 SSO 登录页面。如果他们随后成功登录,他们将被重定向回应用程序并由 Web 服务器授予访问权限。
此时,CakePHP 将读取$_SERVER['REMOTE_USER'] 的内容以识别用户并向他或她提供正确的信息。
具体问题:
- 假设我们可以相信 SSO 是安全的,那么这种方法是否安全可靠?
- 是否可以(或有用)将此机制与 Cake 的 Auth 组件集成?
- 直接读
$_SERVER超全局是不是很卡? - 是否有更类似于 Cake 的方式让应用程序感知 SSO?
为了澄清,我只需要知道经过身份验证的用户 - 我不需要(或不想)与任何其他应用共享整个会话。
谢谢!
编辑:重申我在下面的评论,SSO 和所有应用程序都将在我们的服务器上。我们不会使用 RealID 或任何其他外部身份验证机制。因此,当我说“外部”身份验证时,我指的是 CakePHP 外部而不是我们的 Web 服务器外部。
【问题讨论】:
-
如果所有组件都可以在同一个域下(也许使用子域)并且一切都是用 PHP 编写的,你可能想看看github.com/delight-im/PHP-Auth,它既与框架无关,又与数据库无关不可知论者。
标签: php security authentication cakephp single-sign-on