Назад | Перейти на главную страницу

Обратный прокси-сервер Apache не передает настраиваемые заголовки на целевой сервер

Я не уверен, что это подходящее место, чтобы задать такой вопрос, но в то же время я не знаю лучшего места, поэтому, пожалуйста, потерпите меня.

Я настроил Apache как обратный прокси для моей службы PostGraphile. Моя идея состоит в том, чтобы использовать Apache для аутентификации Kerberos, а затем сделать службу PostGraphile доступной для аутентифицированных пользователей.

Мне также нужно передать этой службе некоторые настраиваемые заголовки.

В этот момент я могу либо включить аутентификацию Kerberos, либо передать заголовки. Как только я включаю аутентификацию, заголовки не отображаются на стороне службы.

Это мой конфиг vhost:

<VirtualHost *:80>
  <Location />
    AuthType Kerberos
    AuthName "Kerberos Authentication"
    KrbAuthRealsm MY.REALM
    KrbServiceName HTTP

    BrowseMatch Windows gssapi-no-negotiate
    KrbMethodNegotiate on

    KrbMethodK5Passwd off

    Krb5Keytab /path/to/keytab.keytab

    # require valid-user # with this line uncomented headers defined later do not appear on service side
    require all granted # with this line uncommented headers defined later do appear on service side however any user can access the service

    ProxyPass 'http://my.service:5000'
    ProxyPassReverse 'http://my.service:5000'
  </Location>
  <Proxy *>
    Order Deny,Allow
    Deny from all
    Allow from local.ip.range
  </Proxy>

  RequestHeader set MYCUSTOMHEADER foo
</VirtualHost>

У меня нет идей.

Я читал документацию Apache, документацию auth_mode_kerb, потоки стека и блоги, но, похоже, я столкнулся с какой-то странной ошибкой или упустил что-то фундаментальное ...

Любые подсказки приветствуются

После экспериментов я наконец нашел решение, которое удовлетворяет мои потребности, однако должен признать, что понятия не имею, почему это работает так, как кажется.

Если я добавлю следующее в свою конфигурацию, я могу передать необходимую мне информацию в Authorization заголовок.

RewriteEngine On
RewriteCond %{LA-U:REMOTE_USER} (.+)
RewriteRule .* - [E=RU:%1]
RequestHeader add Authorization %{RU}e

Однако другие настраиваемые заголовки по-прежнему не отображаются, и это останется для меня загадкой.


редактировать:

Поработав еще немного, я обнаружил, что как только я перезаписываю заголовок авторизации, появляются и мои настраиваемые заголовки. Было бы здорово понять, является ли это предполагаемым поведением (возможно, функцией безопасности) или ошибкой в ​​mod-auth-curb ..