这是我想要实现的:
我想使用nginx作为经典的反向代理来公开服务器的资源。在调用服务器之前,nginx应该向令牌发行者(内部服务)请求一个令牌,并将该令牌注入对服务器的调用的身份验证头中。
使用nginx可以实现这一目标吗?我在Nginx文档中四处查看,我知道可以proxy_set_header
用来修改代理到服务器的标头。
更新资料
我能够解决以下问题;这是github上的POC
如果您可以让令牌发行者通过某个HTTP标头返回令牌,例如X-JWT-Token
,这是一个适合您的示例:
location /auth {
internal;
proxy_pass http://token-issuer;
proxy_pass_request_body off;
proxy_set_header Content-Length 0;
# You can pass an additional data for the token issuer, for example
# proxy_set_header X-Original-URI $request_uri;
}
location / {
auth_request /auth;
auth_request_set $token $upstream_http_x_jwt_token;
proxy_set_header Authorization "Bearer $token";
proxy_pass http://upstream;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句