nginx 正在重命名k8s入口上的凭证代理http标头

ux6nzvsh  于 2022-11-21  发布在  Nginx
关注(0)|答案(1)|浏览(166)

我正在尝试将声明添加到http头中。我有一个k8s入口,

annotations:
    nginx.ingress.kubernetes.io/auth-signin: "https://vouch.example.com/login?url=$scheme://$http_host$request_uri&vouch-failcount=$auth_resp_failcount&X-Vouch-Token=$auth_resp_jwt&error=$auth_resp_err"
    nginx.ingress.kubernetes.io/auth-url: https://vouch.example.com/validate
    nginx.ingress.kubernetes.io/auth-response-headers: 'X-Vouch-User, X-Vouch-Idp-Claims-Name'
    nginx.ingress.kubernetes.io/auth-snippet: |
      auth_request_set $auth_resp_jwt $upstream_http_x_vouch_jwt;
      auth_request_set $auth_resp_err $upstream_http_x_vouch_err;
      auth_request_set $auth_resp_failcount $upstream_http_x_vouch_failcount;

和凭证配置,其中:

vouch:
  headers:
    idtoken: X-Vouch-IdP-IdToken
    claims:
    - name

一切正常,我可以很好地进行身份验证,我可以分别在x-vouch-userx-vouch-idp-claims-name http头下看到我的电子邮件和姓名。但是,我希望Map这些头以使用更合适的内容。
我试过了

annotations:
    nginx.ingress.kubernetes.io/configuration-snippet: |
      proxy_set_header Remote-User $http_x_vouch_idp_claims_name;

但是它似乎不起作用。在我的proxy_set_header中使用的正确变量名是什么?

hfyxw5xn

hfyxw5xn1#

我需要将原始的OIDC ID令牌代理到下游服务。我能够用这个设置解决这个问题...
我将Vouch Proxy配置设置为添加X-Vouch-IdP-IdToken标头:

vouch:
  headers:
    idtoken: X-Vouch-IdP-IdToken

然后,在ingress-nginx注解中,我可以通过将configuration-snippet注解中的auth_request_header设置添加到以下内容中,将X-Vouch-IdP-IdToken重命名为Authorization

annotations:
    nginx.ingress.kubernetes.io/configuration-snippet: |
      auth_request_set $auth_resp_x_vouch_idp_idtoken $upstream_http_x_vouch_idp_idtoken;
      proxy_set_header Authorization "Bearer $auth_resp_x_vouch_idp_idtoken";

相关问题