如何实施SAML SSO

SAML SSO通常如何实施?

我已经阅读了关于将SAML与Google Apps结合使用以及SAML上的维基百科条目(nb废弃)。

维基百科条目将讨论如何使用包含SAMLRequest和SAMLResponse的详细信息的表单进行回复。 这是否意味着用户必须实际提交表单才能继续进行单点login?

谷歌条目谈到使用redirect,这对我来说似乎更加无聊。 但是,它也谈论了使用表单来提交用户必须提交的响应(尽pipe它的确谈到了使用JavaScript来自动提交表单)。

这是做这个的标准方式吗? 使用redirect和JavaScript的表单提交?

有没有人知道如何去实现Windows域和J2EE Web应用程序之间的SSO的任何其他良好的资源。 Web应用程序位于单独的networking/域上。 我的客户想要使用CA Siteminder (使用SAML)。

这样做的方式是,在对用户进行身份validation之后,SAML身份提供者(IdP)向包含SAML响应的浏览器呈现表单 – 表单的“操作”(即目标)是服务提供者(SP)。 在HTML中,有一个提交表单的JavaScript onLoad事件,所以最终的效果是用户自动从IdP转移到SP,即SAML响应。

用户唯一需要点击任何内容才能提交表单的是禁用了JavaScript。 在这种情况下,SAML实现通常会提供一个消息,并在<noscript>标签中按下一个button。

有关更多详细信息,请参阅几年前我写的这篇文章 – 但请注意,“Lightbulb”现在已经过时了 – 对于PHP SAML,请参阅simpleSAMLphp 。

您的客户想要使用CA SiteMinder是一个耻辱 – 开源的OpenAM (以前称为OpenSSO)很容易实现。

这篇文章解释得非常好。 也有不同平台的例子。

如果Siteminder是依赖方,那么您需要编写一个自定义代理来获取SAML工件并创build一个SM-Session。 否则,您需要购买具有此function的产品。