Métodos de Autenticación en Apache
Métodos de Autenticación en Apache
En lo referente a métodos de autenticación, una instalación por defecto de Apache soporta fundamentalmente autenticación Basic y Digest (instalada pero no habilitada), de forma idéntica a lo ya visto para IIS. Otros tipos de autenticación se soportan mediante la instalación de módulos específicos que implementen esa clase de autenticaciones, incluso adaptadas a interactuar con programas concretos (Ej.: MySQL). Un listado de módulos que implementen autenticaciones podemos encontrarlo en: http://modules.apache.org/search.php (buscar “auth”). Un ejemplo de ellos es la autenticación Kerberos similar a la vista para IIS: https://help.ubuntu.com/community/SingleSignOn
En esta sección no es posible describir la gran variedad de autenticaciones soportada por Apache mediante módulos, así que nos limitaremos a describir cómo implementar autenticación básica y Digest. Cada módulo de autenticación tiene su forma particular de ser activado y gestionado, pero estas dos formas de autenticación servirán como base para hacerse una idea clara de cómo manejar el resto de las mismas. Se da a su vez la circunstancia de que muchos tipos de autenticación son front-ends, que trabajan con Basic y Digest "por debajo" realmente. En este sentido es primordial el uso de SSL para hacerlas realmente seguras, dado que se enviará información importante como texto plano o con un método de codificación vulnerable.
En los ejemplos que describiremos en esta sección usaremos fundamentalmente archivos .htaccess, pero el mismo efecto puede lograrse mediante directivas <Directory> o <Location> en los archivos de configuración centrales de Apache. En todo caso, los ficheros de autenticación NUNCA deben estar en el path designado por DocumentRoot, ya que podrían descargarse por un usuario cualquiera y de esta manera lograr romper nuestro sistema de autenticación.
Más información:
- http://www.linuxsecurity.com/content/view/133913/171/
- http://www.brennan.id.au/13-Apache_Web_Server.html#users (página que incluye autenticación en directorios personales public_html de usuarios)
- http://httpd.apache.org/docs/2.0/howto/auth.html
- http://blog.innerewut.de/2007/6/26/apache-2-2-authentication-with-mod_authnz_external
- http://httpd.apache.org/docs/2.0/mod/mod_auth_digest.html
- http://www.howtoforge.com/apache_mod_auth_shadow_debian_ubuntu
No volveremos a describir de nuevo las autenticaciones Basic y Digest, ya que los conceptos son los mismos que en el caso de IIS. Pasaremos directamente a ver cómo funcionan a base de actividades prácticas:
Finalmente, respecto al resto de métodos de autenticación, una de las opciones que probablemente primero se puedan considerar es intentar autenticar usuarios a partir del fichero de claves del sistema operativo (/etc/shadow). Esto puede conseguirse por medio de mods como mod_shadow (el cual ya no se está desarrollando) u otros, aunque antes de dar un paso como éste es conveniente leer las indicaciones de este enlace: http://httpd.apache.org/docs/1.3/misc/FAQ.html#passwdauth
Algo más frecuente y aconsejable es la autenticación frente a un LDAP que contenga usuarios de una organización o similar. Esto también es posible mediante mods y en este enlace se describe cómo hacer esta operación: http://www.sahw.com/wp/archivos/2009/06/08/autenticacion-en-apache-mediante-mod_authnz_ldap-soporte-openldap/
Finalmente, en el siguiente enlace: http://www.yolinux.com/TUTORIALS/LinuxTutorialApacheAddingLoginSiteProtection.html podemos encontrar una serie de guías y procedimientos sobre como poner en marcha y gestionar distintos tipos de autenticación.