首页 > 解决方案 > 对于该服务不直接管理的资源,您将如何处理“授权”微服务

问题描述

我们有一个单体应用程序,并希望解耦身份验证/授权服务。

在这个阶段,授权是最简单的开始。

问题在于授权某些类型的资源访问。例如,用户只能编辑他自己的帖子。

鉴于微服务将只保存角色/身份验证项和对用户 ID 的分配,创建以下端点是否有意义?

POST v1/<userEmail>/authorize/<authItemName>

有数据,例如

v1/user@company.com/authorize/Posts.UpdateOwn`

{
  post: {
     content: 'My first post'
     ...
     creator: {
        email: user@company.com
     }
  }
}

我们将在哪里发送对象的数据和用户的数据。这样我就可以有一个规则会返回,但是true如果object.creatorId === userData.id你考虑一下,它似乎很愚蠢......如果单体已经有信息,为什么不检查一般权限Post.Edit并检查用户是否是创建者.

有更好的方法吗?

标签: authorizationmicroservicesrole-base-authorizationrole-based-access-control

解决方案


推荐阅读