如何将SAML设置为多个域



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

例如,我有三个网站"example.com"、"one.example.com"one_answers"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"?

提前感谢

simpleSAMLphp是IDP。

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

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

它们可以都在同一台服务器上,也可以有一台IDP服务器和一台网站服务器。这其实并不重要。

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

Identity提供程序提供有关用户的信息。您可以创建一个,我们称之为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库完成这项工作需要很长时间,因为你必须处理单次注销和单次登录、加密、数字签名、端点、元数据等。

相关内容

  • 没有找到相关文章

最新更新