SSO -如何从内部网自动登录到外部网站(SAML 2.0)


SSO - how to automatically log into an external website from an intranet (SAML 2.0)?

客户端已经使用我们的PHP web应用程序多年,但现在想要一个单点登录解决方案。

他们有一个公司内部网,在那里他们登录,他们想使用相同的登录作为我们的web应用程序的自动认证(这是在外部域)。

他们谈论SAML 2.0,这是我以前从未听说过的。

我搜索了互联网,但很难理解所有不同的概念(身份提供者等)。所有关于这个主题的网站似乎都需要一些我没有的基本知识。我不明白如何以及在哪里认证数据必须存储…(似乎是在cookie的post-data中,但是第一次这样做时如何在任何地方获得身份验证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数据块从IdP(身份提供者)传递到SP(服务提供者),以告诉它用户已经经过身份验证,并且应该被信任。在IdP和SP之间需要一个带外初始设置,以相互信任并就共享的信息(用户ID,属性等)达成一致。

要使SAML 2.0工作,有许多选项—包括商业选项(如Ping Identity - http://www.pingidentity.com/),它们非常好,可以节省您的工作并提供商业支持。还有其他的选择,比如构建自己的库或使用开源库——前提是你有更多的时间,而且这是一个一次性的问题。