我们使用 Apartment gem 来管理我们的多租户。我们使用使用 Rails.application.secrets.secret_key_base
签名并使用用户 ID 和租户进行编码的 JWT,以便我们可以根据请求切换租户。我们最近有一位注重安全的客户要求我们为每个租户使用唯一的密钥。
首先:这是客户的合理担忧吗?
第二:如果我们要实现这个,我们将如何在 Rails 中使用多个秘密?我最初的想法是将所有键放在作为 env 变量传递的 json 字符串中,并根据需要访问它 I.E. Rails.application.secrets.secret_key_base[:tenant_1]
。对于每个请求,我们将首先解码 JWT 未签名,确定租户,然后根据该租户的签名验证令牌。
这似乎是一个有效的解决方案,但我不确定它是否真的如此。有什么想法吗?