HAProxy 中的 JWT 验证

2024-02-18

我有一个 HAProxy 配置为接受对 *.mysubdomain.com 的请求。 HAProxy 将解析子域(来自 prod.mysubdomain.com 或 dev.mysubdomain.com 的 prod 或 dev)并转发到正确的后端。存在两个后端,一个用于生产,一个用于开发。每个后端包含两个指向每个子域上的 Marathon LB 实例的服务器条目。

子域需要 JWT cookie 在后端进行身份验证。我有公钥来检查 JWT 的有效性,但想在 HAProxy 中执行此操作。有没有办法添加我自己的代码来在 HAProxy 配置中执行 JWT 有效性检查?

HAProxy配置文件如下:

global
    maxconn 256

defaults
    mode http
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms

frontend http-in
    bind *:80
    mode http

    # Returns true when one of the headers contains one of the strings either isolated or delimited by dots. This is used to perform domain name matching.
    acl host_dev hdr_dom(host) -i dev
    acl host_prod hdr_dom(host) -i prod

    acl jwtPresent req.cook(JWT) -m found

    use_backend prod_domain if jwtPresent host_prod
    use_backend dev_domain if jwtPresent host_dev

    default_backend prod_domain

backend prod_domain
    balance roundrobin
    server prodDomain1 "${MARATHON_LB_PROD_1}" maxconn 32 check
    server prodDomain2 "${MARATHON_LB_PROD_2}" maxconn 32 check

backend dev_domain
    balance roundrobin
    server devDomain1 "${MARATHON_LB_DEV_1}" maxconn 32 check
    server devDomain2 "${MARATHON_LB_DEV_2}" maxconn 32 check

HAProxy 可以充当 API 网关并根据公钥验证 JWT 令牌。他们撰写了一篇博文并提供了示例代码来向您展示如何操作。

帖子在这里:https://www.haproxy.com/blog/using-haproxy-as-an-api-gateway-part-2-authentication/ https://www.haproxy.com/blog/using-haproxy-as-an-api-gateway-part-2-authentication/

