【问题标题】:IdP-Initiated Web SSO Profile using JAVA and SAML 2.0使用 JAVA 和 SAML 2.0 的 IdP 发起的 Web SSO 配置文件
【发布时间】:2011-02-14 22:27:57
【问题描述】:

在我们的 Web 应用程序中,我们充当身份提供者 (IdP),通过带有用户名/密码的登录屏幕对用户进行身份验证。在成功验证后,我们希望显示最终用户可以单击以访问合作伙伴(服务提供商)网站的超链接列表。我们计划使用 SAML 2.0 和 HTTP POST 绑定来完成这些

消息将作为一个名为 SAMLResponse 的隐藏表单控件放置在 HTML FORM 中,如下所示

...

因为我是在 JAVA JSP 链接中将 SAMLResponse 实现为隐藏元素的新手,所以我有以下查询 - 如何在 JAVA 中生成 SAMLResponse 对象,然后将其设为隐藏字段 - 请指出示例 - 如何在 JAVA 中对 SAMLResponse 进行数字签名 - 如何在 JAVA 中加密 SAMLResponse

在 Java 世界中是否有等效的方法?是否有针对常见 servlet 容器或应用程序服务器的开箱即用解决方案和/或教程?

【问题讨论】:

    标签: java single-sign-on saml saml-2.0


    【解决方案1】:

    您可能想看看来自http://shibboleth.internet2.edu/ 的 Shibboleth,这是一个开源 IdP 和 SP 实现。我发现它非常成熟,尽管整个 SAML 的设置并不是完全简单的。但是,一旦它工作,它似乎工作得很好。恕我直言,在安全关键上下文中使用经过验证的实现是一个更好的主意,而不是在对所有细节了解不足的情况下自行开发。这使您自己的实现更容易出错,因此容易受到漏洞的影响。

    无论如何,如果您仍决定推出自己的实现,您至少可以查看 IdP 组件的源代码以获取有关如何执行某些操作的提示。

    http://svn.middleware.georgetown.edu/view/java-idp/branches/REL_2/src/main/java/edu/internet2/middleware/shibboleth/idp/

    【讨论】:

    • 谢谢丹尼尔。只是想澄清一下,我们并不是在寻找成熟的 SAML 解决方案,我们计划做的只是将 SAMLResponse 作为隐藏字段嵌入 HTML 表单中,并在我们的用户单击链接时执行 HTTP-POST。所以它归结为 - 如何在 JAVA 中创建 SAML 响应 - 如何在 JAVA 中对 SAMl 响应进行数字签名以及如何在 JAVA 中加密 SAMl 响应(我们计划使用 PGP),但不确定用于数字签名的内容。
    • 当然。我将源存储库的链接添加到我的答案中。它会将您直接带到 IdP 部分。你应该在那里找到很好的例子。
    猜你喜欢
    • 1970-01-01
    • 2018-02-11
    • 2014-12-11
    • 1970-01-01
    • 2015-07-11
    • 2022-01-23
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    相关资源
    最近更新 更多