网页中的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库可以与其集成。

我们也可以看看这个问题。