我正在努力为使用网关的REST API设计SAML2.0身份验证.我的后端和我的应用程序之间使用REST.我使用
Java Servlet过滤器和Spring.
我看到两种可能性:
>每次将SAML令牌添加到标题中.
>使用SAML验证一次,然后在客户端和网关之间使用会话或类似的(安全对话).
案例1:这是一个很好的解决方案,因为我们仍然是RESTful,但是:
> SAML令牌相当大.它可能由于大的标题大小而产生问题.
>重放令牌不是安全考虑的最佳方法.
情况2:它不再是无状态的,我必须管理与客户端的链接.由于我使用网关,底层服务仍然可以是RESTful的.
案例2寻找更好的选择,尽管事实上它不遵循其余的约束.
有人已经做了,给我一些指针(设计或实现)?
有没有更好的方法来与SAML做?
欢迎任何帮助或建议.
解决方法
它仍然是草稿,但是:OAuth2 SAML承载简档可能是一个可能的解决方案.
http://tools.ietf.org/html/draft-ietf-oauth-saml2-bearer-17
http://tools.ietf.org/html/draft-ietf-oauth-saml2-bearer-17
使用SAML2向OAuth2提供商进行身份验证,然后使用OAuth2令牌呼叫您的服务.