在SpringSession中使用Spring OAuth2和Principal进行身份验证

时间:2017-09-22 08:11:33

标签: java spring authentication oauth-2.0 microservices

我正在使用微服务架构构建新的Java应用程序,并且必须处理跨不同服务的用户身份验证。我看到了解决这个问题的两种主要方法:

1)Spring OAuth2 + Spring云安全性,它在每个请求的Authorization标头中使用Oauth令牌。令牌由单独的身份验证服务生成/验证。在每个请求中,我都能够获得具有用户身份和分配角色的身份验证主体,以便调用其他服务,我只需使用Oauth2RestTemplate自动传播授权头。

2)Spring Session + Spring security ,其中身份验证保存在会话中,而会话又存储在Redis(或其他地方)中,并由会话ID键入。在这种情况下,代替Authorization标头客户端将具有会话cookie,每个微服务将有权访问此会话和身份验证主体。 虽然没有现成的restTemplate来传播会话cookie,但这只是几行代码的问题,而不是决定因素。

两种解决方案都运行良好,那么如果有会话(每次从Redis拉出来),OAuth2的好处是什么呢?

在构建独立于语言的解决方案时,似乎OAuth2方法可能更可取,而Spring会话仅适用于Java微服务。

有人可以解释基于令牌的身份验证的其他好处吗?

0 个答案:

没有答案