示例lua代码在这里:https://github.com/haproxytech/haproxy-lua-jwt https://github.com/haproxytech/haproxy-lua-jwt

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HAProxy 中的 JWT 验证 的相关文章

  • 会话和基于令牌的身份验证之间的技术差异

    我正在写我的学士学位 其中我需要找出哪种身份验证 授权方法最适合我正在合作的公司 因此 我一直在比较基于会话和基于令牌的身份验证方法 但对于令牌如何工作以及它们如何比会话身份验证更好 我不清楚以下几点 我 100 清楚的唯一好处是 令牌可以
  • express-jwt 不尊重未受保护的路径

    有关express jwt模块的信息可以在这里找到 https github com auth0 express jwt https github com auth0 express jwt https www npmjs com pack
  • 使用客户端指纹对 JWT 令牌进行编码?

    我想知道是否会是最佳实践使用客户端指纹作为 JWT 秘密进行编码 然而 我在 WWW 上找不到有关这个问题的任何内容 但到目前为止 我这样做是有意义的 我正在考虑使用 JavaScript 生成指纹客户端 并在每次调用时将其发送到 API
  • JWT 令牌的最大大小是多少?

    我需要知道的最大长度 JSON Web 令牌 JWT 规格中没有相关信息 难道说 长度没有限制吗 我也一直在努力寻找这个 我会说 尝试并确保它是7kb 以下 虽然 JWT 在规范中没有定义上限 http www rfc editor org
  • 为什么我们有两个 JWT 令牌类 JwtSecurityTokenHandler 和 JsonWebTokenHandler?

    它总是令人困惑 并且没有提到哪个更好 我个人更喜欢 JsonWebTokenHandler 因为它是 ValidateToken 的更合适的返回类型 命名空间的区别是 Microsoft IdentityModel JsonWebToken
  • Firebase 身份验证的 Swagger 定义

    任何人都可以提供用于 firebase 身份验证的 Swagger 安全定义的工作示例吗 在后端 使用 firebase admin SDK 验证 firebase ID 令牌 import as admin from firebase a
  • 如何使用 NodeJS 客户端库使用 JWT 访问 Google Directory (Admin SDK)?

    我正在尝试创建一个服务器应用程序 将用户添加 删除到我的域的组中 请注意 它不会与用户进行任何交互 它是服务器到服务器的应用程序 我在 Google API 控制台中注册了我的应用程序 下载了密钥并通过发出将其转换为 pem openssl
  • 使用 django-rest-framework-simplejwt 注册后返回令牌

    我正在使用 django rest framework simplejwt 想知道注册用户后是否可以返回令牌 This https stackoverflow com questions 37622616 django rest frame
  • 无状态 Spring JWT 应用程序 + EnableOAuth2Client

    我在这个解决方案上花费了 50 多个小时 非常感谢您的任何意见 我有一个使用 Angular Spring JWT 无状态身份验证 myApp 的 JHipster 4 x 生成的应用程序 我正在将经过身份验证的 myApp 用户的第 3
  • AAD 团体声称某些用户的 JWT 令牌缺失

    我在 AAD 上遇到一些奇怪的行为 用户成功登录后 我们的 API 调用中某些用户收到未经授权的消息 结果发现 JWT 中的声明丢失了 一些用户获得 groups 声明 他所属的所有 groupId 的数组 一些用户获得 hasgroups
  • 在客户端 API 中使用 JWT 令牌

    我在 NET5 中有一个 API 使用 JWTBearer 来保护 API 现在我想配置我的客户端应用程序以使用从 api gettoken 生成的令牌 它在 swagger 中工作得很好 但我不知道如何配置我的 MVC 和 API 消费
  • 用于 Java 的 JWT(JSON Web Token)库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一个使用 Java 和 AngularJS 开发的 Web 应用程序 并选择实现令牌身份验证
  • 使用 v2.0 端点的声明中缺少 UPN

    我已经设置了一个类似于 Microsoft 的以下示例的项目 其中我有一个本机应用程序请求使用 v2 0 端点访问 Web api https github com azureadquickstarts appmodelv2 nativec
  • 收到“错误”:“未知的身份验证策略\“jwt \””

    我正在使用 Express Mongoose Passport 和 JWT 实现授权功能 我可以正常注册用户 我能够验证并生成 JWT 我可以在 JWT 站点上解析它 但由于某种原因 我收到未知的身份验证策略错误消息 我将所有代码块放在 P
  • IDX10603:算法:“HS256”要求 SecurityKey.KeySize 大于“128”位。报告的密钥大小:“32”。参数名称:key.KeySize

    我刚刚使用 Asp Net Core Web API 并实现身份验证 我从 Angular 应用程序调用这个 API 但我总是收到如下错误 IDX10603 算法 HS256 要求 SecurityKey KeySize 大于 128 位
  • 如何实施刷新令牌轮换?

    如果我正确理解了刷新令牌轮换 这意味着每次我们请求新的访问令牌时 我们也会获得一个新的刷新令牌 如果多次使用刷新令牌 我们会使某个用户之前使用的所有刷新令牌失效 并且用户必须再次执行身份验证过程 这是否意味着我们需要将所有刷新令牌 所有旧的
  • 如何将 JWT 承载令牌添加到 API 的所有请求

    我正在尝试组建一个使用 Asp Net Core Identity Identity Server 4 和 Web API 项目的小项目 我的 MVC 项目已使用 IdS4 进行了正确身份验证 从中我获得了一个 JWT 然后我可以将其添加到
  • Jwt 令牌是唯一的

    我正在使用 JWT 网络令牌系统 我能够成功生成令牌 我在 Laravel 中创建 JWT 令牌 如下所示 我正在使用以下技术堆栈 拉拉维尔 5 2 http laravel com 框架 JWT 包裹 https github com t
  • 反向代理受 NTLM 保护的网站

    如何将请求代理到受 NTLM 保护的网站 例如团队基金会 and 共享点 我不断得到401 身份验证错误 根据这篇 Microsoft TechNet 文章 https www microsoft com technet prodtechn
  • 无法加载文件或程序集“Microsoft.IdentityModel.Tokens,版本=5.2.0.0”

    我正在尝试使用 VS 2015 将 OWIN JWT 添加到 webapi 项目中 参考显示Microsoft Owin Security Jwt Version 4 0 0 0 and Microsoft IdentityModel To

随机推荐