Recentemente precisei liberar diversos arquivos para Download para os usuários da minha rede e que possuem Login/e-mail no Zimbra, estes arquivos não podem ser liberados para qualquer um fazer download, portanto resolvi disponibilizar via http utilizando o Apache.

O conteúdo estará hospedado em: /var/www/volantes

Para isto, iremos utilizar o módulo mod_authz_ldap do Apache (https://httpd.apache.org/docs/2.4/mod/mod_authnz_ldap.html).

CentOS 6 e 7


yum install httpd mod_authz_ldap

No arquivo /etc/httpd/conf.d/authz_ldap.conf você pode adicionar após a tag <IfModule mod_authz_ldap.c> o conteúdo abaixo:


Alias /volantes /var/www/volantes
<Directory /var/www/volantes>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
Deny from All
AuthName "Authorization Required"
AuthType Basic
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL ldap://zimbra.seudominio.com.br/ou=people,dc=seudominio,dc=com,dc=br?uid??(&(|(objectclass=inetOrgPerson))(|(zimbraAccountStatus=Active)))
AuthLDAPBindDN "uid=zimbra,cn=admins,cn=zimbra"
AuthLDAPBindPassword "a1b2c3d4"
Require valid-user
Satisfy any
</Directory>

Explicando:

Alias /volantes /var/www/volantes – Criar um alias http://seuservidor.com.br/volantes apontando para /var/www/volantes
AuthName “Authorization Required” – Banner informativo
AuthType Basic  – Tipo de autenticação
AuthBasicProvider ldap – Tipo do provedor de autenticação
AuthLDAPURL ldap://zimbra.seudominio.com.br/ou=people,dc=seudominio,dc=com,dc=br?uid??(&(|(objectclass=inetOrgPerson))(|(zimbraAccountStatus=Active))) – Servidor LDAP (seu zimbra) e o domínio de busca e se o Status da conta está Ativo – ou seja, contas desabilitadas no zimbra, não poderão fazer login.
AuthLDAPBindDN “uid=zimbra,cn=admins,cn=zimbra”  – usuário que será utilizado para fazer a busca no zimbra
AuthLDAPBindPassword “1a2b3c4e” – Senha do usuário admin no ldap do zimbra (você poderá recuperar essa senha utilizando o comando a seguir como usuário zimbra no servidor zimbra: zmlocalconfig -s zimbra_ldap_password)
Require valid-user – Define que é necessário um usuário válido para logar

Agora, reinicie o Apache


service httpd restart

http://meu.servidor.com.br/volantes/

Entre com seu usuário (sem o domínio) e senha e verifique se o conteúdo é exibido normalmente!