我正在学习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”?
预先感谢
答案 0 :(得分: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:
idp.example.com
->配置或创建用于根据您的用户来源(LDAP,ActiveDirectory,关系数据库等)对用户进行身份验证的模块idp.example.com
idp.example.com
的回复这一切都可以通过simplesamlphp完成。如果您想更进一步,自己实现或使用SAML,则可以使用我链接的库。通过Lightsaml库完成此过程将花费很多时间,因为您必须注意单点注销和单点登录,加密,数字签名,端点,元数据等。
答案 1 :(得分:0)
simpleSAMLphp是IDP。
您无需编写任何代码,只需设置配置即可。
您还将拥有3个SP =这三个网站。
它们都可以位于同一服务器上,或者您可以为IDP拥有一台服务器,为网站拥有一台服务器。其实并不重要。
simpleSAMLphp网站显示了您需要对每个SP进行的更改,以便与IDP进行通信。