CakePHP的外部认证/授权

时间:2010-11-18 15:34:08

标签: php security authentication cakephp single-sign-on

我们正在考虑为几个Web应用程序实现单点登录的选项,其中一些是CakePHP(1.3),而另一些则不是。我希望以前有过这方面的人的建议或评论。

以下是这样的想法:对CakePHP应用程序的访问由服务器AuthType控制。如果用户未经过身份验证,则他们根本无法访问应用程序,而是被踢回SSO登录页面。如果他们然后成功登录,他们将被重定向回应用程序并被Web服务器授予访问权限。

此时,CakePHP将读取$_SERVER['REMOTE_USER']的内容以识别用户并向他或她提供正确的信息。

具体问题:

  • 假设我们可以相信SSO是安全的,这种方法是否安全可靠?
  • 是否可以(或有用)将此机制与Cake的Auth组件集成?
  • 直接阅读$_SERVER超级全球是不是很好?
  • 是否有更类似于Cake的方式使应用程序可以识别SSO?

为了澄清,我只需要知道经过身份验证的用户 - 我不需要(或想要)与任何其他应用共享整个会话。

谢谢!

编辑:重申我的评论如下,SSO和所有应用都将在我们的服务器上。我们不会使用RealID或任何其他外部身份验证机制。因此,当我说“外部”auth时,我的意思是CakePHP的外部,但不是我们的Web服务器的外部。

1 个答案:

答案 0 :(得分:2)

AFAIK,REMOTE_USER仅在设置了“Authorization Required”标题并且用户使用http auth进行身份验证时设置。

大多数单点登录服务使用oAuth类型令牌来记录用户。我认为他们不会设置SERVER变量。

在任何一种情况下,都不建议使用http身份验证,因为如果发现可疑活动,则无法将某人记录下来。除非关闭浏览器,否则用户无法自行注销。

我强烈建议您坚持使用基于会话的身份验证和授权。