【问题标题】:How to architect authenticate/authorise in microservice using JWT?如何使用 JWT 在微服务中构建身份验证/授权?
【发布时间】:2017-07-11 13:10:06
【问题描述】:

如何进行无状态架构设计,以便如果用户(A) 登录并且Json Web 令牌由服务器(X1) 生成并返回给用户-A。用户 A 再次将请求发送到服务器,服务器(X2)服务于该目的,而无需让用户重新进行身份验证。 从而使架构具有高度的水平可扩展性。

【问题讨论】:

    标签: web-services architecture microservices scalable


    【解决方案1】:

    通常,您会拥有一项服务来完成与身份验证相关的所有工作。基本上这意味着 X1 和 X2 将调用该服务来验证用户身份或验证现有身份验证。应该在 X1 和 X2 上执行的唯一事情是验证令牌。令牌可以是有效的、有效的和过期的或无效的。如果它有效,您只需执行必要的工作,而不管特定的服务器。如果它无效,则拒绝请求,如果它已过期,则将用户重定向到重新身份验证。

    但是,如果您询问特定环境的详细信息,并且您的问题是 X2 没有 X1 具有的某些特定加密密钥或类似的东西,那么您忘记提及您用于获取 JWT 的框架。

    【讨论】:

      【解决方案2】:

      使其工作的要求很少:

      1. 如上所述,X1 和 X2 将使用内部服务 A 进行凭据验证。

      2. 绑定到 A 的数据源的用户/api 客户端记录中会有盐。

      3. X1 和 X2 加密密钥应该共享,并且它们应该使用与 JWT 的 sub 对象相同的结构。 iss 对象也应该被检查(通常绑定到用户请求认证所绑定的 api 客户端)。验证的逻辑应该在 X1 和 X2 之间共享。

      令牌中伪造了数据 - 如果它由同一个服务 A 提供,然后经过哈希处理、结构化,然后由 X1 和 X2 以相同的方式检查。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-13
        • 2015-09-11
        • 2020-06-12
        • 1970-01-01
        • 2020-02-05
        • 1970-01-01
        相关资源
        最近更新 更多