Apache 结合了代理和目录的基本身份验证登录

Apache 结合了代理和目录的基本身份验证登录

我使用 Apache 作为 Grafana 的前端,并使用 basicauth 登录服务器。服务器的目录中还有几个文件,我想通过 basicauth 访问这些文件。我可以分别进行这两项操作,但我希望只登录一次,而不必为两次使用输入用户名和密码。下面的代码段用于实现 Grafana 登录。我该怎么做才能让相同的登录名也能访问目录?这有可能吗?

<VirtualHost *:80>
    ServerAdmin webmaster@authproxy
    ServerName authproxy
    ErrorLog "logs/authproxy-error_log"
    CustomLog "logs/authproxy-access_log" common


    <Proxy *>
        AuthType Basic
        AuthName GrafanaAuthProxy
        AuthBasicProvider file
        AuthUserFile C:\path-to-htpasswdfile
        Require valid-user

        RewriteEngine On
        RewriteRule .* - [E=PROXY_USER:%{LA-U:REMOTE_USER},NS]
        RequestHeader set X-WEBAUTH-USER "%{PROXY_USER}e"

    </Proxy>

    RequestHeader unset Authorization

    ProxyRequests Off
    ProxyPass / http://tolocalserver/
    ProxyPassReverse / http://tolocalserver/

答案1

是的,这是可能的。为其他区域提供与 Grafana 区域相同的基本身份验证配置:

AuthType Basic
AuthName GrafanaAuthProxy
AuthBasicProvider file
AuthUserFile C:\path-to-htpasswdfile
Require valid-user

然后客户端发送的相同授权标头将允许他们进入这两个区域。请注意,AuthName两个区域中的值必须相同,因此如果您不想GrafanaAuthProxy在两个区域中使用,则应将其更改为不同的值。

您还需要(1)删除该RequestHeader unset Authorization指令;不确定为什么它在那里;(2)<Proxy *>为其他 URL 区域添加该指令的例外。

相关内容