我们正在考虑为几个Web应用程序实现单点登录的选项,其中一些是CakePHP(1.3),而另一些则不是。我希望以前有过这方面的人的建议或评论。
以下是这样的想法:对CakePHP应用程序的访问由服务器AuthType控制。如果用户未经过身份验证,则他们根本无法访问应用程序,而是被踢回SSO登录页面。如果他们然后成功登录,他们将被重定向回应用程序并被Web服务器授予访问权限。
此时,CakePHP将读取$_SERVER['REMOTE_USER']
的内容以识别用户并向他或她提供正确的信息。
具体问题:
$_SERVER
超级全球是不是很好?
为了澄清,我只需要知道经过身份验证的用户 - 我不需要(或想要)与任何其他应用共享整个会话。
谢谢!
编辑:重申我的评论如下,SSO和所有应用都将在我们的服务器上。我们不会使用RealID或任何其他外部身份验证机制。因此,当我说“外部”auth时,我的意思是CakePHP的外部,但不是我们的Web服务器的外部。
答案 0 :(得分:2)
AFAIK,REMOTE_USER仅在设置了“Authorization Required”标题并且用户使用http auth进行身份验证时设置。
大多数单点登录服务使用oAuth类型令牌来记录用户。我认为他们不会设置SERVER变量。
在任何一种情况下,都不建议使用http身份验证,因为如果发现可疑活动,则无法将某人记录下来。除非关闭浏览器,否则用户无法自行注销。
我强烈建议您坚持使用基于会话的身份验证和授权。