Como configurar o Apache para que ele verifique o certificado do cliente com o do LDAP?

4

Estou tentando configurar meu servidor Apache para uma autenticação HTTPS com certificados de cliente usando LDAP como meu diretório de usuários.

O que eu quero fazer é que o Apache peça aos usuários para se autenticarem com um certificado (sem um login / senha) e, em seguida, o Apache precisa verificar no LDAP: se o certificado fornecido pelo usuário for válido, o Apache retorno "funciona" caso contrário, ele retornará uma autorização 401 necessária.

O que eu fiz até agora é: proteger a conexão entre os usuários e o Apache e entre o Apache e o LDAP. O usuário também fornece seu certificado para o Apache quando ele tenta se autenticar. Meu problema é que o usuário fornece um certificado para o Apache, mas o Apache não verifica se o certificado fornecido pelo usuário corresponde àquele associado ao usuário no diretório LDAP.

Aqui está o meu arquivo de configuração:

 < VirtualHost *:443>

    SSLEngine on
    SSLCertificateKeyFile "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/certs/apache.pem"
    SSLCertificateFile "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/certs/apache.crt"
    SSLCACertificateFile "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/certs/root.crt"
    SSLCACertificatePath "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/certs/"
    SSLProtocol all -SSLv3 -SSLv2

    <Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs">
        AuthType Basic
        AuthName "Authorized Personnel Only"
        AuthLDAPBindDN "cn=ldapadm,dc=ldap,dc=domain"
        AuthLDAPBindPassword "password"
        AuthBasicProvider ldap
        AuthLDAPURL "ldap://ldap.com/ou=People,dc=ldap,dc=domain?cn" STARTTLS
        AuthzLDAPAuthoritative off
        Require valid-user

        SSLUserName SSL_CLIENT_CERT_S_DN_CN
        SSLRequire %{SSL_CLIENT_CERT_S_DN_CN} eq %{REMOTE_USER}
        SSLVerifyDepth 10
        SSLVerifyClient require
    </Directory>
< /VirtualHost>
    
por Alberic 04.05.2017 / 10:03

0 respostas