我正在努力为使用网关的 REST API 设计 SAML2.0 身份验证。REST 在我的后端和我的应用程序之间使用。我正在使用 Java Servlet 过滤器和 Spring。
我看到两种可能性:
每次都将 SAML 令牌添加到标头中。
使用 SAML 进行一次身份验证,然后在客户端和网关之间使用会话或类似(安全对话)。
案例 1:这是一个很好的解决方案,因为我们仍然是 RESTful,但是:
- SAML 令牌非常大。由于标头尺寸大,它可能会产生问题。
- 重放令牌不是出于安全考虑的最佳方式。
案例二:它不再是无状态的,我必须管理与客户端的链接。由于我使用网关,因此底层服务仍然可以是 RESTful。
案例 2 寻找更好的选择,尽管它不遵循其余约束。
是否有人已经这样做并给我一些指示(用于设计或实施)?
有没有更好的方法来使用 SAML?
欢迎任何帮助或建议。