微服务架构- Spring启动-网关



我正在开发一个带有微服务架构的后端。我是这个架构的新手,到目前为止,我已经在一个容器中开发了3个微服务(RESTful web服务,使用Spring Boot)。我想实现OAuth2和JWT Rest保护和一个网关。使用授权服务器和资源服务器实现网关是否正确?我在架构上做错了什么吗?

感谢您的回复

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

网关

网关可分为内部网关和外部网关。网关的作用是将来自外部或内部的呼叫路由到受保护的资源。

授权服务器

授权服务器用于身份访问管理。所有通过网关来自外部或内部的请求都应该在使用JWT或访问令牌等路由调用受保护资源之前进行身份验证或授权。 https://medium.com/swlh/authentication-and-authorization-in-microservices-how-to-implement-it-5d01ed683d6f

身份验证和授权——应该有一个单独的服务来对用户进行身份验证(比如支持OAuth0类型的协议和提供JWT令牌)。你的前端应该调用API网关。

现在的问题是你在什么粒度级别上维护权限——只有一小部分角色还是权限集的粒度级别。现在,API网关应该使用JWT与授权服务器通信,并获得一组角色和权限。基于此,API网关应该转发或阻止对微服务的调用。

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