Apache: Autenticação com eDirectory

Quando há um LDAP server na rede, nesse caso o eDirectory, é interessante manter uma centralização dos usuários pois não é necessário ficar criando usuários manualmente nem os usuários terão várias senhas para guardar.

Parto do princípio que já tenha o Apache instalado e funcionando.

É necessário o mod_authz_ldap para configurar essa autenticação com o LDAP.

Instalando o mod_authz_ldap

No CentOS / Red Hat, para instalar:

yum install mod_authz_ldap

Configurando o diretório que deverá ser autenticado

O que é necessário saber do eDirectory server para poder autenticar com sucesso:

  • IP do server
  • Usuário para fazer o bind, ou seja, é o usuário que tem permissão para realizar a busca na árvore
  • Se for fazer a autenticação baseada em grupo, saber qual grupo e em que contexto está esse grupo

Usando vhost

Nesse exemplo, utilizarei o conceito de vhost para a configuração da restrição de acesso.

Para isso, criar um arquivo de configuração no diretório /etc/httpd/conf.d chamado wordpress.conf e seu conteúdo é como abaixo

Controle por grupo

No caso, o grupo chama-se GRP_Wordpress.

Arquivo: /etc/httpd/conf.d/wordpress.conf


    DocumentRoot /var/www/html/wordpress
    
        AuthName "Utilize o login da rede Novell Netware"
        AuthType basic
        AuthBasicProvider file ldap

        AuthLDAPBindDN cn=dklima,ou=FCA,o=FogoNaCaixadAgua
        AuthLDAPBindPassword P45sw0rD

        AuthLDAPURL "ldap://192.168.11.10:389/ou=FCA,o=FogoNaCaixadAgua?cn?sub?(securityEquals=cn=GRP_Wordpress,ou=FCA,o=FogoNaCaixadAgua)"
        Require valid-user
        AuthzLDAPAuthoritative off
    
    ServerName wordpress.fogonacaixadagua

Validar apenas usuário

Arquivo: /etc/httpd/conf.d/wordpress.conf


    DocumentRoot /var/www/html/wordpress
    
        AuthName "Utilize o login da rede Novell Netware"
        AuthType basic
        AuthBasicProvider file ldap

        AuthLDAPBindDN cn=dklima,ou=FCA,o=FogoNaCaixadAgua
        AuthLDAPBindPassword P45sw0rD

        AuthLDAPURL "ldap://192.168.11.10:389/ou=FCA,o=FogoNaCaixadAgua?cn?sub"
        Require valid-user
        AuthzLDAPAuthoritative off
    
    ServerName wordpress.fogonacaixadagua

Com isso, quando foi solicitado acesso ao diretório /var/www/html/wordpress, o será solicitado um usuário válido para pode acessar o site.

É necessário reiniciar o processo do Apache

service httpd restart

Usando .htaccess

Nesse exemplo, o conceito usado é para utilizar um arquivo .htaccess dentro do diretório que será restrito o acesso.

Criar o arquivo .htaccess no diretório, nesse exemplo /var/www/html/wordpress com o seguinte conteúdo:

Controle por grupo

No caso, o grupo chama-se GRP_Wordpress.

Arquivo: /var/www/html/wordpress/.htaccess

        AuthName "Utilize o login da rede Novell Netware"
        AuthType basic
        AuthBasicProvider file ldap

        AuthLDAPBindDN cn=dklima,ou=FCA,o=FogoNaCaixadAgua
        AuthLDAPBindPassword P45sw0rD

        AuthLDAPURL "ldap://192.168.11.10:389/ou=FCA,o=FogoNaCaixadAgua?cn?sub?(securityEquals=cn=GRP_Wordpress,ou=FCA,o=FogoNaCaixadAgua)"
        Require valid-user
        AuthzLDAPAuthoritative off

Validar apenas usuários

Arquivo: /var/www/html/wordpress/.htaccess

        AuthName "Utilize o login da rede Novell Netware"
        AuthType basic
        AuthBasicProvider file ldap

        AuthLDAPBindDN cn=dklima,ou=FCA,o=FogoNaCaixadAgua
        AuthLDAPBindPassword P45sw0rD

        AuthLDAPURL "ldap://192.168.11.10:389/ou=FCA,o=FogoNaCaixadAgua?sn?sub
        Require valid-user
        AuthzLDAPAuthoritative off

Não é necessário reiniciar o apache.

Share this post

1 comment

Join the conversation

Join the conversation