使用IdentityServer 4验证后台队列工作者的最安全方法是什么?

时间:2019-09-24 08:34:23

标签: security oauth-2.0 identityserver4

我将一些任务放在后台队列中以进行异步处理。独立队列工作者需要使用IdentityServer 4验证到单独的API,实质上是“模拟”触发任务的原始用户。

我可以看到的两个选择是:

  1. 将用户的访问令牌和刷新令牌推送到队列的 有效负载,并在任务拾取时使用它们进行身份验证 并执行。这样做的主要问题是队列的有效负载 在数据库中保存了很长一段时间,即使 执行,这意味着将存储访问和刷新令牌。
  2. 尝试在IdentityServer中重新创建这种类型的用户模拟 4, https://www.moonlightbytes.com/blog/impersonation-in-identity-server-3。 这意味着将原始用户的用户名保存在队列的 有效载荷。

我的问题是:

  • 这两个选项中的哪一个更可取且更安全?
  • 还有其他方法可以实现我所需要的吗?

1 个答案:

答案 0 :(得分:1)

我建议使用delegation,即将(访问令牌)(仅)推送到队列的有效负载中(以便以后识别用户),并使用工作人员的 ClientCredentials 在通话时进行身份验证。

绝对不能共享刷新令牌。这是所要求的应用程序的属性。