【问题标题】:Baic auth pop-up not showing ingress-nginxBaic auth 弹出窗口未显示 ingress-nginx
【发布时间】:2021-08-16 10:31:54
【问题描述】:

上下文:-
我正在关注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/ 端点的端口
当我使用 curl 访问使用 -u 标志传递凭据的 API 时,此方法有效。
curl -XGET "http://minikubeip/myapp/status/" -H "Content-Type: application/json" -u "$USERNAME:$PASSWORD"
回复:-
{"status":"working"}

但是当我在浏览器中打开 http://minikubeip/myapp/status/ 时,它会立即返回 401 页面而不显示身份验证弹出窗口。
当我对 nginx.ingress.kubernetes.io/auth-url 使用 https://httpbin.org/basic-auth/user/passwd 时,curl 和浏览器都可以工作,浏览器会弹出一个窗口让我输入密码。

我检查了 httpbin.org,发现它是一个 GET endpoint,它返回 200 表示成功,401 表示失败。我的 /auth API 是完全一样的规范

我的问题是:我需要为浏览器做一些特殊的事情来显示基本身份验证弹出对话框吗?

【问题讨论】:

    标签: nginx kubernetes basic-authentication minikube nginx-ingress


    【解决方案1】:

    我必须添加

    w.Header().Set("WWW-Authenticate", Basic realm="mydomain")

    在这里找到它:https://stackoverflow.com/a/36188200

    【讨论】:

      猜你喜欢
      • 2018-12-12
      • 1970-01-01
      • 2017-09-23
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-14
      相关资源
      最近更新 更多