Meu servidor Apache está usando o LDAP para autenticar usuários quando eles desejam acessar a raiz do servidor.
Gostaria de adicionar outra autenticação (sem prompt) para permitir/proibir grupos de usuários (definidos em um arquivo no servidor), que já estão autenticados no site, de acessar páginas em diretórios específicos.
Como eu poderia fazer isso no meu arquivo de configuração do Apache?
Atualmente está assim:
NameVirtualHost *:443
<VirtualHost *:443>
ServerName some.ip.address
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert.key
<Directory /var/www/mywebsite>
AllowOverride All
Order deny,allow
Deny from All
AuthType Basic
AuthName "LDAP Access - Mywebsite"
AuthBasicProvider ldap
AuthzLDAPAuthoritative on
AuthLDAPURL "ldap://myldapserver:389/ou=mygroup,dc=mydc,dc=com?uid?sub?(objectClass=*)"
AuthLDAPBindDN "uid=someuser,ou=apache,dc=mydc,dc=com"
AuthLDAPBindPassword "mysuperpassword"
Require valid-user
Satisfy all
</Directory>
<Directory /var/www/mywebsite/directory>
#What do I put in here ?
</Directory>
</VirtualHost>
Responder1
Supondo que o que você deseja é permitir que todos os usuários válidos (mas nenhum usuário não autenticado) acessem a maior parte do seu site, mas permitir apenas que alguns usuários ou grupos acessem algumas áreas, o que você precisa fazer é algo como:
<Directory /var/www/mywebsite>
# Ldap authentication bits here as now
</Directory>
<Location /secure/>
<RequireAll>
Require group secure
Require not group sales
</RequireAll>
</Location>
<Location /secure/jim/>
<RequireAll>
Require user jim
</RequireAll>
</Location>
Como alternativa, se você ainda estiver preso no Apache 2.2, opte por algo como:
<Directory /var/www/mywebsite>
# Ldap authentication bits here as now
</Directory>
<Location /secure/>
Require ldap-group cn=secure
# Negative matching not possible with 2.2
</Location>
<Location /secure/jim/>
Require ldap-user jim
</Location>
Com essa configuração, todos os usuários válidos poderiam acessar /
como agora, junto com a maior parte do site. Então, no 2.4, apenas as pessoas que estavam no grupo LDAP secure
, masnãono grupo LDAP sales
seria capaz de acessar as coisas abaixo /secure/
(com 2.2 são apenas aqueles no secure
grupo que poderiam). Os usuários não seriam solicitados a autenticar novamente, sua autenticação existente seria reutilizada, com nomes de usuários/grupos verificados. Finalmente, as coisas abaixo /secure/jim/
só seriam visíveis para Jim.
Você pode encontrar a documentação sobre as diferentes opções de exigêncianos documentos do Apache HTTPD 2.4 em mod_authz_core / Require. Para o Apache 2.2, você precisaria doDocumentos Apache HTTPD 2.2 para mod_authnz_ldap