使用 Apache 变量

使用 Apache 变量

我正在尝试使用 Apache 的 OpenID 身份验证模块。根据这一页,我应该能够使用REMOTE_USERApache 变量来识别用户。我想将其作为标头传递给上游应用程序(我使用 Apache 进行身份验证和反向代理)。

我的 Apache 站点配置如下:

<VirtualHost *:80>

  ProxyPass / http://localhost:3000/
  ProxyPassReverse / http://localhost:3000/

  <Location />
    AuthType OpenID
    require valid-user
    AuthOpenIDAXRequire email http://axschema.org/contact/email @muller\.io$
    AuthOpenIDAXUsername email
    RequestHeader set x-username $REMOTE_USER
  </Location>
</VirtualHost>

我搜索了好久,但最多只能找到如何在这种上下文中使用环境变量。我已验证硬编码字符串是否有效(实际上,上述代码将字符串传递"$REMOTE_USER"给了我的应用程序)。

如果mod_auth_openid设置REMOTE_USER变量在 Apache 中那么我怎样才能将其上游传递到我的应用程序?

答案1

经过进一步挖掘,我发现这一页使用以下代码:

 RewriteEngine On
 RewriteCond %{REMOTE_USER} (.+)
 RewriteRule . - [E=RU:%1]
 RequestHeader set REMOTE_USER %{RU}e

这是帮我解决问题的灵丹妙药。我读了一些页面,它们表明这可能不正确(而且确实看起来很笨拙),所以请随意推荐一些更好的东西。

相关内容