一位客户多年来一直使用我们的 PHP 网络应用程序,但现在想要一个单点登录解决方案 (SSO)。
他们有一个可以登录的公司内部网,他们希望使用相同的登录名作为我们网络应用程序(位于外部域)的自动身份验证。
他们谈论 SAML 2.0,这是我直到现在才听说过的。
我在互联网上搜索过,但很难理解所有不同的概念(身份提供者等)。所有关于该主题的网站似乎都需要一些我不具备的基本知识。我不明白必须如何以及在何处存储身份验证数据...(似乎是来自 cookie 的后数据,但是第一次开始这样做时如何在任何地方获取身份验证 xml?!)
有人可以针对这种特定情况为我指出一些方向吗?
最佳答案
这是一个关于 SAML 的非常高级的概述视频,可以让您了解全局:http://youtu.be/gUmMcecHN9s
如果你想要更多的技术介绍,我建议官方执行摘要:http://www.oasis-open.org/committees/download.php/13525/sstc-saml-exec-overview-2.0-cd-01-2col.pdf
它的基本原理是通常将数字签名的 XML 数据 block 从 IdP(身份提供者)传递到 SP(服务提供者),以告诉它用户已经通过身份验证并且他们应该被信任。 IdP 和 SP 之间需要进行带外初始设置,以相互信任并就共享哪些信息(用户 ID、属性等)达成一致。
要使 SAML 2.0 正常工作,有许多选项 - 包括商业选项(例如来自 Ping Identity - http://www.pingidentity.com/ ),这些选项很棒,可以节省您的精力并提供商业支持。还有其他选择,例如构建您自己的库或使用开源库 - 前提是您有更多时间,而且这是一次性问题。
关于php - SSO - 如何从内部网(SAML 2.0)自动登录到外部网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7308731/