【问题标题】:Custom authorization via HTTP headers in Ruby on Rails通过 Ruby on Rails 中的 HTTP 标头自定义授权
【发布时间】:2019-10-12 00:54:02
【问题描述】:

我有 2 个内部 Rails 服务,它们需要相互通信。 我需要一个建议,如何以最少的努力使其足够安全。

当前服务 A 向服务 B 发送 Authorization HTTP 标头,其中包含秘密令牌。简单的基于 HTTP Token 的方法,没什么特别的。但我还需要以某种方式传达用户令牌,以便服务 B 知道,哪个用户正在与它交谈。

我目前的解决方案如下:

  1. 发送Authorization Token token=blabla user_token=blabla2
  2. 使用existing in Rails方法解析
  3. 通过提供的user_token 识别用户
  4. 灵感来自StackOverflow post

替代方案:

  1. Amazon way 类似:授权:MY-APP-V1 Token=blabla Credential=user_token,但我需要自定义解析器。
  2. 自定义 HTTP 标头如 X-USER-TOKEN,但似乎 RFC 不赞成这个想法。
  3. 您的提议或建议

非常感谢您的帮助。

【问题讨论】:

    标签: ruby-on-rails rest http header authorization


    【解决方案1】:

    我很好奇为什么用户令牌不够用,你能详细说明一下吗?

    但假设您想继续使用双令牌方法,可以使用 JWT 之类的东西将用户令牌与秘密令牌进行编码。这样,您将只有 1 个令牌,并且可以将其发送为 Authorization: Bearer xxxxxx

    【讨论】:

    • 感谢您的回答。秘密令牌在服务到服务的通信中起到安全认证的作用。并非所有 API 端点都需要用户令牌。用户令牌在这里起到授权的作用。
    猜你喜欢
    • 2011-12-09
    • 2017-07-23
    • 2013-03-06
    • 1970-01-01
    • 2013-11-27
    • 2013-03-28
    • 1970-01-01
    • 2012-10-23
    • 2018-03-11
    相关资源
    最近更新 更多