Eu configurei o Apache como proxy reverso para meu serviço PostGraphile. Minha ideia é usar o Apache para fazer autenticação Kerberos e então disponibilizar o serviço PostGraphile para usuários autenticados.
Também preciso passar alguns cabeçalhos personalizados para esse serviço.
Neste momento, posso ativar a autenticação Kerberos ou passar os cabeçalhos. Assim que eu ligo a autenticação, os cabeçalhos não aparecem no lado do serviço.
Esta é a minha configuração 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>
Estou sem ideias.
Tenho lido a documentação do Apache, documentação auth_mode_kerb, tópicos de pilha e blogs, mas parece que estou encontrando algum bug estranho aqui ou faltando algo fundamental ...
Qualquer dica será muito bem vinda
Depois de experimentar, finalmente encontrei uma solução que atende às minhas necessidades. No entanto, devo admitir que não tenho ideia de por que isso está funcionando da maneira que parece estar funcionando.
Se eu adicionar o seguinte à minha configuração, posso passar as informações necessárias no
Authorization
cabeçalho.No entanto, outros cabeçalhos personalizados ainda não estão aparecendo e isso permanecerá um mistério para mim.
editar:
Depois de mexer mais, descobri que, assim que sobrescrevo o cabeçalho de autorização, meus cabeçalhos personalizados também aparecem. Seria ótimo entender se esse é o comportamento pretendido (talvez um recurso de segurança) ou um bug no mod-auth-kerb.
editar2:
Após 2 anos, alguém apontou que eu poderia ter cometido um erro de digitação na configuração:
Não posso verificar isso porque não tenho acesso ao sistema original em que estava trabalhando. E também não posso nem agradecer a essa pessoa, pois depois de apontar o erro de digitação, essa pessoa removeu um comentário...