网页中的SSO
时间:2020-03-06 14:25:09 来源:igfitidea点击:
我想知道在网站上进行单点登录的最佳技术是什么。这意味着,如果我们输入多个网站,则将以"透明"方式对我们进行身份验证。我正在使用php + curl为不同的站点设置cookie,但是我真的很想知道是否存在执行此操作的标准方法。
解决方案
最好的方法是使用Image标记,这些标记可从外部站点提取图像流。
因此,如果我们在www.some-site.com上并且还希望登录www.some-partner-site.com,则在登录后将显示以下内容:
因为我们使用的是图片,所以它会强制浏览器"拉入"该URL的内容。
我最近建立了一个可以使用ASP.NET实现此功能的解决方案,但是我们也有一个基于php的合作伙伴站点。
显示的图像是无关紧要的,实际上我们根本不应该显示任何图像(因此为1x1大小)
对于标准的安全方式,我们需要:
- 认证服务器
- 每个需要SSO的站点上的身份验证筛选器
该机制有点复杂,它涉及http重定向和安全的身份验证票证。我们可以在CAS网站(流行的Java SSO服务器)上找到详细的说明。
我建议阅读此页面" CAS Java Client Gateway示例",尤其是页面底部的序列图。
我们还可以查看OpenId。这与用于登录stackoverflow的机制相同,并且具有"全局"单点登录功能。
我相信有可用的PHP库可以与其集成。
我们也可以看看这个问题。