我使用 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 区域添加该指令的例外。