我正在开发具有微服务架构的后端。我是该架构的新手,现在我已经在一个容器中开发了 3 个微服务(RESTful Web 服务,带有 Spring Boot)。 我想实现 OAuth2 和 JWT 休息保护和一个网关。 使用授权服务器和资源服务器实现网关是否正确? 我在架构方面做错了吗?
感谢您的回复
答案 0 :(得分:1)
根据标准,不应将网关与授权混用,因为两者的目的不同。
网关
网关可以通过两种方式进行区分 - 内部和外部。网关的目的是将来自外部或内部的调用路由到受保护的资源。
授权服务器
授权服务器用于身份访问管理。在使用 JWT 或访问令牌等将调用路由到受保护资源之前,所有通过网关来自外部或内部的请求都应经过身份验证或授权。
答案 1 :(得分:0)
认证和授权 - 应该有一个单独的服务来认证用户(比如支持 OAuth0 类型的协议和提供 JWT 令牌)。您的前端应调用 API 网关。
现在问题在于您维护权限的粒度级别 - 只有一小组角色或权限集的粒度级别。现在 API Gateway 应该使用 JWT 与授权服务器通信并获取角色和权限集。基于同样的道理,API网关应该转发或阻止对微服务的调用。
即使您的角色集很小,并且网关可以提取和验证 JWT,但避免在网关保持相同,因为在不久的将来您可能必须将功能提取到其他服务。