【问题标题】:Service provider implementation with SAML 2 and Java使用 SAML 2 和 Java 实现服务提供者
【发布时间】:2015-09-19 07:25:45
【问题描述】:

在浏览了这么多谷歌网站,阅读了这么多 stackoverflow 中的 QA 之后,真的很困惑如何使用 SAML 2 和 Java 来实现 SP。

我了解理论概念,但不知道如何准确实施。

目前,我的客户已与我共享 IDP 元数据文件并要求提供 SP 元数据文件。这是我的第一个挣扎点。

  1. 实际如何生成元数据文件?有生成它的工具吗?
  2. 如何使用 Java 库实现 SAMLRequest 生成、SAMLResponse 解析。
  3. 人们推荐了这么多支持 IDP、SP 功能的公开网站,但无法选择正确的网站继续。我需要一些使用 SAML 2 在 Java 中实现 Service Provider 的具体示例。

如果有人在这种情况下帮助我,我真的很感激。如果我的问题不清楚,请纠正我,以便我尝试编辑它。

【问题讨论】:

    标签: java saml


    【解决方案1】:

    如果您需要在 Java 中构建 SP,我建议您使用 Spring SAML moduleOpenSAML library,但这些可能会给您带来更多工作量。如果您最终使用 OpenSAML,我有一本书,A Guide to OpenSAML,介绍了 SAML 和 OpenSAML 库。

    我还有一个blogg with many examples

    不过,我建议您首先考虑使用适用于 SAML 的现成产品,例如 Shibboleth,它是适用于 SAML 的免费和开源解决方案。这将使您无需了解 SAML 协议的细节,而且由于开发人员已经做出了不同的安全考虑,它会更加安全。

    【讨论】:

    • 谢谢 stefan... 我也阅读了您对其他问题的回复。客户特别要求我使用 OpenSAML(我不知道为什么......)所以我正在寻找一些关于它的示例实现......会按照你的建议工作。
    • OpenSAML 是经过良好测试且可互操作的代码。您可能会以与现有库可互操作的方式完成签名和加密,并且 OpenSAML 的使用相当广泛。 Shibboleth 是由制作 OpenSAML 的同一组开发的,您可以在 wiki.shibboleth.net/confluence/display/DEV/Source+Code+Access 看到他们的代码
    • 好吧,祝你好运,我的书是基于我在 github 上的 SAML sp 的示例实现
    【解决方案2】:

    @Stefan 有一些很好的建议。

    您需要的是 SAML 协议客户端堆栈。参考:SAML : SAML connectivity / toolkit和文章内的链接。

    就您的问题而言,不同的堆栈以不同的方式执行此操作。我使用的一些商业堆栈具有出色的文档和示例代码来完成所有这些工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-26
      • 1970-01-01
      • 2012-08-07
      • 2014-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-29
      相关资源
      最近更新 更多