我有 2 个内部 Rails 服务,它们需要相互通信。 我需要一个建议,如何以最少的努力使其足够安全。
目前服务A向服务B发送Authorization
HTTP header,其中包含secret token。简单的基于 HTTP token 的方法,没什么特别的。但我还需要以某种方式传达用户 token ,以便服务 B 知道哪个用户正在与其交谈。
我目前的解决方案如下:
- 发送
授权 token token=blabla user_token=blabla2
- 使用existing in Rails解析方法
- 通过提供的
user_token
识别用户 - 受此启发StackOverflow post
备选方案:
- Amazon way使用类似:Authorization: MY-APP-V1 Token=blabla Credential=user_token,但我需要自定义解析器。
- 自定义 HTTP header ,如
X-USER-TOKEN
,但看起来像 RFC不赞成这个想法。 - 您的提议或建议
非常感谢您的帮助。
最佳答案
我很好奇为什么用户 token 不够,你能详细说明一下吗?
但假设您想继续使用双 token 方法,例如 JWT可用于使用 secret token 对用户 token 进行编码。这样您将只有 1 个 token ,并且可以将其简单地发送为 Authorization: Bearer xxxxxx
。
关于ruby-on-rails - 通过 Ruby on Rails 中的 HTTP header 自定义授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58349951/