Baic auth 弹窗不显示 ingress-nginx
Baic auth pop-up not showing ingress-nginx
上下文:-
我正在关注 https://kubernetes.github.io/ingress-nginx/examples/auth/external-auth/ 以使用入口为我的应用程序启用身份验证。
问题:-
我没有使用 https://httpbin.org/basic-auth/user/passwd 作为身份验证 url,而是在同一命名空间中使用我的服务 运行 的 FQDN。
所以我的注释看起来像:
annotations:
nginx.ingress.kubernetes.io/auth-url: http://myservice.mynamespace.svc.cluster.local:9995/auth/
其中 9995 是 myservice 公开 /auth/ endpoint 的端口
这在我使用 curl 来命中我的 APIs 时有效,使用 -u 标志传递凭据。
curl -XGET "http://minikubeip/myapp/status/" -H "Content-Type: application/json" -u "$USERNAME:$PASSWORD"
回应:-
{"status":"working"}
但是当我在浏览器中打开 http:///minikubeip/myapp/status/ 时,它立即 returns 我的 401 页面没有显示身份验证弹出窗口。
当我对 nginx.ingress.kubernetes.io/auth-url 使用 https://httpbin.org/basic-auth/user/passwd 时,curl 和浏览器都可以工作,浏览器显示一个弹出窗口让我输入密码。
我检查了 httpbin.org,发现它是一个 GET endpoint,其中 returns 200 表示成功,401 表示失败。我的/auth API 完全一样 specification
我的问题是:我是否需要为浏览器做一些特殊的事情来显示基本授权弹出对话框?
我必须添加
w.Header().Set("WWW-Authenticate", Basic realm="mydomain"
)
在此处找到:
上下文:-
我正在关注 https://kubernetes.github.io/ingress-nginx/examples/auth/external-auth/ 以使用入口为我的应用程序启用身份验证。
问题:-
我没有使用 https://httpbin.org/basic-auth/user/passwd 作为身份验证 url,而是在同一命名空间中使用我的服务 运行 的 FQDN。
所以我的注释看起来像:
annotations:
nginx.ingress.kubernetes.io/auth-url: http://myservice.mynamespace.svc.cluster.local:9995/auth/
其中 9995 是 myservice 公开 /auth/ endpoint 的端口
这在我使用 curl 来命中我的 APIs 时有效,使用 -u 标志传递凭据。
curl -XGET "http://minikubeip/myapp/status/" -H "Content-Type: application/json" -u "$USERNAME:$PASSWORD"
回应:-
{"status":"working"}
但是当我在浏览器中打开 http:///minikubeip/myapp/status/ 时,它立即 returns 我的 401 页面没有显示身份验证弹出窗口。
当我对 nginx.ingress.kubernetes.io/auth-url 使用 https://httpbin.org/basic-auth/user/passwd 时,curl 和浏览器都可以工作,浏览器显示一个弹出窗口让我输入密码。
我检查了 httpbin.org,发现它是一个 GET endpoint,其中 returns 200 表示成功,401 表示失败。我的/auth API 完全一样 specification
我的问题是:我是否需要为浏览器做一些特殊的事情来显示基本授权弹出对话框?
我必须添加
w.Header().Set("WWW-Authenticate", Basic realm="mydomain"
)
在此处找到: