在服务器之间共享REST令牌

Pab*_*zos 6 java security rest grails

我需要一个具有基于令牌的身份验证的REST API:我们将使用负载均衡器复制应用程序服务器,因为当用户通过身份验证时,一个服务器会生成令牌,并且可以通过同一客户端处理来自同一客户端的不同请求不同的服务器,是否有通用技术或技术在不同的服务器之间共享这些令牌?

关于技术,我们将使用Java堆栈,更具体地说是Grails.

关于应用程序服务器,我们可能有多个数据库.此评论很重要,因为与同事讨论,有人建议使用来自所有应用程序服务器的相同数据库管理令牌共享.我正在寻找一种不需要集中式数据库的解决方案,让我们可以在数据库方面进行扩展.

Mvd*_*vdD 3

当使用基于令牌的身份验证时,有一个服务器对用户进行身份验证并颁发安全令牌。可以通过多种方式对用户进行身份验证(根据数据库验证用户名/密码、验证智能卡上的证书等)。

一旦令牌由身份验证服务器颁发并签名,就不需要数据库通信来验证令牌。任何接受令牌的服务都只会验证令牌的数字签名。

客户端(服务的调用者)负责将令牌与请求一起发送。因此,无论负载均衡器后面的哪个服务器处理传入请求,它只需要与签名密钥关联的公钥来验证请求是否有效。

选择哪种安全协议取决于您的要求。OAuth经常用于互联网应用程序。WS-FederationSAML-P在企业环境中大量使用。