Использование переменной 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
Это была волшебная пуля, которая исправила это для меня. Я прочитал некоторые страницы, которые предполагают, что это может быть неправильно (и действительно это выглядит глупо), поэтому, пожалуйста, не стесняйтесь рекомендовать что-то лучше.