在Ruby中保护后台作业中的密码

时间:2017-01-12 01:54:08

标签: ruby-on-rails ruby encryption

我有一个访问令牌,在服务器上加密存储为ENV变量。当有人想要生成报告时 - 他们发送密码用于解密加密的访问令牌(当前使用ActiveSupport::MessageEncryptor),然后访问令牌用于向生成报告。

我遇到的问题是对第三方的网络API调用很慢(几分钟)并导致Web请求超时。该项目集成了Sidekiq + ActiveJob,我认为排队工作会很棒(然后慢速运行时无关紧要)。

我现在还不清楚如何正确处理密码。我不能使用密码作为作业的参数(因为它然后存储在Redis中)。同样,我不能把解密的访问令牌(出于同样的原因)。我有什么选择吗?如果第三方允许我通过快速API将加密的访问密钥转换为有限的使用/到期密钥,我可以在入队之前做到这一点 - 但我不相信这是一个选项。还有其他选择吗?

1 个答案:

答案 0 :(得分:0)

Sidekiq Enterprise支持加密的作业数据,旨在解决您遇到的问题。

https://github.com/mperham/sidekiq/wiki/Ent-Encryption