Protegendo o acesso a diretórios virtuais com usuários válidos determinados por parte do URL

2

Eu não sou um Apache sysadmin muito experiente (caí no papel como eu era a única pessoa que sabia de alguma coisa sobre isso!) e estou realmente preso a esse problema. Graças a um vendedor super-zeloso eu tenho que chegar a uma solução rápida ...

Basicamente, temos um servidor Apache que, entre outras coisas, é usado para fazer proxy de conexões de entrada para alguns softwares proprietários em máquinas virtuais. Cada cliente tem sua própria VM e um URL distinto. As URLs são ofuscadas e um script RewriteMap é usado para determinar o local do proxy com base nas informações de um diretório LDAP (e alguns outros fatores):

RewriteMap   routing_map  prg:/scripts/routing_map.pl
RewriteRule  ^/app/([^/]+)(.*)$  ${routing_map:$1:$2}  [P,QSA,L]

Tudo isso funciona bem.

Agora o problema:

Temos que mapear outro caminho e proxy para as máquinas virtuais de maneira semelhante, mas dessa vez ele precisa ser protegido por senha. Todos os usuários estão no diretório LDAP em unidades organizacionais separadas por cliente. Somente usuários de customerA devem poder acessar a máquina virtual do customerA .

Existe uma maneira de fazer algo semelhante ao RewriteMap, mas com segurança? ou seja, com base na parte exclusiva do cliente do URL, o Apache deve usar filtros diferentes ao pesquisar o LDAP para autenticar usuários? No exemplo de configuração do Apache abaixo, preciso que XXXX seja substituído pela parte exclusiva do cliente do URL que está sendo acessado.

AuthType Basic
AuthBasicProvider ldap
AuthName "Restricted Access"
AuthzLDAPAuthoritative on
AuthLDAPURL ldap://ldap.local/dc=batch?sub
Require ldap-group cn=customers,ou=group,dc=batch
Require ldap-attribute x-od-customer=XXXX
Satisfy All

Depois de muita pesquisa e experimentação estou completamente preso e preciso de alguns conselhos, por favor

Felicidades!

    
por Arkasha 02.02.2012 / 12:52

1 resposta

0

Por segurança, você não desejaria fazer isso, pois qualquer coisa acessível ao usuário em um URL também pode ser acessada por um invasor no URL. É por isso que você não encontrou informações úteis sobre como fazer isso.

O que você quer é manter servidores de gerenciamento de sessão all . Depois de autenticar o usuário, você usa tokens de sessão protegidos para rastreá-los e, em seguida, se eles quiserem ir a uma área específica, avalie se eles podem, por meio de seu perfil, ser mantidos no servidor.

Para obter algumas orientações úteis, consulte esta pergunta no Security Stack Exchange ou examine as perguntas do tag.

    
por 15.02.2012 / 20:44