Como sugerido por David Z, você pode usar mod-authnz-external. Use-o com pwauth por exemplo.
Se você estiver executando Debian ou um derivado:
apt-get install libapache2-mod-authnz-external pwauth
a2enmod authnz_external
Na sua configuração, adicione
<IfModule mod_authnz_external.c>
AddExternalAuth pwauth /usr/sbin/pwauth
SetExternalAuthMethod pwauth pipe
</IfModule>
E na seção Diretório ou no arquivo .htaccess:
AuthType Basic
AuthName "Login"
AuthBasicProvider external
AuthExternal pwauth
Require valid-user
# or
# Require user jules jim ...
Finalmente recarregue a configuração com apache2ctl restart
ou service apache2 reload
.
Veja também esta documentação .