将每个客户的条带配置存储在 SaaS 应用程序中



网站建设者SaaS应用程序具有一项功能,可以让客户将其Stripe帐户连接到其网站并获得资金。此SaaS应用程序的每个用户(网站所有者(都有一个Stripe帐户。

在应用程序的开发阶段,我们只是以加密的方式将每个客户的Stripe公钥/私钥存储在内部数据库中。但即使它是加密的,这也不是我们在生产环境中的做法

在数据库中安全地存储每个帐户的敏感Stripe配置的正确方法是什么?

您所描述的内容似乎暗示您正在使用(或应该使用(Stripe Connect。这可以让你建立一个平台,其他企业可以将他们的Stripe账户连接到你的平台,让你对他们的账户进行读/写访问。

如果您的用户已经有Stripe帐户,您可以使用这里记录的OAuth流,或者您可以通过API为他们创建一个帐户,然后将他们重定向到这里记录的Stripe板载。

帐户连接后,您可以编写代码,使用自己平台的Secret API密钥和代表帐户发出请求时在Stripe-Account标头中传递的连接帐户的idacct_123456。这是Stripe在这里干净地记录的东西。在这个世界上,你永远不需要存储他们的API密钥,加密他们或滚动他们。您所需要的只是您自己的API密钥安全地保存在您的服务器上,并在连接过程中获得他们的帐户id。

使用Stripe的受限API密钥

Stripe对API密钥进行了限制,允许Stripe的客户向密钥授予一个子集权限,然后可以与第三方服务共享。

来自Stripe的文档https://stripe.com/docs/keys#limit-访问

使用受限的API密钥限制访问受限的API密钥允许只有您指定的最低访问级别。受限密钥无法与Stripe API的许多部分交互在使用或构建微服务时降低风险。他们不应该在开发过程中用作帐户API密钥的替代方案Stripe集成。

如果您使用的微服务是代表您与Stripe API互动。您可以创建受限制的限制对特定帐户的访问和权限的API密钥数据例如,您可以创建一个授予对争议数据的只读访问,然后将其用于争议监控服务。

存储受限API密钥/鼓励密钥旋转

这些受限密钥的安全风险比类似于"加密"的完整API密钥小得多;根";通道这些受限密钥的加密存储可以满足您的安全需求。此外,对客户进行包括API密钥轮换在内的最佳实践教育将有助于降低风险并与客户分担风险。