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

Mvc*_*ner 7 php single-sign-on saml-2.0 adfs3.0

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

sma*_*tin 5

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

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

所有这些都有很好的文档记录,您需要花一些时间阅读/学习。


Vbp*_*Vbp 5

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

IDP(身份提供者)是使用saml术语创建,存储,维护和认证用户或委托人身份的人。因此,在您的情况下,它是客户端应用程序。

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

SSO工作流程

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

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

IDP验证用户身份后,他们将在您的应用程序URL上发布响应。该响应包含一个断言,通过该断言您将了解一些用户详细信息以及用户是否已通过身份验证。您将必须解析此响应(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