一尘不染

带有SAML的REST API身份验证

java

我正在努力为使用网关的REST API设计SAML2.0身份验证。在我的后端和应用程序之间使用REST。我正在使用Java
Servlet过滤器和Spring。

我看到两种可能性:

  1. 每次将SAML令牌添加到标头中。

  2. 使用SAML进行一次身份验证,然后使用客户端与网关之间的会话或类似(安全对话)进行身份验证。

情况1: 这是一个很好的解决方案,因为我们仍然是RESTful,但是:

  • SAML令牌很大。由于标题大小过大,可能会产生问题。
  • 重播令牌并不是解决安全问题的最佳方法。

情况2: 不再是无状态的了,我必须管理与客户端的链接。由于我使用网关,因此基础服务仍然可以是RESTful的。

案例2寻找更好的选择,尽管它没有遵循其余约束。

是否已经有人做过并给我一些指示(用于设计或实现)?

有没有更好的方法可以使用SAML?

欢迎任何帮助或建议。


阅读 289

收藏
2020-12-03

共1个答案

一尘不染

它仍然是草案,但是:OAuth2 SAML承载配置文件可能是一种解决方案。 http://tools.ietf.org/html/draft-ietf-
oauth-saml2-bearer-17

使用SAML2对OAuth2提供程序进行身份验证,然后使用OAuth2令牌调用您的服务。

2020-12-03