使用oauth2和JWT的无状态微服务架构

时间:2018-08-20 16:04:04

标签: oauth-2.0 authorization jwt microservices okta

我一直在研究使用SpringBoot和一些netflix库(例如Eureka,Zuul,Ribbon)开发微服务架构;但是,我似乎对安全设计感到厌烦。

我的目标是使用第三方网络服务,例如Okta.com来管理我的所有用户和应用程序。 Okta使用Oauth2,我相信这会使我的应用程序处于有状态。我的目标是使我的应用程序保持无状态以实现负载平衡。

我将使用以下服务模块架构,

Gateway Service 
Auth Service (Authenticate against Okta)
Microservice 1 (role_admin, role_sales)
Microservice 2 (role_admin, role_employee)

我的理解是,当网关请求路由到微服务1或微服务2时,令牌需要与请求一起转发,如果不存在令牌,则需要向网关处的Auth Service发送请求以便使用Oauth2从Okta获得令牌。

我的下一个理解是在使用oauth2时,当令牌存在并且已被转发到微服务1或微服务2时,令牌将需要再次针对okta进行验证。这些组将包含在令牌中。

我的问题是Okta是否可以仅用于身份验证和授权,而不是传递Okta生成的有状态的oauth2令牌,而是创建一个包含角色和用户信息的无状态JWT,并将其传递回微服务?

我只是想知道如何在微服务体系结构中使用像Okta这样的服务,但是仍然让我的微服务保持无状态,而且我不确定我的思维过程是否正确。

0 个答案:

没有答案
相关问题