oauth-2.0 - 使用 oauth2 和 JWT 的无状态微服务架构
问题描述
我一直在研究使用 SpringBoot 和一些 netflix 库(如 Eureka、Zuul、Ribbon)开发微服务架构;但是,我似乎对安全设计很感兴趣。
我的目标是使用基于 Web 的第三方服务(例如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 服务发出请求使用 Oauth2 从 Okta 获取令牌。
我的下一个理解是在使用 oauth2 时,当令牌存在并且已经转发到微服务 1 或微服务 2 时,令牌需要再次针对 okta 进行验证。这些组将包含在令牌中。
我的问题是 Okta 是否可以仅用于身份验证和授权,而不是传递 Okta 生成的有状态 oauth2 令牌,而是创建一个包含角色和用户信息的无状态 JWT 并将其传递回微服务?
我只是想知道如何在微服务架构中使用像 Okta 这样的服务,但仍然保持我的微服务无状态,我不确定我的思考过程是否正确。
解决方案
推荐阅读
- mobile - Bootstrap Responsive Menu Not Expanding Correctly
- .net-core - 是否可以强制 Linux 上的 .Net Core 使用 CRLF?
- python - 使用 Pytorch 或 Python 将包含图像的目录拆分为子文件夹
- angular - Angular HttpClient 响应为空,但网络工具显示响应
- constraints - 公差对二元变量的影响?
- c++ - 如何使这个循环重新开始,当用户输入1时,当用户输入0时停止
- multi-tenant - Azure B2C 来宾(外部 Azure Active Directory)X 成员(联合 Azure Active Directory)
- c++ - 按列打印二维数组时出现问题
- itext - 将 itext 版本从 2.x 升级到 5.5.13 时出现问题
- javascript - 使用 JavaScript 以编程方式从 HTML 选择下拉列表中选择多个选项不起作用