跨多个网站(多个数据库)的SSO

4

我有点不知所措,希望能得到一些帮助指引。

我使用的是GoDaddy上的共享Linux服务器,在其中有两个用PHP编写的网站,并分别通过两个独立的MySQL数据库进行用户登录验证。我想要的是,用户在Site 1中登录后自动登录Site 2。并且当他们从任何一个站点注销时,他们应该被同时注销。

我目前已经安装了SimpleSAMLphp,并且非常希望能够获得如何设置IdP和SPs的指导。我是否正确地认为Site 1和Site 2是SPs?

任何指导都将不胜感激,这是我第一次进行SSO设置,我有些迷茫。

1个回答

2
要实现单点登录,您需要在两个网站中都具有的某些东西来进行身份验证。Cookie 是不起作用的,因为这是两个不同的网站,将 Cookie 暴露给另一个网站是不好的。
通常情况下,SSO 是使用一个中央服务器来处理身份验证数据。
基本步骤如下:
1. 用户被重定向到公共服务器进行登录,并验证凭据。 2. 中央服务器设置登录的 Cookie。 3. 当您的其他网站需要登录时,它再次使用重定向检查中央服务器。 4. 然后,中央服务器检查 Cookie 并进行身份验证,如果未经过身份验证,则重定向到登录页面。
因此,您可以配置一个中央身份验证服务器,该服务器检查身份验证并提供适当的响应,两个网站相应地处理它。
但是,中央服务器需要一个公共用户数据库,而在您的情况下,显然缺少这样的数据库。因此,您可以将其中一个网站声明为中央或主要资源,并为其他网站公开 API,以验证其用户信息。
让一个网站处理登录过程。如果其他网站需要进行身份验证,它将重定向用户到主网站,然后处理返回响应。
有很多理论需要掌握,但希望能对您有所帮助。
有用的链接:
  1. 构建和实现单点登录解决方案

  2. 单点登录(SSO)基础知识


非常感谢,我明白了,我会开始处理的。感谢您的指导。 - Partha Dey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接