【问题标题】:Should I manually set user session when receiving messages?接收消息时是否应该手动设置用户会话?
【发布时间】:2021-07-20 05:49:41
【问题描述】:

我有每个用户受保护的资源。用户自己可以编辑,然后一些超级用户也可以编辑,但其他用户不能。

当涉及到端点时,我有一个用户会话,我可以检查他们的权限以查看他们是否能够编辑资源。

但是,当涉及到服务接收的事件/消息时,不涉及用户会话。所以它无法编辑这些资源。

我知道我们收到的消息是安全的(仅来自我们自己的系统),因此我计划自己手动设置用户会话,以使用系统用户帐户处理所有事件/消息。

我也可以将方法拆分为 updateResource 和 updateResourceNoPermissionCheck 之类的方法,但我宁愿不让任何人(包括其他开发人员)在不应该调用错误方法时赋予他们调用错误方法的能力。

想知道人们的想法。提前致谢!

【问题讨论】:

    标签: events permissions authorization access-control


    【解决方案1】:

    是的,这很正常。我见过开发人员通过消息头传递令牌的情况,但我认为没有必要。在消息契约中提供足够的用户上下文信息可以为消息接收者建立关于用户是谁的可靠保证。当您的内部消息系统暴露在外部时,这是不正常的,这当然会产生安全风险,因为您无法信任发件人。

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 1970-01-01
      • 2020-11-05
      • 2011-10-23
      • 1970-01-01
      • 2013-10-14
      • 2019-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多