4

在这里有点失去理智,我真的很想得到一些帮助,让我指向正确的方向。

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

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

任何指导将不胜感激,这是我第一次 SSO 设置,我只是有点迷路。

4

1 回答 1

2

要实现单点登录,您需要两个网站中通用的东西来进行身份验证。Cookie 没有帮助,因为有两个不同的站点,并且将您的 cookie 暴露给另一个网站是不好的。

通常,SSO 是使用中央服务器实现的,它基本上处理身份验证数据。

基本步骤如下:

  1. 对于登录,用户被重定向到公共服务器并验证凭据。

  2. 中央服务器为登录设置 cookie。

  3. 当您的其他网站需要登录时,它会使用重定向再次检查中央服务器。

  4. 然后,中央服务器检查 cookie 并验证或重定向到登录(如果之前未验证)。

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

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

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

理论上有很多内容需要介绍,但希望它会有所帮助。

有用的链接:

  1. 构建和实施单点登录解决方案

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

于 2017-12-18T13:15:14.727 回答