Pregunta Autenticar en Apache a través de la cuenta del sistema


Actualmente tengo mi servidor apache para autenticarme a través de un archivo de contraseña creado desde htpasswd. Configurado como tal:

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

¿Cómo puedo cambiar esto para autenticar a través de las cuentas del sistema local y restringir adicionalmente solo a un subconjunto de cuentas del sistema local en un grupo específico?


6
2017-07-24 16:53


origen




Respuestas:


Como lo sugiere David Z, puedes usar mod-authnz-external. Usalo con pwauth por ejemplo.

Si está ejecutando Debian o un derivado:

apt-get install libapache2-mod-authnz-external pwauth
a2enmod authnz_external

En su configuración, agregue

<IfModule mod_authnz_external.c>
  AddExternalAuth pwauth /usr/sbin/pwauth
  SetExternalAuthMethod pwauth pipe
</IfModule>

Y en la sección Directorio o su archivo .htaccess:

    AuthType Basic
    AuthName "Login"
    AuthBasicProvider external
    AuthExternal pwauth
    Require valid-user
    # or
    # Require user jules jim ...

Finalmente recargar la configuración con apache2ctl restart o service apache2 reload.

Ver también esta documentación.


6
2018-05-17 18:02



Desde INSTALAR, sección "CONFIGURACIÓN" -> "Configuración del autenticador externo" -> "Para programas de autenticación externa": AddExternalAuth y SetExternalAuthMethod Son comandos de sintaxis de estilo antiguo. La sintaxis de nuevo estilo usa solo un comando: DefineExternalAuth pwauth pipe /usr/sbin/pwauth. - sierrasdetandil
Para cualquiera que use pwauth, Asegúrate que pwauth binario tiene permisos setuid! Puedes hacerlo con este comando: chmod u+s /usr/bin/pwauth. Cuando Apache invoca pwauth y los permisos de setuid no están establecidos, el código de estado de 1 (desconocido) siempre se devuelve. bugs.launchpad.net/ubuntu/+source/pwauth/+bug/579846 - Elliot B.


Probablemente quieras mirar algo como mod_auth_pam. PAM es el sistema del "Módulo de autenticación conectable" y el mecanismo estándar de inicio de sesión del sistema Linux (supongo que se trata de Linux) se basa en PAM para realizar su autenticación.

Otra opcion es mod_authnz_external, que mirará directamente a la /etc/shadow archivo para autenticar cuentas.

EDITAR: Al parecer mod_auth_pam Ya no se mantiene (por desgracia), así que tal vez mod_authnz_external sería una mejor apuesta ...


3
2017-07-24 17:01





El modulo apache mod_auth_pam Hará exactamente esto por ti. Habilitas el módulo, y el archivo de configuración debería verse como

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

Y ya estás todo listo.


2
2017-07-24 17:00



Parece que el módulo al que está vinculado está diseñado para Apache 1.3 o 2.0. blog.thirsch.de/2007/02/21/… Da consejos sobre cómo hacer que funcione. - David Pashley