微服务架构 - Spring boot - 网关

时间:2021-02-02 19:57:05

标签: spring-boot microservices gateway

我正在开发具有微服务架构的后端。我是该架构的新手,现在我已经在一个容器中开发了 3 个微服务(RESTful Web 服务,带有 Spring Boot)。 我想实现 OAuth2 和 JWT 休息保护和一个网关。 使用授权服务器和资源服务器实现网关是否正确? 我在架构方面做错了吗?

感谢您的回复

2 个答案:

答案 0 :(得分:1)

根据标准,不应将网关与授权混用,因为两者的目的不同。

网关

网关可以通过两种方式进行区分 - 内部和外部。网关的目的是将来自外部或内部的调用路由到受保护的资源。

授权服务器

授权服务器用于身份访问管理。在使用 JWT 或访问令牌等将调用路由到受保护资源之前,所有通过网关来自外部或内部的请求都应经过身份验证或授权。

https://medium.com/swlh/authentication-and-authorization-in-microservices-how-to-implement-it-5d01ed683d6f

答案 1 :(得分:0)

认证和授权 - 应该有一个单独的服务来认证用户(比如支持 OAuth0 类型的协议和提供 JWT 令牌)。您的前端应调用 API 网关。

现在问题在于您维护权限的粒度级别 - 只有一小组角色或权限集的粒度级别。现在 API Gateway 应该使用 JWT 与授权服务器通信并获取角色和权限集。基于同样的道理,API网关应该转发或阻止对微服务的调用。

即使您的角色集很小,并且网关可以提取和验证 JWT,但避免在网关保持相同,因为在不久的将来您可能必须将功能提取到其他服务。

相关问题