HAProxy 获取与 Basic Auth 关联的用户名
HAProxy get username associated with Basic Auth
我目前正在使用 HAProxy 的 http-request auth
操作来有条件地限制对资源的访问。我想继续将与成功授权关联的用户名添加到传递给后端的请求的 headers,模拟 Apache 环境变量 HTTP_AUTH_USER
.
我可以通过 http_auth_group
获得与该操作关联的组,但更希望有用户名。
我很感激我可以将此操作移至 Web 服务器,但我宁愿不在 10 台机器上管理少量用户名和密码,因为我可以通过代理在 2 个地方执行此操作。
http_auth_group
layer 7 sample fetch这个名字乍一看有点乱,里面有"group"两个字,暗示它是returns组。事实上,它将组作为其参数并且 returns 没有值,除非请求已使用指定组成员的凭据进行身份验证......在这种情况下,它 returns 用户名。
所以它有两个目的:测试其真实性以确定该组的任何成员是否已对请求进行身份验证,或者提取用户名。所以...
http-request set-header X-Username %[http_auth_group(GROUP_NAME)]
...将删除传入请求中的任何X-Username:
header(case-insensitive)(如果已经存在),并填充一个新的 X-Usernane:
header 带有经过身份验证的用户的用户名,否则为空值(如果您的配置允许匿名请求)。
使用 set-header
很重要, 不是 add-header
,因为添加 header 不会删除任何匹配的 header在传入的请求中,这会带来安全风险。除非您有特殊原因要添加,否则始终设置。
我目前正在使用 HAProxy 的 http-request auth
操作来有条件地限制对资源的访问。我想继续将与成功授权关联的用户名添加到传递给后端的请求的 headers,模拟 Apache 环境变量 HTTP_AUTH_USER
.
我可以通过 http_auth_group
获得与该操作关联的组,但更希望有用户名。
我很感激我可以将此操作移至 Web 服务器,但我宁愿不在 10 台机器上管理少量用户名和密码,因为我可以通过代理在 2 个地方执行此操作。
http_auth_group
layer 7 sample fetch这个名字乍一看有点乱,里面有"group"两个字,暗示它是returns组。事实上,它将组作为其参数并且 returns 没有值,除非请求已使用指定组成员的凭据进行身份验证......在这种情况下,它 returns 用户名。
所以它有两个目的:测试其真实性以确定该组的任何成员是否已对请求进行身份验证,或者提取用户名。所以...
http-request set-header X-Username %[http_auth_group(GROUP_NAME)]
...将删除传入请求中的任何X-Username:
header(case-insensitive)(如果已经存在),并填充一个新的 X-Usernane:
header 带有经过身份验证的用户的用户名,否则为空值(如果您的配置允许匿名请求)。
使用 set-header
很重要, 不是 add-header
,因为添加 header 不会删除任何匹配的 header在传入的请求中,这会带来安全风险。除非您有特殊原因要添加,否则始终设置。