<-
Apache > Servidor HTTP > Documentación > Versión 2.4 > How-To / Tutoriales

Autenticación y Autorización

Idiomas disponibles:  en  |  es  |  fr  |  ja  |  ko  |  tr 

Esta traducción podría estar obsoleta. Consulte la versión en inglés de la documentación para comprobar si se han producido cambios recientemente.

Autenticación es cualquier proceso por el cuál se verifica que uno es quien dice ser. Autorización es cualquier proceso en el cuál cualquiera está permitido a estar donde se quiera, o tener información la cuál se quiera tener.

Para información de control de acceso de forma genérica visiteHow to de Control de Acceso.

Support Apache!

Consulte también

top

Módulos y Directivas Relacionados

Hay tres tipos de módulos involucrados en los procesos de la autenticación y autorización. Normalmente deberás escoger al menos un módulo de cada grupo.

A parte de éstos módulos, también están mod_authn_core y mod_authz_core. Éstos módulos implementan las directivas esenciales que son el centro de todos los módulos de autenticación.

El módulo mod_authnz_ldap es tanto un proveedor de autenticación como de autorización. El módulo mod_authz_host proporciona autorización y control de acceso basado en el nombre del Host, la dirección IP o características de la propia petición, pero no es parte del sistema proveedor de autenticación. Para tener compatibilidad inversa con el mod_access, hay un nuevo modulo llamado mod_access_compat.

También puedes mirar el how-to de Control de Acceso , donde se plantean varias formas del control de acceso al servidor.

top

Introducción

Si se tiene información en nuestra página web que sea información sensible o pensada para un grupo reducido de usuarios/personas, las técnicas que se describen en este manual, le servirán de ayuda para asegurarse de que las personas que ven esas páginas sean las personas que uno quiere.

Este artículo cubre la parte "estándar" de cómo proteger partes de un sitio web que muchos usarán.

Nota:

Si de verdad es necesario que tus datos estén en un sitio seguro, considera usar mod_ssl como método de autenticación adicional a cualquier forma de autenticación.

top

Los Prerequisitos

Las directivas que se usan en este artículo necesitaran ponerse ya sea en el fichero de configuración principal del servidor ( típicamente en la sección <Directory> de httpd.conf ), o en cada uno de los ficheros de configuraciones del propio directorio (los archivos .htaccess).

Si planea usar los ficheros .htaccess , necesitarás tener en la configuración global del servidor, una configuración que permita poner directivas de autenticación en estos ficheros. Esto se hace con la directiva AllowOverride, la cual especifica que directivas, en su caso, pueden ser puestas en cada fichero de configuración por directorio.

Ya que estamos hablando aquí de autenticación, necesitarás una directiva AllowOverride como la siguiente:

AllowOverride AuthConfig

O, si solo se van a poner las directivas directamente en la configuración principal del servidor, deberás tener, claro está, permisos de escritura en el archivo.

Y necesitarás saber un poco de como está estructurado el árbol de directorios de tu servidor, para poder saber donde se encuentran algunos archivos. Esto no debería ser una tarea difícil, aún así intentaremos dejarlo claro llegado el momento de comentar dicho aspecto.

También deberás de asegurarte de que los módulos mod_authn_core y mod_authz_core han sido incorporados, o añadidos a la hora de compilar en tu binario httpd o cargados mediante el archivo de configuración httpd.conf. Estos dos módulos proporcionan directivas básicas y funcionalidades que son críticas para la configuración y uso de autenticación y autorización en el servidor web.

top

Conseguir que funcione

Aquí está lo básico de cómo proteger con contraseña un directorio en tu servidor.

Primero, necesitarás crear un fichero de contraseña. Dependiendo de que proveedor de autenticación se haya elegido, se hará de una forma u otra. Para empezar, usaremos un fichero de contraseña de tipo texto.

Este fichero deberá estar en un sitio que no se pueda tener acceso desde la web. Esto también implica que nadie pueda descargarse el fichero de contraseñas. Por ejemplo, si tus documentos están guardados fuera de /usr/local/apache/htdocs, querrás poner tu archivo de contraseñas en /usr/local/apache/passwd.

Para crear el fichero de contraseñas, usa la utilidad htpasswd que viene con Apache. Esta herramienta se encuentra en el directorio /bin en donde sea que se ha instalado el Apache. Si ha instalado Apache desde un paquete de terceros, puede ser que se encuentre en su ruta de ejecución.

Para crear el fichero, escribiremos:

htpasswd -c /usr/local/apache/passwd/passwords rbowen

htpasswd te preguntará por una contraseña, y después te pedirá que la vuelvas a escribir para confirmarla:

$ htpasswd -c /usr/local/apache/passwd/passwords rbowen
New password: mypassword
Re-type new password: mypassword
Adding password for user rbowen

Si htpasswd no está en tu variable de entorno "path" del sistema, por supuesto deberás escribir la ruta absoluta del ejecutable para poder hacer que se ejecute. En una instalación por defecto, está en: /usr/local/apache2/bin/htpasswd

Lo próximo que necesitas, será configurar el servidor para que pida una contraseña y así decirle al servidor que usuarios están autorizados a acceder. Puedes hacer esto ya sea editando el fichero httpd.conf de configuración o usando in fichero .htaccess. Por ejemplo, si quieres proteger el directorio /usr/local/apache/htdocs/secret, puedes usar las siguientes directivas, ya sea en el fichero .htaccess localizado en following directives, either placed in the file /usr/local/apache/htdocs/secret/.htaccess, o en la configuración global del servidor httpd.conf dentro de la sección <Directory "/usr/local/apache/htdocs/secret"> , como se muestra a continuación:

<Directory "/usr/local/apache/htdocs/secret">
AuthType Basic
AuthName "Restricted Files"
# (Following line optional)
AuthBasicProvider file
AuthUserFile "/usr/local/apache/passwd/passwords"
Require user rbowen
</Directory>

Vamos a explicar cada una de las directivas individualmente. La directiva AuthType selecciona el método que se usa para autenticar al usuario. El método más común es Basic, y éste es el método que implementa mod_auth_basic. Es muy importante ser consciente, de que la autenticación básica, envía las contraseñas desde el cliente al servidor sin cifrar. Este método por tanto, no debe ser utilizado para proteger datos muy sensibles, a no ser que, este método de autenticación básica, sea acompañado del módulo mod_ssl. Apache soporta otro método más de autenticación que es del tipo AuthType Digest. Este método, es implementado por el módulo