【问题标题】:Varnish 4 Basic Authentication constantly prompts for username and passwordVarnish 4 Basic Authentication 不断提示输入用户名和密码
【发布时间】:2017-02-14 01:33:15
【问题描述】:

我在测试环境中使用 Varnish 4,并希望使用基本身份验证来保护对内容的访问。

我想要发生的是,第一个请求会提示基本身份验证,然后一旦用户输入了他们的用户名和密码,它就不再询问。我已经使用 Varnish 设置了一个规则来检查正确的授权,如果没有,请用户提供。

我的最终用户抱怨他们在浏览器中反复询问基本身份验证详细信息,有时必须输入 20 次才能显示第一页。

使用 Chrome 浏览器时,这似乎不会发生,除非我打开了开发工具面板并勾选了打开开发工具面板时不缓存请求。在各种版本的 IE 中,这种情况一直都在发生。

在我的 VCL 中,基本身份验证规则在 sub vcl_recv 部分中如下所示:

if (!req.http.Authorization ~ "Basic xxxxxxxxxxxxxxxxxx=="
    # Don't require auth if IP on the authpass list.
    && !client.ip ~ authpass
    # Don't require auth if this is the live website.
    && !req.http.Host == "www.mylivesite.com") {
    return(synth(401, "Authentication required"));
}
unset req.http.Authorization;

【问题讨论】:

    标签: varnish varnish-vcl varnish-4


    【解决方案1】:

    我认为你的 vcl_synth 中缺少这个:

    sub vcl_synth {
       if (resp.status == 401) {
       set resp.status = 401;
       set resp.http.WWW-Authenticate = "Basic";
       return(deliver);
    }
    

    检查detailed关于在 Varnish 中设置基本身份验证的答案。

    【讨论】:

      猜你喜欢
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 2014-01-06
      • 2012-11-08
      • 1970-01-01
      相关资源
      最近更新 更多