使用 SAML 2 和 Java 的服务提供商实施

Service provider implementation with SAML 2 and Java

浏览了那么多 google 站点之后,在 Whosebug 中阅读了那么多 QA,真的很困惑如何使用 SAML 2 和 Java 实现 SP。

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

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

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

如果有人在这方面帮助我,我将不胜感激。如果我的问题不清楚,请纠正我,以便我尝试编辑它。

如果您需要在 Java 中构建 SP,我建议使用 Spring SAML module or the OpenSAML library, but these may give you more work. If you end up using OpenSAML I have a book, A Guide to OpenSAML,引入 SAML 和 OpenSAML 库。

我也有一个blogg with many examples

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

@Stefan 有一些好的建议。

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

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