Использование переменной Apache

Я пытаюсь использовать модуль аутентификации OpenID Apache. Согласно этой странице, я должен иметь возможность использовать REMOTE_USER Переменная Apache для идентификации пользователя. Я хотел бы передать это в качестве заголовка для вышестоящего приложения (я использую 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

Это была волшебная пуля, которая исправила это для меня. Я прочитал некоторые страницы, которые предполагают, что это может быть неправильно (и действительно это выглядит глупо), поэтому, пожалуйста, не стесняйтесь рекомендовать что-то лучше.

Другие вопросы по тегам