如何实现 SAML 单点登录 [已关闭]

2022-09-01 03:19:02

SAML SSO 通常如何实现?

我已经读过这个(注意:过时)关于在Google Apps中使用SAML,以及SAML上的维基百科条目。

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

谷歌条目谈到了使用重定向,这对我来说似乎更无用。但是,它还讨论了使用表单作为用户必须提交的响应(尽管它确实讨论了使用JavaScript自动提交表单)。

这是这样做的标准方法吗?使用重定向和 JavaScript 提交表单?

有没有人知道关于如何在Windows域和J2EE Web应用程序之间实现SSO的任何其他好资源。Web 应用程序位于单独的网络/域中。我的客户想要使用 CA Siteminder(与 SAML 一起使用)。


答案 1

其工作方式是,在对用户进行身份验证后,SAML 身份提供商 (IdP) 向浏览器呈现一个包含 SAML 响应的表单 - 表单的“操作”(即目标)是服务提供商 (SP)。在 HTML 中,有一个提交表单的 JavaScript onLoad 事件,因此最终效果是用户自动从 IdP 转到 SP,SAML 响应在手。

用户唯一必须单击任何内容才能提交表单的情况是他们禁用了JavaScript。在这种情况下,SAML 实现通常提供一条消息,其中包含要在标记中按下的按钮。<noscript>

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

很遗憾你的客户想要使用CA SiteMinder - 开源OpenAM(以前称为OpenSSO)很容易做到这一点。


答案 2

这篇文章解释得很好。也有针对不同平台的示例。