【发布时间】: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