存储用户令牌和秘密(第 3 方)

Storing users token and Secret (3rd party)

我正在开发应用程序 (MyApp),它需要存储最终用户的 tokens/secrets 而我不愿意将最终用户的 tokens/secrets 存储在数据库中。

每个最终用户向 MyApp 提供第 3 方 tokens/secret。此类用户的 token/secret 使我的应用程序能够代表每个最终用户访问第 3 方 API。每个用户都可以授予对许多第 3 方应用程序的访问权限。

简化的工作流程如下

  1. 用户通过第三方 GUI 获取令牌和秘密。

  2. 用户通过提供 3rdParty Token 和 Secret 授权 MyApp 使用 3rd Party API(用户将通过 MyApp Web GUI 输入 3rdParty Token 和 Secret)

  3. 我的应用程序应该将用户 Token/Secret 存储在“安全持久存储”中,以确保在应用程序重新启动后,它仍然可以代表端访问第 3 方 API用户 X.

  4. MyApp 可以通过提供用户的 X 令牌和秘密

    使用第三方 API 代表用户 X 执行操作

我正在寻找适用于 storing/retrieving 数千最终用户的 tokens/secrets 可通过 .NET Core (C#) 访问的“安全存储”的实现。

我认为唯一的方法是将加密 tokens/secrets 存储在某些存储中。由于我不是安全专家,所以我将自己的数据库作为最后的选择。

我检查过 Azure Vault,但它主要是为“安全存储应用程序凭据,如机密、密钥和证书”而设计的,但我正在寻找用户数据的安全存储。

我正在努力寻找可以使用的“安全存储”。我确信我遗漏了一些东西,并且已经准备好使用解决方案。

我检查了许多 SO 主题,其中大部分都在解决其他问题,例如: a) 存储“用于访问 DataStorage 的应用凭证”:例如访问数据库 b) 为我自己的应用程序存储最终用户凭据

我也在处理上述两个问题,我使用: a) 用于存储“用于访问关系数据库的应用程序凭据”的 Azure Vault b) 在 Azure AD B2C

中存储最终用户凭据(访问 mu 自己的 MyApp 的最终用户用户名和密码)

你们如何存储用户敏感数据?

我不明白什么是 Key Vault 不符合您的需求。