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

问题描述 投票:3回答:1

我在这里略显失落,我真的希望得到一些帮助,让我指出正确的方向。

我在GoDaddy上使用共享Linux服务器,我有两个PHP网站,其中单独的用户登录使用两个单独的MySQL数据库进行身份验证。我想要的是用户登录站点1然后自动登录到站点2.当他们从任一站点注销时,他们应该从两个站点注销。

我目前安装了SimpleSAMLphp,我非常感谢有关如何设置IdP和SP的一些指导。我是否正确地认为站点1和站点2是SP的?

任何指导都将非常感谢,这是我的第一次SSO设置,我只是有点迷失。

php mysql single-sign-on simplesamlphp godaddy-api
1个回答
1
投票

要实现单点登录,您需要在两个网站中共同进行身份验证。 Cookies不会有帮助,因为有两个不同的网站,并且将您的cookie暴露给另一个网站是不好的。

通常,SSO使用基本上处理认证数据的中央服务器来实现。

基本步骤如下:

  1. 对于登录,用户将被重定向到公共服务器并验证凭据。
  2. 中央服务器为登录设置cookie。
  3. 当您的其他网站需要登录时,它会使用重定向再次检查中央服务器。
  4. 然后,如果之前未经过身份验证,则中央服务器会检查cookie并进行身份验证或重定向到登录。

因此,您可以配置中央身份验证服务器,以检查身份验证并提供相应的响应,并且两个网站都会相应地处理它

但是,中央服务器需要一个共同的用户数据库,在您的情况下,您显然缺乏。因此,您可以将其中一个网站声明为中心或主要资源,并为其他网站公开API,以便公开其用户群以验证详细信息。

让一个网站处理登录过程。如果需要进行其他身份验证,则会将用户重定向到主网站,然后处理返回响应。

理论上还有很多东西要涵盖,但希望它会有所帮助。

有用的链接:

  1. Building and implementing a Single Sign-On solution
  2. Basics of Single Sign on (SSO)
© www.soinside.com 2019 - 2024. All rights reserved.