【问题标题】:How to setup SAML to mutiple domain?如何将 SAML 设置为多个域?
【发布时间】:2018-12-28 08:37:23
【问题描述】:

我正在学习 SAML,并且已经阅读了许多文章和论坛,但我仍然对设置 IdP 感到困惑。 我正在使用“https://simplesamlphp.org/”

比如我有3个网站“example.com”、“one.example.com”、“two.example.com”; 所有这些都在三个不同的服务器上。 现在,我想使用 SAML 设置单点登录,然后在我需要设置 IdP 的服务器上。 因为“example.com”是主域,包含用户的所有信息。

据我所知,当我登录“example.com”时,它会向 IdP 发送请求。

但我不知道必须在哪里设置 IdP 以及 Idp 包含什么? 它在“example.com”托管的同一台服务器上或它的不同服务器上,我必须在该服务器上写什么逻辑? 这是简单的登录功能,或者我需要为此设置“simplesaml”并在此处设置登录逻辑。

设置 IdP 后,我需要在其他服务器“one.example.com”、“two.example.com”上做什么? 我是否需要再次将“simplesaml”安装到服务器并设置 SP 和 IdP?

在排序中,哪个服务器有 IdP 和 SP?我需要在哪台服务器上安装“simplesaml”?

提前致谢

【问题讨论】:

    标签: php single-sign-on saml saml-2.0 simplesamlphp


    【解决方案1】:

    身份提供者是提供用户信息的人。你会创建一个,我们称之为idp.example.com

    您将在那里安装 simpleSAML 并对其进行配置,以便它可以读取有关您的用户的信息,无论是在 MySQL、LDAP 等中(这是 IdP 设置的棘手部分)。

    现在,您的网站将成为服务提供商,如果用户未通过身份验证,他们会将用户重定向到 idp.example.com,用户登录,idp.example.com 将用户返回到服务提供商,并使用包含断言的 XML 文档。

    这意味着您的 SP 需要能够使用 IdP 发送到您网站的SAMLResponse

    您可以使用 simpleSAML 来使用它,您现在可以在 SP 模式下对其进行配置。

    请记住,SSP (simplesamlphp) 并不是 PHP 中处理 SAML 的唯一选项。还有Lightsaml - 一个合适的库。 SimpleSAML 不仅仅是一个库,它是一个完整的解决方案,而且老实说 - 一个超级超级糟糕的解决方案,它是一个可以输入并构建一个实际工作的系统的垃圾代码的缩影(很像 wordpress)。

    TL;DR:

    1. 创建 IdP -> idp.example.com -> 配置或创建根据您的用户来源(LDAP、ActiveDirectory、关系数据库等)对用户进行身份验证的模块
    2. 配置您的 3 个网站以使用 idp.example.com 进行身份验证
    3. 配置您的 3 个网站以便能够使用来自idp.example.com 的响应

    这一切都可以使用 simplesamlphp。如果您想更进一步并自行实施或使用 SAML - 您可以使用我链接的库。不过,通过 Lightsaml 库执行此操作将花费更长的时间,因为您必须处理单点注销和单点登录、加密、数字签名、端点、元数据等。

    【讨论】:

    • @n-b - 这意味着我需要设置 4 个系统 idp.example.comexample.comone.example.comtwo.example.com。并且simplesamlphp 安装在idp.example.com 上。从其他域,我只需要发送验证我的用户数据的请求。
    • 您的 IdP 不必位于子域中,您可以执行 example.com/idp/simplesaml 等操作,但是是的,您需要域/子目录中的 IdP 和 3 个服务提供商。
    • @n-b - 对于服务提供商,我不需要设置“simplesaml”或者我需要吗?
    • 你以为不设置就会神奇地登录别人? SAML 用于数据交换,IdP 使用 SAML 规范描述的 XML 文档将有关人员的数据发送到您的站点。您的网站需要阅读信封内的内容,验证来源并登录用户。当然,您需要安装 simplesaml,除非您可以阅读 SAML 消息并自行登录用户。
    【解决方案2】:

    simpleSAMLphp 是 IDP。

    您无需编写任何代码,只需设置配置即可。

    您还将拥有 3 个 SP = 三个网站。

    它们可以都在同一台服务器上,或者您可以为 IDP 设置一台服务器,为网站设置一台服务器。其实没关系。

    simpleSAMLphp 网站向您展示了您需要对每个 SP 进行的更改,以便与 IDP 进行通信。

    【讨论】:

      猜你喜欢
      • 2015-06-23
      • 2017-10-07
      • 2020-07-14
      • 2012-01-20
      • 1970-01-01
      • 2022-01-26
      • 2011-01-28
      • 2020-08-16
      • 1970-01-01
      相关资源
      最近更新 更多