如何使用 varnish-cache 映射 apache authgroupfile

How to map apache authgroupfile with varnish-cache

朋友们好,

请帮忙,我们正在尝试通过将 Apache AuthgroupFile 中的用户映射到 varnish-cache reverse-proxy,将用户和角色添加到我们的遗留应用程序中,任何通过 Apache Basic Auth 认证的用户都应该能够通过;用户映射到 AuthgroupFile 中的角色,在 back-end 中,我们检查组名并在应用程序中分配角色

我们可以将 AuthgroupFile 读取到变量中并在 varnish-cache 中检查 REMOTE_USER header 吗?

#AuthgroupFile 管理员:foo boo roo 只读:goo too zoo

#varnish-cache 规则

if (req.http.REMOTE_USER){
   set req.http.X-AUTH-USER = req.http.REMOTE_USER;
}

如果您想检查 已验证用户,我建议您查看 vmod_basicauth

它是一个读取 .htpasswd 文件并为您提供 VCL API 与这些登录交互的 Varnish 模块。

以下是在 VCL 中使用此模块的方法:

if (!basicauth.match("/var/www/.htpasswd", req.http.Authorization)) {
    return(synth(401, "Restricted"));
}

这会将 Authorization 请求 header 与 .htpasswd 中允许的任何内容相匹配。

这是您要找的吗?