JWT令牌,URL有效负载位于代理后面

时间:2018-09-19 10:35:07

标签: proxy jwt reverse-proxy json-web-signature

我目前正在通过可通过公共地址访问的应用程序生成JWT令牌(实际上是JWS),如下所示:

  

https://api.publicdomain.com

令牌包含服务器生成的有效负载:

{
    "uid": "7a7c5cdd-c08f-4241-b2c1-c97d291b06d0",
    "issuedOn": 1536334767,
    "publicKey": "http://api.privatedomain.lan:7777/public-key.pem"
}

服务器需要将URL放入有效负载中以进行验证。在此示例中,我的服务器实际上部署在以下地址的反向代理后面:

  

http://api.privatedomain.lan:7777/

当前,我正在使用应用程序的主机URL,因此在生成有效负载时,所生成的URL是实际应用程序中的URL-https://api.publicdomain.com-而不是可公开访问的URL-https://api.privatedomain.lan:7777/

反向代理处理json响应和其他所有内容的url重写,但是我不认为反向代理应处理JWT令牌中的URL重写。那么我的应用程序应该如何处理呢?

我看到的两个解决方案是:

  1. 应用程序服务器知道它已部署在反向代理后面,并且在有效负载中有硬编码https://api.publicdomain.com
  2. 代理发送了一个额外的http标头(是否有此标准?),应用程序使用它来生成有效负载。

我认为#2更好,但是我想知道解决该问题的通用方法是什么,以及是否错过了其他方法。

0 个答案:

没有答案