Autenticação de Cookie no Apache

4

Estou tentando configurar um proxy reverso no Apache. O usuário será solicitado a efetuar login e será enviado um cookie. Eu quero que o Apache verifique o cookie. Existe uma maneira de fazer isso?

EG, agora minha configuração é assim:

<VirtualHost *:82>
  # username:password sent on to endpoint
  RequestHeader set Authorization "Basic cm9vdjfjDJaGRvYa=="

  ProxyPass /monitors/2/ http://192.168.1.6/foo.cgi
  ProxyPassReverse /monitors/2/ http://192.168.1.6/foo.cgi
</VirtualHost>

Posso adicionar algo no VirtualHost para restringir o acesso com base em um cookie?

    
por user19084 04.09.2009 / 22:00

1 resposta

4

Claro. Eu faço a mesma coisa.

Quando um usuário faz login, eu dou a ele um cookie, crio um token em /t/ tokenid S= tokenid ;PATH=/

Em seguida, posso usar RewriteCond para verificar a existência do arquivo:

RewriteEngine on
# check for no cookie being set
RewriteCond %{HTTP:Cookie} !S=([a-zA-Z0-9]+)
RewriteRule ^/*protected/ /login.html [L,R]
# check for an invalid cookie being set
RewriteCond %{HTTP:Cookie} S=([a-zA-Z0-9]+)
RewriteCond /t/%1 !-f
RewriteRule ^/*protected/ /login.html [L,R]

Por fim, um coletor de lixo é executado periodicamente e exclui tokens antigos:

find /t -type f \! -atime +1 -delete

Para que o atime seja atualizado automaticamente, tenho /t montado sem noatime , e tenho acesso à Web (mas não indexado) e parte das referências de folha de estilo /loggedin.txt que é reescrito como:

RewriteCond %{HTTP:Cookie} S=([a-zA-Z0-9]+)
RewriteRule ^/*loggedin\.txt$ /t/%1 [L]
    
por 04.09.2009 / 22:29