Architecture 微服务与用户之间的授权

Architecture 微服务与用户之间的授权,architecture,microservices,Architecture,Microservices,处理微服务和用户之间的访问和授权的最佳方式是什么 我正在构建一个基于微服务架构的应用程序。服务通过REST相互通信。有些端点只能由其他微服务访问,不能由用户直接访问,有些端点是公共的,有些端点需要用户注册或拥有管理员权限。除此之外,用户还将扮演管理员和普通用户等角色 我试图弄清楚Oauth2和scopes是否是实现我想要实现的目标的最佳方法。e、 g.每个微服务都将有“用户”在某些范围内拥有权限,如“service1下订单” 是的,Oauth2是正确的方法 您必须实现一个授权服务器,该服务器将授

处理微服务和用户之间的访问和授权的最佳方式是什么

我正在构建一个基于微服务架构的应用程序。服务通过REST相互通信。有些端点只能由其他微服务访问,不能由用户直接访问,有些端点是公共的,有些端点需要用户注册或拥有管理员权限。除此之外,用户还将扮演管理员和普通用户等角色


我试图弄清楚Oauth2和scopes是否是实现我想要实现的目标的最佳方法。e、 g.每个微服务都将有“用户”在某些范围内拥有权限,如“service1下订单”

是的,Oauth2是正确的方法

您必须实现一个授权服务器,该服务器将授予您访问令牌,并且您将在此授权服务器中注册客户端、用户和作用域,您的微服务将用作资源服务器,您希望向具有特定权限的特定用户公开的端点将用@preauthorize(hasScope('readThis')注释&&hasAuthority('admin'),类似地,您可以限制其他端点,资源服务器将使用auth server对令牌进行身份验证,因此您必须维护InMemoryToken存储或jdbc令牌存储

如果您想在访问令牌中获取一些信息,比如说组织等,还可以实现jwt,这样您还可以节省从资源服务器到身份验证服务器的额外调用,以验证令牌,并且您不必将令牌存储在内存或jdbc存储中