Autorização NTLM usando o VirtualHosts Apache NameBased sobre SSL

2

Eu tenho um ambiente de desenvolvimento que é liderado por um servidor Apache. Esse servidor apache requer autenticação / autenticação NTLM com SSL e Centrify com o back-end do AD, usando o acesso de grupo para visualizar as páginas da Web. Haverá vários projetos usando esse ambiente, portanto, desejo configurar o Virtual Hosting, que permitirá que cada projeto modifique seu próprio host virtual com módulos específicos do Apache. Os arquivos da web residirão em / var / www / project1; / var / www / project2; etc ..

Eu já tenho o DNS configurado corretamente para apontar * .domain para o servidor apache, bem como um certificado SSL curinga que tinha o campo altDNSName definido com * .domain.

O problema é a parte de autenticação NTLM:

Se eu apontar meu navegador para o link , a autorização do NTLM processará exatamente como eu quero. Acredito que isso seja executado fora do host virtual padrão.

Se eu apontar meu navegador para o link , os logs de erro do Apache reclamam que "o usuário falhou na autenticação NTLM para /index.html Erro: falha de logon.

<VirtualHost ipaddress:443>
    Servername "hostname.fqdn"
    DocumentRoot "/var/www/"

    SSLEngine on
    SSLCertificateFile  /path/to/cert.crt
    SSLCertificateKeyFile   /path/to/cert.key
</VirtualHost>

<VirtualHost ipaddress:443>
    ServerName "project1.domain"
    DocumentRoot "/var/www/project1"

    SSLEngine on
    SSLCertificateFile  /path/to/cert.crt
    SSLCertificateKeyFile   /path/to/cert.key
</VirtualHost>

<Directory "/var/www">
    Options Indexes FollowSymLinks

    SSLRequireSSL

    AllowOverride None

    Order allow,deny
    Allow from all
</Directory>

<Directory "/var/www/project1">
    AuthType CENTRIFYDC

    EnableBasicAuth     false
    EnableKerberosAuth  false
    EnableNtlmAuth      true

    Require group       required_ad_group
</Directory>

Eu tentei isso com o IE e o Firefox, certificando-se de que * .domain estava na minha zona de Intranet Local para o IE e que os network.automatic-ntlm-auth.trusted-uris e as configurações de network.negotiate-auth.trusted-uris estão definidas corretamente no Firefox.

Reduzi o problema do NTLM porque, se eu remover as diretivas do Centrify, o host virtual baseado em nome funcionará como seria de se esperar. Eu tentei colocar a tag Directory dentro de cada Virtual Host, eu também tentei usar uma tag Location, mas eu não fui capaz de fazer qualquer progresso.

    
por mgriffin 28.05.2012 / 20:28

2 respostas

0

Eu começaria fazendo dois VirtualHosts solidamente separados, que funcionam como esperado, e depois voltaria para uma variedade híbrida, a cada mudança.

Eu suspeito que seus 2 VirtualHosts resolvam algo assim:

<VirtualHost ipaddress:443>
    Servername "hostname.fqdn"
    DocumentRoot "/var/www/"

    SSLEngine on
    SSLCertificateFile  /path/to/cert.crt
    SSLCertificateKeyFile   /path/to/cert.key

<Directory "/var/www">
    Options Indexes FollowSymLinks

    SSLRequireSSL

    AllowOverride None

    Order allow,deny
    Allow from all
</Directory>

<Directory "/var/www/project1">
    AuthType CENTRIFYDC

    EnableBasicAuth     false
    EnableKerberosAuth  false
    EnableNtlmAuth      true

    Require group       required_ad_group
</Directory>


</VirtualHost>

<VirtualHost ipaddress:443>
    ServerName "project1.domain"
    DocumentRoot "/var/www/project1"

    SSLEngine on
    SSLCertificateFile  /path/to/cert.crt
    SSLCertificateKeyFile   /path/to/cert.key



<Directory "/var/www/project1">
    AuthType CENTRIFYDC

    EnableBasicAuth     false
    EnableKerberosAuth  false
    EnableNtlmAuth      true

    Require group       required_ad_group
</Directory>

</VirtualHost>

Então eu testaria algo assim, e então os moveria para fora dos outros subdiretórios, e veria quais diretivas estão conflitantes

    
por 29.05.2012 / 01:08
0

Após mais investigação, não foi um problema com a configuração do Apache. Parece que o navegador estava passando o NTLM e o Apache estava recebendo, mas o Centrify não está validando corretamente. Agora preciso descobrir onde o detalhamento está aqui, mas isso é outro tópico.

    
por 30.05.2012 / 16:47