我有下面的nginx conf文件将所有请求(默认情况下(重定向到/auth(我的服务(,然后返回响应标头(foo_id(。此标头将转发到用户触发的原始请求 URI。下面与nginx一起工作。 ...
location /
{
auth_request /auth;
auth_request_set $foo_id $upstream_http_foo_id;
proxy_pass $request_uri
proxy_set_header X-foo-Token $foo_id;
root html;
index index.html index.htm;
}
location /auth
{
internal;
proxy_pass https://myhost/myservice;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
}
但是我需要实现上述用例所需的相应入口规则/注释。我无法获得相应的身份验证/代理传递相关注释。请帮忙。
您可以使用 Nginx 入口注释来实现此目标。
简而言之:
假设您有一个外部身份验证服务,该服务配置了 Kubernetes 服务。 您需要一个注释,该注释将身份验证请求发送到此服务:
nginx.ingress.kubernetes.io/auth-url: http://auth-service.<NameSpace>.svc.cluster.local/auth
此外,您可以使用nginx.ingress.kubernetes.io/auth-snippet
注释来设置身份验证请求的自定义配置,例如
nginx.ingress.kubernetes.io/auth-snippet: |
auth_request_set $foo_id $upstream_http_foo_id;
proxy_pass $request_uri
proxy_set_header X-foo-Token $foo_id;
如果需要在成功身份验证时返回一些标头,可以使用nginx.ingress.kubernetes.io/auth-response-headers
:
nginx.ingress.kubernetes.io/auth-response-headers: X-Auth
并且,nginx.ingress.kubernetes.io/auth-signin
指定自定义错误页面