Authorization 微服务授权我应该使用什么方法?

Authorization 微服务授权我应该使用什么方法?,authorization,microservices,Authorization,Microservices,我在工作中讨论了授权,我们对授权应该是什么样子有不同的意见。我想问StackOverflow社区哪种方法是正确的,因为我找不到自己 我们正在创建一个新项目。 我们将使用: 香港作为代理人 密钥斗篷作为身份提供者 应用程序中的用户将创建资源。我们称之为工作区。工作区将包含一个不同的资源,并且萧条会更深。示例URL: /workspace/123/resource-A/321/resource-C 在我的工作中提出了两种方法: 在URL的开头总是有一个工作区作为前缀,然后kong将使用LUA脚

我在工作中讨论了授权,我们对授权应该是什么样子有不同的意见。我想问StackOverflow社区哪种方法是正确的,因为我找不到自己

我们正在创建一个新项目。 我们将使用:

  • 香港作为代理人
  • 密钥斗篷作为身份提供者
应用程序中的用户将创建资源。我们称之为工作区。工作区将包含一个不同的资源,并且萧条会更深。示例URL:
/workspace/123/resource-A/321/resource-C

在我的工作中提出了两种方法:

  • 在URL的开头总是有一个工作区作为前缀,然后kong将使用LUA脚本询问工作区microservice登录用户是否有权访问它,然后将请求重定向到microservice。每个微服务也将从工作区启动其URL,因为我们需要一个工作区ID来验证对resource-a的访问。他们提出这种方法是因为他们希望限制从香港以外的地方向微服务工作区发出的请求数量。示例URL:
    /workspace/123/microservice-A/workspace/123/microservice-B

  • URL不依赖于工作区,kong将负责代理和与kong的通信,微服务将使用代理提供的令牌直接请求工作区微服务进行访问。每个微服务决定自己的访问权限。Url示例:
    /resource-A
    /resource-B

该系统还将有未连接到工作区的微服务,但数量会减少

你知道其他的方法吗?我的哪种方法最正确

谢谢你的帮助


set4812

还有很多其他方法。您希望您所描述的方法在备选方案中强制呈现什么?我的意思是,有没有可能改变微服务的寻址方式,或者使用什么类型的令牌,或者什么服务应该发布令牌?您会选择哪种方法?就好像您要创建企业应用程序一样,例如TODO。用户有工作区,可以在其中创建TODO。一个微服务包含工作区和第二个TODO。用户希望向列表中添加另一个TODO。现在,microservice应该如何将用户授权处理到这个TODO中?代理应该这样做还是todo微服务询问工作区服务?如果TODO microservice从URL
/TODO/123
/workspace/123/TODO/321
收到请求,我不喜欢代理解决方案,这会严重影响microservice地址的外观,在微服务方面,您需要通过从URL获取ID并将其与数据库中的资源进行比较来验证授权。您能推荐其他与TODO案例相匹配的解决方案吗?我愿意接受建议和培训。您是否阅读过声明以及声明是如何在其中使用的?另外,就我个人而言,我会使用API facade来检查授权,并且只在该API facade将请求重定向到特定的微服务之后才使用。API facade是一种很好的方式,在任何情况下都可以作为一个层,增加了灵活性。根据你描述的方案,你现在似乎没有。