【问题标题】:What is the point of OpenSAML? Any alternative?OpenSAML 的意义何在?有什么选择吗?
【发布时间】:2016-01-30 10:47:32
【问题描述】:

我目前正在设置 SAML IDP。 起初,我认为 spring-security-saml 会帮助我,但我发现它只有助于设置 SAML 协议的 SP 端。

所以我想:走吧,我们用 OpenSAML 来做吧。

问题来了:这个库实际上是做什么的? 我知道这是一个低级库,但我不明白它的意义何在。 我没有找到好的教程和文档,我觉得我刚买了一些没有螺丝和手册的宜家家具。

虽然,我看到了很多有趣的东西,比如解码器 (HTTPPostDecoder),它们从 HTTP 请求中获取了一个 SAML 对象,但我不知道是否应该根据 IDP 元数据手动检查这个对象,或者 OpenSAML 是否可以自动检查(我认为它不能)。

从那里开始,我有点迷失在所有这些 OpenSAML 对象中,我不知道应该使用哪些,哪些不需要。

例如,我尝试从头开始生成元数据,但我没有找到任何可以开箱即用的默认配置,我最终只得到了一个用于 10 行代码的 XML 标记,所以我没有'不知道这个库的真正价值是什么。

有人能告诉我 OpenSAML 做什么和不做什么吗? 是否有一些好的实践、帮助库可以包装它并真正帮助我(或任何替代方案)或我还没有找到的好教程?我认为这肯定会有所作为,但我不知道是什么以及如何......

提前感谢您的帮助!

【问题讨论】:

  • 你最后做了什么?我发现自己处于类似的境地。我正在考虑使用外部身份验证的 Shibboleth,但它带有自己的安全蠕虫罐。
  • 最后,我阅读了SAML规范,得出的结论是,从零开始做一个SAML实现需要大量的工作,所以项目已经处于备用状态,暂时,从未恢复。阅读规范、实现主要用例需要一个优秀的团队和大量时间,而我当时没有资源。
  • OpenSAML 实际上有利于正确创建具有所有适当属性的 XML 断言,更重要的是有助于正确执行所有签名。自己正确地做到这一点真的很难。我自己用它来创建 IdP。但是,是的,文档可能会更好。如果您的用例被它提供的内容所覆盖,Shibboleth 会更容易,但如果没有,那么您必须进行大量定制,在这种情况下,OpenSAML 实际上可能更容易完成 XML 部分。但请注意 - 从头开始​​创建 IdP 需要大量工作。

标签: java saml saml-2.0 opensaml


【解决方案1】:

如你所见广告https://wiki.shibboleth.net/confluence/display/OpenSAML/Home

OpenSAML 是一个处理低级 SAML 协议内容的库。这不是 IdP。 IdP 还必须为您提供身份验证方法,可能是用户配置文件管理。

有许多 SAMLv2 IdP 可用,例如 Shibboleth、JBoss PicketLink、ForgeRock OpenAM、Ping Federate;有些是免费的有些是商业的

【讨论】:

  • 感谢您的回答。我发现它真的很低级。如果文档对最终用户有点友好,我不会打扰我使用它。我基本上知道你提到的三个 IDP。 OpenAM 被排除在外,我使用它,我真的很讨厌它的开发方式。 Ping 是商业的,所以它也被排除在外。我试着在 Shibboleth 挑选,我们拭目以待。你认为我可以重用 SAML 部分将其集成到我的 IDP 中吗?我还开始研究 CAS 服务器的 SAML 部分,这可能是一个很好的线索!
  • Shibboleth 可以充当 SAMLv2 IdP ...
  • 好吧,我最后想要的是一个应用程序,所以我希望能够将 Shibboleth IDP 嵌入到我的应用程序中,而不必将它安装在我的应用程序之外。跨度>
  • 很抱歉,我没有得到用例。 IdP 和 SP 由同一个应用交付?
  • 不,只是 IDP。我只是希望它在我的应用程序中,而不必安装独立的 IDP。
猜你喜欢
  • 2016-09-16
  • 2010-09-23
  • 2011-07-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-06
  • 2011-03-07
  • 1970-01-01
  • 2011-05-04
相关资源
最近更新 更多