为 php 应用程序实施 SSO 的步骤
Steps to implement SSO for php application
我是 SSO 实施方面的新手。我们正在考虑为使用 php 应用程序(由我们支持)的客户实施 SSO,以便其员工登录该应用程序。我们正在为此设置简单 SAML。我一直在阅读有关 SSO 的文章,其中很多都有帮助。请原谅我问这个,我知道这是愚蠢的。在这种情况下,谁是 IDP,谁将是服务提供者。客户端显然也将 SSO 用于其他应用程序。有人可以从我们这端阐明我需要设置的所有内容吗..我将研究如何做每一个..有人可以通过提及需要实施的事情来提供帮助吗?
您的应用是 SP,客户将向您提供 IdP 元数据以在您的 SP 上注册。
为了向 PHP 应用程序添加 SAML 支持,您有 2 个选择:
所有这些都有据可查,您需要花一些时间reading/learning。
who is the IDP and who will be the service provider.
IDP(身份提供者)是以 saml 术语创建、存储、维护和验证用户或委托人身份的人。因此,在您的情况下,它是客户端应用程序。
SP(服务提供商)是向用户(由 IDP 验证)提供服务或资源的人,因此在您的情况下,它就是您的应用程序。
could someone please help by mentioning the things that need to be implemented.
正如您在上图中看到的那样,当用户尝试访问您网站上的资源时,您必须将他们重定向到 IDP 以确认该用户是否已通过身份验证以及是否应该 return 他们resource/response 他们正在寻找。 SSO url 和其他细节通过元数据在 IDP 和 SP 之间交换。
一旦 IDP 对用户进行了身份验证,它将 POST 对您的应用程序做出响应 url。此响应包含一个 assertion,通过它您将了解用户详细信息以及用户是否已通过身份验证。您将必须解析此响应 (xml)。此外,这些断言通常使用证书签名并以 base 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
我是 SSO 实施方面的新手。我们正在考虑为使用 php 应用程序(由我们支持)的客户实施 SSO,以便其员工登录该应用程序。我们正在为此设置简单 SAML。我一直在阅读有关 SSO 的文章,其中很多都有帮助。请原谅我问这个,我知道这是愚蠢的。在这种情况下,谁是 IDP,谁将是服务提供者。客户端显然也将 SSO 用于其他应用程序。有人可以从我们这端阐明我需要设置的所有内容吗..我将研究如何做每一个..有人可以通过提及需要实施的事情来提供帮助吗?
您的应用是 SP,客户将向您提供 IdP 元数据以在您的 SP 上注册。
为了向 PHP 应用程序添加 SAML 支持,您有 2 个选择:
所有这些都有据可查,您需要花一些时间reading/learning。
who is the IDP and who will be the service provider.
IDP(身份提供者)是以 saml 术语创建、存储、维护和验证用户或委托人身份的人。因此,在您的情况下,它是客户端应用程序。
SP(服务提供商)是向用户(由 IDP 验证)提供服务或资源的人,因此在您的情况下,它就是您的应用程序。
could someone please help by mentioning the things that need to be implemented.
正如您在上图中看到的那样,当用户尝试访问您网站上的资源时,您必须将他们重定向到 IDP 以确认该用户是否已通过身份验证以及是否应该 return 他们resource/response 他们正在寻找。 SSO url 和其他细节通过元数据在 IDP 和 SP 之间交换。
一旦 IDP 对用户进行了身份验证,它将 POST 对您的应用程序做出响应 url。此响应包含一个 assertion,通过它您将了解用户详细信息以及用户是否已通过身份验证。您将必须解析此响应 (xml)。此外,这些断言通常使用证书签名并以 base 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