为php应用程序实现SSO的步骤

时间:2017-05-11 08:59:48

标签: php single-sign-on saml-2.0 adfs3.0

我是SSO实施的新手。我们正在考虑为使用php应用程序(我们支持)的客户端实施SSO,以便员工登录应用程序。我们正在为此设置简单SAML。我一直在阅读有关SSO的文章,其中许多都很有帮助。请原谅我,我知道这是愚蠢的。在这种情况下,谁是IDP,谁将成为服务提供商。客户端显然也将SSO用于其他应用程序。有人可以说明我需要在最后设置的所有东西......我将研究如何做每一件事。有人可以通过提及需要实施的事情来帮助。

2 个答案:

答案 0 :(得分:3)

  

谁是IDP,谁将成为服务提供商。

IDP(身份提供商)是以saml术语创建,存储,维护和验证用户或委托人身份的人。所以在你的情况下,它是客户端应用程序。

SP(服务提供商)是向用户提供服务或资源的人(由IDP认证),因此在您的情况下,它是您的应用程序。

SSO workflow

  

有人可以通过提及需要实施的事情来帮助。

正如您在上图中看到的,当用户尝试访问您网站上的资源时,您必须将其重定向到IDP以确认此用户是否经过身份验证,并且您是否应该为他们提供他们正在寻找的资源。通过元数据在IDP和SP之间交换SSO URL和其他详细信息。

一旦IDP对用户进行了身份验证,他们就会在您的应用程序网址上发布回复。此响应包含assertion,通过该响应您将了解一些用户详细信息以及用户是否经过身份验证。您将不得不解析此响应(xml)。此外,这些断言通常使用证书进行签名,并以64位编码。

您还必须考虑SLO,因此当用户点击您网站中的注销时,您可能需要从应用程序中清除其会话并将其重定向到IDP,以便他们也从那里注销。

正如smartin所建议的那样,您可以使用一些库来实现SAML。我正在学习SAML,因为我们正在努力将当前的应用程序转换为IDP:)

我发现这个SAML官方文档和一些图表非常有用。 http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0-cd-02.html

答案 1 :(得分:2)

您的应用是SP,客户将向您提供要在SP上注册的IdP元数据。

为了向PHP应用程序添加SAML支持,您有两种选择:

所有这些都有详细记录,你需要花一些时间阅读/学习。