Autenticação LDAP Segura com o Active Directory

5

Estamos trabalhando em um projeto da Web em que precisamos nos vincular a um domínio de diretório ativo e depois passar as credenciais do usuário para o domínio para garantir que o usuário tenha sido autenticado com êxito antes de permitir o acesso a um de nossos sites. aplicações. Temos HTTPS funcionando bem para o front end aceitar as credenciais. O problema que estamos enfrentando é a conexão entre o nosso servidor e o servidor de diretório ativo. O servidor de diretório ativo é mantido por uma seção diferente do nosso departamento de TI e não temos acesso a ele. Esse servidor de diretório ativo está usando um certificado autoassinado e não possui um nome de domínio totalmente qualificado (por exemplo, people.local).

Eu li muitos lugares que falam sobre como configurar a variável TLS_REQCERT para nunca; No entanto, estou preocupado com os ataques do tipo man-in-the-middle e não me sinto confortável em deixar o cenário definido dessa maneira. Também li alguns artigos que falam sobre a capacidade de consultar o servidor de diretório ativo a partir de uma linha de comando do Linux, exibir o certificado autoassinado, salvar o certificado autoassinado no servidor Linux local e usar esse certificado para a confiança para que você não precise definir TLS_REQCERT para nunca. Não tenho certeza de como posso visualizar e salvar o certificado autoassinado da linha de comando do Linux. Eu tenho alguns servidores CentOS que estamos executando e precisamos fazer isso operacional.

Qualquer ajuda que você possa fornecer seria muito apreciada. Agradecemos antecipadamente.

    
por John 14.12.2010 / 01:03

2 respostas

6

I have read many places that talk about setting the TLS_REQCERT variable to never; however, I am worried about man-in-the-middle attacks and do not feel comfortable leaving the setting set this way.

Você deve ser elogiado tanto por pensar em segurança quanto em entender as implicações da configuração de TLS_REQCERT.

I have also read some articles that talk about being able to query the active directory server from a Linux command line, view the self-signed certificate, save the self-signed certificate to the local Linux server...

Você pode usar a ferramenta openssl para fazer isso. Supondo que você possa acessar o Active Directory via LDAP-sobre-SSL na porta 636, você pode fazer isso:

openssl s_client -connect server.example.com:636 > output < /dev/null

E quando o comando for concluído, você verá que a saída contém, entre outras coisas, o certificado codificado pelo PEM:

00000003)
---
Certificate chain
 0 s:/CN=dc1.example.com
   i:/DC=com/DC=example/DC=dc1/CN=example-DC1-CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIGjDCCBXSgAwIBAgIKOxasfwAAAAAADDANBgkqhkiG9w0BAQUFADBaMRMwEQYK
...
-----END CERTIFICATE-----
...

Você pode remover tudo antes da linha BEGIN CERTIFICATE e tudo depois do END CERTIFICATE LINE e você deve ter o que procura.

Também é possível que o servidor do AD não esteja usando um certificado autoassinado, mas esteja usando um certificado emitido pela autoridade de certificação do AD. Se este for o caso, talvez seja mais fácil pedir ao pessoal do AD o certificado de CA.

    
por 14.12.2010 / 02:24
0

Eu recomendo ter um servidor de autoridade de certificação dedicado em sua organização. Você usará esse servidor para emitir certificados para todos os servidores da sua empresa. Para ver as informações de um certificado, uma chave ou uma solicitação de certificado, você pode usar o openssl. Veja: link e link

O certificado emitido para seu servidor LDAP ou, preferencialmente, o certificado raiz deve ser importado no armazenamento de chaves SSL do seu aplicativo.

    
por 14.12.2010 / 01:36