如何实现SAML SSO
-
03-07-2019 - |
题
如何实施SAML SSO?
我已阅读有关在Google上使用SAML的此(nb已废弃)应用程序以及 SAML 上的维基百科条目。
维基百科条目讨论了使用包含SAMLRequest和SAMLResponse详细信息的表单进行响应。这是否意味着用户必须以物理方式提交表单才能继续进行单点登录?
谷歌条目谈到使用重定向,这对我来说似乎更无聊。但是,它还讨论了使用用户必须提交的响应表单(尽管它确实讨论了使用JavaScript自动提交表单)。
这是标准的做法吗?使用重定向和JavaScript进行表单提交?
有没有人知道如何在Windows域和J2EE Web应用程序之间实现SSO的任何其他好资源。 Web应用程序位于单独的网络/域中。我的客户想要使用 CA Siteminder (使用SAML)。
解决方案
其工作方式是,在对用户进行身份验证后,SAML身份提供程序(IdP)将表单呈现给包含SAML响应的浏览器 - 表单的“操作”(即目标)是服务提供者(SP)。在HTML中,有一个JavaScript onLoad事件提交表单,因此净效果是用户自动从IdP获取到手中的SP,SAML响应。
用户必须单击任何内容才能提交表单,只有他们禁用了JavaScript。在这种情况下,SAML实现通常会提供一条消息,其中包含一个按下<noscript>
标签的按钮。
有关详细信息,请参阅几年前我写的这篇文章 - 但请注意,'Lightbulb'现在已经过时了 - 对于PHP SAML,请参阅 simpleSAMLphp 。
您的客户希望使用CA SiteMinder - 开源 OpenAM (以前称为OpenSSO),这是一种耻辱)这很容易做到。
其他提示
这篇文章说明非常好。也有不同平台的例子。
如果Siteminder是依赖方,那么您需要编写自定义代理以获取SAML工件并创建SM会话。否则,您将需要购买已经构建此功能的产品。
您可以查看此图片链接以更好地了解SAML SSO。我也想给你一些链接。这些链接是公司的产品,并且有一个非常直观的SAML工作原理示例: - https:// www .codeultimate.com /产品/ SAML