Autenticar no Apache via conta do sistema

6

Atualmente tenho meu servidor apache para autenticar por meio de um arquivo de senha criado a partir do htpasswd. Configurado como tal:

AuthType Basic
AuthName "Secured Site"
AuthUserFile "/etc/apache2/users.passwd"

Como posso alterar isso para autenticar por meio de contas do sistema local e, além disso, restringir apenas a um subconjunto de contas do sistema local em um grupo especificado?

    
por Mark Roddy 24.07.2009 / 18:53

3 respostas

6

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 .

    
por 17.05.2015 / 20:02
3

Provavelmente você deve procurar algo como mod_auth_pam . O PAM é o sistema de "Módulo de Autenticação Plugável" e o mecanismo de login do sistema padrão do Linux (estou assumindo que isso é Linux) depende do PAM para fazer sua autenticação.

Outra opção é mod_authnz_external , que analisará diretamente o arquivo /etc/shadow para autenticar contas.

EDIT : Aparentemente mod_auth_pam não é mais mantido (infelizmente), então talvez mod_authnz_external seria uma aposta melhor ...

    
por 24.07.2009 / 19:01
2

O módulo do Apache mod_auth_pam fará exatamente isso por você. Você habilita o módulo, e o arquivo de configuração deve ser parecido com

AuthType Basic
AuthName "secure area"
require group staff
require user webmaster

E está tudo pronto.

    
por 24.07.2009 / 19:00