|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"><head>
|
|
Packit |
90a5c9 |
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
Packit |
90a5c9 |
This file is generated from xml source: DO NOT EDIT
|
|
Packit |
90a5c9 |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
Packit |
90a5c9 |
-->
|
|
Packit |
90a5c9 |
<title>Autenticación y Autorización - Servidor HTTP Apache Versión 2.4</title>
|
|
Packit |
90a5c9 |
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
|
|
Packit |
90a5c9 |
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
|
|
Packit |
90a5c9 |
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
|
|
Packit |
90a5c9 |
<script src="../style/scripts/prettify.min.js" type="text/javascript">
|
|
Packit |
90a5c9 |
</script>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
|
|
Packit |
90a5c9 |
<body id="manual-page">
|
|
Packit |
90a5c9 |
Módulos | Directivas | Preguntas Frecuentes | Glosario | Mapa del sitio web
|
|
Packit |
90a5c9 |
Versión 2.4 del Servidor HTTP Apache
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Apache > Servidor HTTP > Documentación > Versión 2.4 > How-To / TutorialesAutenticación y Autorización
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Idiomas disponibles: en |
|
|
Packit |
90a5c9 |
es |
|
|
Packit |
90a5c9 |
fr |
|
|
Packit |
90a5c9 |
ja |
|
|
Packit |
90a5c9 |
ko |
|
|
Packit |
90a5c9 |
tr
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Autenticación es cualquier proceso por el cuál se verifica que uno es
|
|
Packit |
90a5c9 |
quien dice ser. Autorización es cualquier proceso en el cuál cualquiera
|
|
Packit |
90a5c9 |
está permitido a estar donde se quiera, o tener información la cuál se
|
|
Packit |
90a5c9 |
quiera tener.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Para información de control de acceso de forma genérica visiteHow to de Control de Acceso.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Introducción
|
|
Packit |
90a5c9 |
Los Prerequisitos
|
|
Packit |
90a5c9 |
Conseguir que funcione
|
|
Packit |
90a5c9 |
Dejar que más de una persona
|
|
Packit |
90a5c9 |
entre
|
|
Packit |
90a5c9 |
Posibles Problemas
|
|
Packit |
90a5c9 |
Método alternativo de almacenamiento de las
|
|
Packit |
90a5c9 |
contraseñas
|
|
Packit |
90a5c9 |
Uso de múltiples proveedores
|
|
Packit |
90a5c9 |
Más allá de la Autorización
|
|
Packit |
90a5c9 |
Cache de Autenticación
|
|
Packit |
90a5c9 |
Más información
|
|
Packit |
90a5c9 |
Consulte también
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Hay tres tipos de módulos involucrados en los procesos de la autenticación
|
|
Packit |
90a5c9 |
y autorización. Normalmente deberás escoger al menos un módulo de cada grupo.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Modos de Autenticación (consulte la directiva
|
|
Packit |
90a5c9 |
AuthType )
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
mod_auth_basic
|
|
Packit |
90a5c9 |
mod_auth_digest
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Proveedor de Autenticación (consulte la directiva
|
|
Packit |
90a5c9 |
AuthBasicProvider y
|
|
Packit |
90a5c9 |
AuthDigestProvider )
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
mod_authn_anon
|
|
Packit |
90a5c9 |
mod_authn_dbd
|
|
Packit |
90a5c9 |
mod_authn_dbm
|
|
Packit |
90a5c9 |
mod_authn_file
|
|
Packit |
90a5c9 |
mod_authnz_ldap
|
|
Packit |
90a5c9 |
mod_authn_socache
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Autorización (consulte la directiva
|
|
Packit |
90a5c9 |
Require )
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
mod_authnz_ldap
|
|
Packit |
90a5c9 |
mod_authz_dbd
|
|
Packit |
90a5c9 |
mod_authz_dbm
|
|
Packit |
90a5c9 |
mod_authz_groupfile
|
|
Packit |
90a5c9 |
mod_authz_host
|
|
Packit |
90a5c9 |
mod_authz_owner
|
|
Packit |
90a5c9 |
mod_authz_user
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
A parte de éstos módulos, también están
|
|
Packit |
90a5c9 |
mod_authn_core y
|
|
Packit |
90a5c9 |
mod_authz_core . Éstos módulos implementan las directivas
|
|
Packit |
90a5c9 |
esenciales que son el centro de todos los módulos de autenticación.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
El módulo mod_authnz_ldap es tanto un proveedor de
|
|
Packit |
90a5c9 |
autenticación como de autorización. El módulo
|
|
Packit |
90a5c9 |
mod_authz_host proporciona autorización y control de acceso
|
|
Packit |
90a5c9 |
basado en el nombre del Host, la dirección IP o características de la propia
|
|
Packit |
90a5c9 |
petición, pero no es parte del sistema proveedor de
|
|
Packit |
90a5c9 |
autenticación. Para tener compatibilidad inversa con el mod_access,
|
|
Packit |
90a5c9 |
hay un nuevo modulo llamado mod_access_compat .
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
También puedes mirar el how-to de Control de Acceso , donde se plantean varias formas del control de acceso al servidor.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Si se tiene información en nuestra página web que sea información
|
|
Packit |
90a5c9 |
sensible o pensada para un grupo reducido de usuarios/personas,
|
|
Packit |
90a5c9 |
las técnicas que se describen en este manual, le servirán
|
|
Packit |
90a5c9 |
de ayuda para asegurarse de que las personas que ven esas páginas sean
|
|
Packit |
90a5c9 |
las personas que uno quiere.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Este artículo cubre la parte "estándar" de cómo proteger partes de un
|
|
Packit |
90a5c9 |
sitio web que muchos usarán.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Nota:
|
|
Packit |
90a5c9 |
Si de verdad es necesario que tus datos estén en un sitio seguro,
|
|
Packit |
90a5c9 |
considera usar mod_ssl como método de autenticación adicional a cualquier forma de autenticación.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Las directivas que se usan en este artículo necesitaran ponerse ya sea
|
|
Packit |
90a5c9 |
en el fichero de configuración principal del servidor ( típicamente en
|
|
Packit |
90a5c9 |
la sección
|
|
Packit |
90a5c9 |
<Directory> de httpd.conf ), o
|
|
Packit |
90a5c9 |
en cada uno de los ficheros de configuraciones del propio directorio
|
|
Packit |
90a5c9 |
(los archivos .htaccess ).
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Si planea usar los ficheros .htaccess , necesitarás
|
|
Packit |
90a5c9 |
tener en la configuración global del servidor, una configuración que permita
|
|
Packit |
90a5c9 |
poner directivas de autenticación en estos ficheros. Esto se hace con la
|
|
Packit |
90a5c9 |
directiva AllowOverride , la cual especifica
|
|
Packit |
90a5c9 |
que directivas, en su caso, pueden ser puestas en cada fichero de configuración
|
|
Packit |
90a5c9 |
por directorio.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Ya que estamos hablando aquí de autenticación, necesitarás una directiva
|
|
Packit |
90a5c9 |
AllowOverride como la siguiente:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
AllowOverride AuthConfig
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
O, si solo se van a poner las directivas directamente en la configuración
|
|
Packit |
90a5c9 |
principal del servidor, deberás tener, claro está, permisos de escritura
|
|
Packit |
90a5c9 |
en el archivo.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Y necesitarás saber un poco de como está estructurado el árbol de
|
|
Packit |
90a5c9 |
directorios de tu servidor, para poder saber donde se encuentran algunos
|
|
Packit |
90a5c9 |
archivos. Esto no debería ser una tarea difícil, aún así intentaremos
|
|
Packit |
90a5c9 |
dejarlo claro llegado el momento de comentar dicho aspecto.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
También deberás de asegurarte de que los módulos
|
|
Packit |
90a5c9 |
mod_authn_core y mod_authz_core
|
|
Packit |
90a5c9 |
han sido incorporados, o añadidos a la hora de compilar en tu binario httpd o
|
|
Packit |
90a5c9 |
cargados mediante el archivo de configuración httpd.conf . Estos
|
|
Packit |
90a5c9 |
dos módulos proporcionan directivas básicas y funcionalidades que son críticas
|
|
Packit |
90a5c9 |
para la configuración y uso de autenticación y autorización en el servidor web.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Aquí está lo básico de cómo proteger con contraseña un directorio en tu
|
|
Packit |
90a5c9 |
servidor.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Primero, necesitarás crear un fichero de contraseña. Dependiendo de que
|
|
Packit |
90a5c9 |
proveedor de autenticación se haya elegido, se hará de una forma u otra. Para empezar,
|
|
Packit |
90a5c9 |
usaremos un fichero de contraseña de tipo texto.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Este fichero deberá estar en un sitio que no se pueda tener acceso desde
|
|
Packit |
90a5c9 |
la web. Esto también implica que nadie pueda descargarse el fichero de
|
|
Packit |
90a5c9 |
contraseñas. Por ejemplo, si tus documentos están guardados fuera de
|
|
Packit |
90a5c9 |
/usr/local/apache/htdocs , querrás poner tu archivo de contraseñas en
|
|
Packit |
90a5c9 |
/usr/local/apache/passwd .
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Para crear el fichero de contraseñas, usa la utilidad
|
|
Packit |
90a5c9 |
htpasswd que viene con Apache. Esta herramienta se
|
|
Packit |
90a5c9 |
encuentra en el directorio /bin en donde sea que se ha
|
|
Packit |
90a5c9 |
instalado el Apache. Si ha instalado Apache desde un paquete de terceros,
|
|
Packit |
90a5c9 |
puede ser que se encuentre en su ruta de ejecución.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Para crear el fichero, escribiremos:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
htpasswd -c /usr/local/apache/passwd/passwords rbowen
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
htpasswd te preguntará por una contraseña, y después
|
|
Packit |
90a5c9 |
te pedirá que la vuelvas a escribir para confirmarla:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
$ htpasswd -c /usr/local/apache/passwd/passwords rbowen
|
|
Packit |
90a5c9 |
New password: mypassword
|
|
Packit |
90a5c9 |
Re-type new password: mypassword
|
|
Packit |
90a5c9 |
Adding password for user rbowen
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Si htpasswd no está en tu variable de entorno "path" del
|
|
Packit |
90a5c9 |
sistema, por supuesto deberás escribir la ruta absoluta del ejecutable para
|
|
Packit |
90a5c9 |
poder hacer que se ejecute. En una instalación por defecto, está en:
|
|
Packit |
90a5c9 |
/usr/local/apache2/bin/htpasswd
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Lo próximo que necesitas, será configurar el servidor para que pida una
|
|
Packit |
90a5c9 |
contraseña y así decirle al servidor que usuarios están autorizados a acceder.
|
|
Packit |
90a5c9 |
Puedes hacer esto ya sea editando el fichero httpd.conf
|
|
Packit |
90a5c9 |
de configuración o usando in fichero .htaccess . Por ejemplo,
|
|
Packit |
90a5c9 |
si quieres proteger el directorio
|
|
Packit |
90a5c9 |
/usr/local/apache/htdocs/secret , puedes usar las siguientes
|
|
Packit |
90a5c9 |
directivas, ya sea en el fichero .htaccess localizado en
|
|
Packit |
90a5c9 |
following directives, either placed in the file
|
|
Packit |
90a5c9 |
/usr/local/apache/htdocs/secret/.htaccess , o
|
|
Packit |
90a5c9 |
en la configuración global del servidor httpd.conf dentro de la
|
|
Packit |
90a5c9 |
sección <Directory
|
|
Packit |
90a5c9 |
"/usr/local/apache/htdocs/secret"> , como se muestra a continuación:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<Directory "/usr/local/apache/htdocs/secret">
|
|
Packit |
90a5c9 |
AuthType Basic
|
|
Packit |
90a5c9 |
AuthName "Restricted Files"
|
|
Packit |
90a5c9 |
# (Following line optional)
|
|
Packit |
90a5c9 |
AuthBasicProvider file
|
|
Packit |
90a5c9 |
AuthUserFile "/usr/local/apache/passwd/passwords"
|
|
Packit |
90a5c9 |
Require user rbowen
|
|
Packit |
90a5c9 |
</Directory>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Vamos a explicar cada una de las directivas individualmente.
|
|
Packit |
90a5c9 |
La directiva AuthType selecciona el método
|
|
Packit |
90a5c9 |
que se usa para autenticar al usuario. El método más común es
|
|
Packit |
90a5c9 |
Basic , y éste es el método que implementa
|
|
Packit |
90a5c9 |
mod_auth_basic . Es muy importante ser consciente,
|
|
Packit |
90a5c9 |
de que la autenticación básica, envía las contraseñas desde el cliente
|
|
Packit |
90a5c9 |
al servidor sin cifrar.
|
|
Packit |
90a5c9 |
Este método por tanto, no debe ser utilizado para proteger datos muy sensibles,
|
|
Packit |
90a5c9 |
a no ser que, este método de autenticación básica, sea acompañado del módulo
|
|
Packit |
90a5c9 |
mod_ssl .
|
|
Packit |
90a5c9 |
Apache soporta otro método más de autenticación que es del tipo
|
|
Packit |
90a5c9 |
AuthType Digest . Este método, es implementado por el módulo mod_auth_digest y con el se pretendía crear una autenticación más
|
|
Packit |
90a5c9 |
segura. Este ya no es el caso, ya que la conexión deberá realizarse con mod_ssl en su lugar.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
La directiva AuthName
|
|
Packit |
90a5c9 |
establece el <dfn>Realm</dfn> para ser usado en la autenticación. El
|
|
Packit |
90a5c9 |
<dfn>Realm</dfn> tiene dos funciones principales.
|
|
Packit |
90a5c9 |
La primera, el cliente presenta a menudo esta información al usuario como
|
|
Packit |
90a5c9 |
parte del cuadro de diálogo de contraseña. La segunda, que es utilizado por
|
|
Packit |
90a5c9 |
el cliente para determinar qué contraseña enviar a para una determinada zona
|
|
Packit |
90a5c9 |
de autenticación.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Así que, por ejemple, una vez que el cliente se ha autenticado en el área de
|
|
Packit |
90a5c9 |
los "Ficheros Restringidos" , entonces re-intentará automáticamente
|
|
Packit |
90a5c9 |
la misma contraseña para cualquier área en el mismo servidor que es marcado
|
|
Packit |
90a5c9 |
con el Realm de "Ficheros Restringidos"
|
|
Packit |
90a5c9 |
Por lo tanto, puedes prevenir que a un usuario se le pida mas de una vez por su
|
|
Packit |
90a5c9 |
contraseña, compartiendo así varias áreas restringidas el mismo Realm
|
|
Packit |
90a5c9 |
Por supuesto, por razones de seguridad, el cliente pedirá siempre por una contraseña,
|
|
Packit |
90a5c9 |
siempre y cuando el nombre del servidor cambie.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
La directiva AuthBasicProvider es,
|
|
Packit |
90a5c9 |
en este caso, opcional, ya que file es el valor por defecto
|
|
Packit |
90a5c9 |
para esta directiva. Deberás usar esta directiva si estas usando otro medio
|
|
Packit |
90a5c9 |
diferente para la autenticación, como por ejemplo
|
|
Packit |
90a5c9 |
mod_authn_dbm o mod_authn_dbd .
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
La directiva AuthUserFile
|
|
Packit |
90a5c9 |
establece el path al fichero de contraseñas que acabamos de crear con el
|
|
Packit |
90a5c9 |
comando htpasswd . Si tiene un número muy grande de usuarios,
|
|
Packit |
90a5c9 |
puede ser realmente lento el buscar el usuario en ese fichero de texto plano
|
|
Packit |
90a5c9 |
para autenticar a los usuarios en cada petición.
|
|
Packit |
90a5c9 |
Apache también tiene la habilidad de almacenar información de usuarios en
|
|
Packit |
90a5c9 |
unos ficheros de rápido acceso a modo de base de datos.
|
|
Packit |
90a5c9 |
El módulo mod_authn_dbm proporciona la directiva AuthDBMUserFile . Estos ficheros pueden ser creados y
|
|
Packit |
90a5c9 |
manipulados con el programa dbmmanage y htdbm .
|
|
Packit |
90a5c9 |
Muchos otros métodos de autenticación así como otras opciones, están disponibles en
|
|
Packit |
90a5c9 |
módulos de terceros
|
|
Packit |
90a5c9 |
Base de datos de Módulos disponibles.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Finalmente, la directiva Require
|
|
Packit |
90a5c9 |
proporciona la parte del proceso de autorización estableciendo el o los
|
|
Packit |
90a5c9 |
usuarios que se les está permitido acceder a una región del servidor.
|
|
Packit |
90a5c9 |
En la próxima sección, discutiremos las diferentes vías de utilizar la
|
|
Packit |
90a5c9 |
directiva Require .
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
entre
|
|
Packit |
90a5c9 |
Las directivas mencionadas arriba sólo permiten a una persona
|
|
Packit |
90a5c9 |
(especialmente con un usuario que en ej ejemplo es rbowen )
|
|
Packit |
90a5c9 |
en el directorio. En la mayoría de los casos, se querrá permitir el acceso
|
|
Packit |
90a5c9 |
a más de una persona. Aquí es donde la directiva
|
|
Packit |
90a5c9 |
AuthGroupFile entra en juego.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Si lo que se desea es permitir a más de una persona el acceso, necesitarás
|
|
Packit |
90a5c9 |
crear un archivo de grupo que asocie los nombres de grupos con el de personas
|
|
Packit |
90a5c9 |
para permitirles el acceso. El formato de este fichero es bastante sencillo,
|
|
Packit |
90a5c9 |
y puedes crearlo con tu editor de texto favorito. El contenido del fichero
|
|
Packit |
90a5c9 |
se parecerá a:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
GroupName: rbowen dpitts sungo rshersey
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Básicamente eso es la lista de miembros los cuales están en un mismo fichero
|
|
Packit |
90a5c9 |
de grupo en una sola linea separados por espacios.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Para añadir un usuario a tu fichero de contraseñas existente teclee:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
htpasswd /usr/local/apache/passwd/passwords dpitts
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Te responderá lo mismo que anteriormente, pero se añadirá al fichero
|
|
Packit |
90a5c9 |
existente en vez de crear uno nuevo. (Es decir el flag -c será
|
|
Packit |
90a5c9 |
el que haga que se genere un nuevo
|
|
Packit |
90a5c9 |
fichero de contraseñas).
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Ahora, tendrá que modificar su fichero .htaccess para que sea
|
|
Packit |
90a5c9 |
parecido a lo siguiente:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
AuthType Basic
|
|
Packit |
90a5c9 |
AuthName "By Invitation Only"
|
|
Packit |
90a5c9 |
# Optional line:
|
|
Packit |
90a5c9 |
AuthBasicProvider file
|
|
Packit |
90a5c9 |
AuthUserFile "/usr/local/apache/passwd/passwords"
|
|
Packit |
90a5c9 |
AuthGroupFile "/usr/local/apache/passwd/groups"
|
|
Packit |
90a5c9 |
Require group GroupName
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Ahora, cualquiera que esté listado en el grupo GroupName ,
|
|
Packit |
90a5c9 |
y tiene una entrada en el fichero de contraseñas , se les
|
|
Packit |
90a5c9 |
permitirá el acceso, si introducen su contraseña correctamente.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Hay otra manera de dejar entrar a varios usuarios, que es menos específica.
|
|
Packit |
90a5c9 |
En lugar de crear un archivo de grupo, sólo puede utilizar la siguiente
|
|
Packit |
90a5c9 |
directiva:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Require valid-user
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Usando ésto en vez de la línea Require user rbowen
|
|
Packit |
90a5c9 |
permitirá a cualquier persona acceder, la cuál aparece en el archivo de
|
|
Packit |
90a5c9 |
contraseñas, y que introduzca correctamente su contraseña. Incluso puede
|
|
Packit |
90a5c9 |
emular el comportamiento del grupo aquí, sólo manteniendo un fichero de
|
|
Packit |
90a5c9 |
contraseñas independiente para cada grupo. La ventaja de este enfoque es
|
|
Packit |
90a5c9 |
que Apache sólo tiene que comprobar un archivo, en lugar de dos. La desventaja
|
|
Packit |
90a5c9 |
es que se tiene que mantener un montón de ficheros de contraseña de grupo, y
|
|
Packit |
90a5c9 |
recuerde hacer referencia al fichero correcto en la directiva
|
|
Packit |
90a5c9 |
AuthUserFile .
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Debido a la forma en que se especifica la autenticación básica,
|
|
Packit |
90a5c9 |
su nombre de usuario y la contraseña deben ser verificados cada vez
|
|
Packit |
90a5c9 |
que se solicita un documento desde el servidor. Esto es, incluso si
|
|
Packit |
90a5c9 |
se vuelve a cargar la misma página, y para cada imagen de la página (si
|
|
Packit |
90a5c9 |
provienen de un directorio protegido). Como se puede imaginar, esto
|
|
Packit |
90a5c9 |
ralentiza las cosas un poco. La cantidad que ralentiza las cosas es
|
|
Packit |
90a5c9 |
proporcional al tamaño del archivo de contraseñas, porque tiene que
|
|
Packit |
90a5c9 |
abrir ese archivo, recorrer lista de usuarios hasta que llega a su nombre.
|
|
Packit |
90a5c9 |
Y tiene que hacer esto cada vez que se carga una página.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Una consecuencia de esto, es que hay un limite práctico de cuantos
|
|
Packit |
90a5c9 |
usuarios puedes introducir en el fichero de contraseñas. Este límite
|
|
Packit |
90a5c9 |
variará dependiendo de la máquina en la que tengas el servidor,
|
|
Packit |
90a5c9 |
pero puedes notar ralentizaciones en cuanto se metan cientos de entradas,
|
|
Packit |
90a5c9 |
y por lo tanto consideraremos entonces otro método de autenticación
|
|
Packit |
90a5c9 |
en ese momento.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
contraseñas
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Debido a que el almacenamiento de las contraseñas en texto plano tiene
|
|
Packit |
90a5c9 |
el problema mencionado anteriormente, puede que se prefiera guardar
|
|
Packit |
90a5c9 |
las contraseñas en otro lugar como por ejemplo una base de datos.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Los módulos mod_authn_dbm y mod_authn_dbd son
|
|
Packit |
90a5c9 |
dos módulos que hacen esto posible. En vez de seleccionar la directiva de fichero
|
|
Packit |
90a5c9 |
AuthBasicProvider , en su lugar
|
|
Packit |
90a5c9 |
se puede elegir dbm o dbd como formato de almacenamiento.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Para seleccionar los ficheros de tipo dbm en vez de texto plano, podremos hacer algo parecido a lo siguiente:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<Directory "/www/docs/private">
|
|
Packit |
90a5c9 |
AuthName "Private"
|
|
Packit |
90a5c9 |
AuthType Basic
|
|
Packit |
90a5c9 |
AuthBasicProvider dbm
|
|
Packit |
90a5c9 |
AuthDBMUserFile "/www/passwords/passwd.dbm"
|
|
Packit |
90a5c9 |
Require valid-user
|
|
Packit |
90a5c9 |
</Directory>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Hay otras opciones disponibles. Consulta la documentación de
|
|
Packit |
90a5c9 |
mod_authn_dbm para más detalles.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Con la introducción de la nueva autenticación basada en un proveedor y
|
|
Packit |
90a5c9 |
una arquitectura de autorización, ya no estaremos restringidos a un único
|
|
Packit |
90a5c9 |
método de autenticación o autorización. De hecho, cualquier número de
|
|
Packit |
90a5c9 |
los proveedores pueden ser mezclados y emparejados para ofrecerle
|
|
Packit |
90a5c9 |
exactamente el esquema que se adapte a sus necesidades.
|
|
Packit |
90a5c9 |
En el siguiente ejemplo, veremos como ambos proveedores tanto el fichero
|
|
Packit |
90a5c9 |
como el LDAP son usados en la autenticación:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<Directory "/www/docs/private">
|
|
Packit |
90a5c9 |
AuthName "Private"
|
|
Packit |
90a5c9 |
AuthType Basic
|
|
Packit |
90a5c9 |
AuthBasicProvider file ldap
|
|
Packit |
90a5c9 |
AuthUserFile "/usr/local/apache/passwd/passwords"
|
|
Packit |
90a5c9 |
AuthLDAPURL ldap://ldaphost/o=yourorg
|
|
Packit |
90a5c9 |
Require valid-user
|
|
Packit |
90a5c9 |
</Directory>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
En este ejemplo el fichero, que actúa como proveedor, intentará autenticar
|
|
Packit |
90a5c9 |
primero al usuario. Si no puede autenticar al usuario, el proveedor del LDAP
|
|
Packit |
90a5c9 |
será llamado para que realice la autenticación.
|
|
Packit |
90a5c9 |
Esto permite al ámbito de autenticación ser amplio, si su organización
|
|
Packit |
90a5c9 |
implementa más de un tipo de almacén de autenticación.
|
|
Packit |
90a5c9 |
Otros escenarios de autenticación y autorización pueden incluir la
|
|
Packit |
90a5c9 |
mezcla de un tipo de autenticación con un tipo diferente de autorización.
|
|
Packit |
90a5c9 |
Por ejemplo, autenticar contra un fichero de contraseñas pero autorizando
|
|
Packit |
90a5c9 |
dicho acceso mediante el directorio del LDAP.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Así como múltiples métodos y proveedores de autenticación pueden
|
|
Packit |
90a5c9 |
ser implementados, también pueden usarse múltiples formas de
|
|
Packit |
90a5c9 |
autorización.
|
|
Packit |
90a5c9 |
En este ejemplo ambos ficheros de autorización de grupo así como
|
|
Packit |
90a5c9 |
autorización de grupo mediante LDAP va a ser usado:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<Directory "/www/docs/private">
|
|
Packit |
90a5c9 |
AuthName "Private"
|
|
Packit |
90a5c9 |
AuthType Basic
|
|
Packit |
90a5c9 |
AuthBasicProvider file
|
|
Packit |
90a5c9 |
AuthUserFile "/usr/local/apache/passwd/passwords"
|
|
Packit |
90a5c9 |
AuthLDAPURL ldap://ldaphost/o=yourorg
|
|
Packit |
90a5c9 |
AuthGroupFile "/usr/local/apache/passwd/groups"
|
|
Packit |
90a5c9 |
Require group GroupName
|
|
Packit |
90a5c9 |
Require ldap-group cn=mygroup,o=yourorg
|
|
Packit |
90a5c9 |
</Directory>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Para llevar la autorización un poco más lejos, las directivas
|
|
Packit |
90a5c9 |
de autorización de contenedores tales como
|
|
Packit |
90a5c9 |
<RequireAll>
|
|
Packit |
90a5c9 |
and
|
|
Packit |
90a5c9 |
<RequireAny>
|
|
Packit |
90a5c9 |
nos permiten aplicar una lógica de en qué orden se manejará la autorización dependiendo
|
|
Packit |
90a5c9 |
de la configuración y controlada a través de ella.
|
|
Packit |
90a5c9 |
Mire también Contenedores de
|
|
Packit |
90a5c9 |
Autorización para ejemplos de cómo pueden ser aplicados.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
El modo en que la autorización puede ser aplicada es ahora mucho más flexible
|
|
Packit |
90a5c9 |
que us solo chequeo contra un almacén de datos (contraseñas). Ordenando la
|
|
Packit |
90a5c9 |
lógica y escoger la forma en que la autorización es realizada, ahora es posible
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Controlar el cómo y en qué orden se va a aplicar la autorización ha
|
|
Packit |
90a5c9 |
sido un misterio en el pasado. En Apache 2.2 un proveedor del
|
|
Packit |
90a5c9 |
mecanismo de autenticación fue introducido para disociar el proceso actual
|
|
Packit |
90a5c9 |
de autenticación y soportar funcionalidad.
|
|
Packit |
90a5c9 |
Uno de los beneficios secundarios fue que los proveedores de autenticación
|
|
Packit |
90a5c9 |
podían ser configurados y llamados en un orden especifico que no dependieran
|
|
Packit |
90a5c9 |
en el orden de carga del propio modulo.
|
|
Packit |
90a5c9 |
Este proveedor de dicho mecanismo, ha sido introducido en la autorización
|
|
Packit |
90a5c9 |
también. Lo que esto significa es que la directiva
|
|
Packit |
90a5c9 |
Require
|
|
Packit |
90a5c9 |
no sólo especifica que método de autorización deberá ser usado, si no
|
|
Packit |
90a5c9 |
también especifica el orden en que van a ser llamados. Múltiples
|
|
Packit |
90a5c9 |
métodos de autorización son llamados en el mismo orden en que la directiva
|
|
Packit |
90a5c9 |
Require aparece en la
|
|
Packit |
90a5c9 |
configuración.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Con la Introducción del contenedor de directivas de autorización tales como
|
|
Packit |
90a5c9 |
<RequireAll>
|
|
Packit |
90a5c9 |
y
|
|
Packit |
90a5c9 |
<RequireAny> ,
|
|
Packit |
90a5c9 |
La configuración también tiene control sobre cuándo se llaman a los métodos
|
|
Packit |
90a5c9 |
de autorización y qué criterios determinan cuándo se concede el acceso.
|
|
Packit |
90a5c9 |
Vease
|
|
Packit |
90a5c9 |
Contenedores de autorización
|
|
Packit |
90a5c9 |
Para un ejemplo de cómo pueden ser utilizados para expresar una lógica
|
|
Packit |
90a5c9 |
más compleja de autorización.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Por defecto todas las directivas
|
|
Packit |
90a5c9 |
Require
|
|
Packit |
90a5c9 |
son manejadas como si estuvieran contenidas en una directiva
|
|
Packit |
90a5c9 |
<RequireAny> .
|
|
Packit |
90a5c9 |
En otras palabras, Si alguno de los métodos de autorización
|
|
Packit |
90a5c9 |
especificados tiene éxito, se concede la autorización.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
el control de acceso
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
La autenticación de nombre de usuario y contraseña es sólo parte
|
|
Packit |
90a5c9 |
de toda la historia que conlleva el proceso. Frecuentemente quiere
|
|
Packit |
90a5c9 |
dar acceso a la gente en base a algo más que lo que son.
|
|
Packit |
90a5c9 |
Algo como de donde vienen.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Los proveedores de autorización all ,
|
|
Packit |
90a5c9 |
env , host y ip
|
|
Packit |
90a5c9 |
te permiten denegar o permitir el acceso basándose en otros
|
|
Packit |
90a5c9 |
criterios como el nombre de la máquina o la IP de la máquina que
|
|
Packit |
90a5c9 |
realiza la consulta para un documento.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
El uso de estos proveedores se especifica a través de la directiva
|
|
Packit |
90a5c9 |
Require .
|
|
Packit |
90a5c9 |
La directiva registra los proveedores de autorización que serán llamados
|
|
Packit |
90a5c9 |
durante la solicitud de la fase del proceso de autorización. Por ejemplo:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Require ip address
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Donde address es una dirección IP (o una dirección IP parcial)
|
|
Packit |
90a5c9 |
o bien:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Require host domain_name
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Donde domain_name es el nombre completamente cualificado de un nombre
|
|
Packit |
90a5c9 |
de dominio (FQDN) (o un nombre parcial del dominio);
|
|
Packit |
90a5c9 |
puede proporcionar múltiples direcciones o nombres de dominio, si se desea.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Por ejemplo, si alguien envía spam a su tablón de mensajes y desea
|
|
Packit |
90a5c9 |
mantenerlos alejados, podría hacer lo siguiente:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<RequireAll>
|
|
Packit |
90a5c9 |
Require all granted
|
|
Packit |
90a5c9 |
Require not ip 10.252.46.165
|
|
Packit |
90a5c9 |
</RequireAll>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Visitantes que vengan desde esa IP no serán capaces de ver el contenido
|
|
Packit |
90a5c9 |
que cubre esta directiva. Si, en cambio, lo que se tiene es el nombre de
|
|
Packit |
90a5c9 |
la máquina, en vez de la dirección IP, podría usar:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<RequireAll>
|
|
Packit |
90a5c9 |
Require all granted
|
|
Packit |
90a5c9 |
Require not host host.example.com
|
|
Packit |
90a5c9 |
</RequireAll>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Y, si lo que se quiere es bloquear el acceso desde un determinado dominio
|
|
Packit |
90a5c9 |
(bloquear el acceso desde el dominio entero), puede especificar parte
|
|
Packit |
90a5c9 |
de la dirección o del propio dominio a bloquear:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<RequireAll>
|
|
Packit |
90a5c9 |
Require all granted
|
|
Packit |
90a5c9 |
Require not ip 192.168.205
|
|
Packit |
90a5c9 |
Require not host phishers.example.com moreidiots.example
|
|
Packit |
90a5c9 |
Require not host ke
|
|
Packit |
90a5c9 |
</RequireAll>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Usando <RequireAll>
|
|
Packit |
90a5c9 |
con múltiples directivas <Require> , cada una negada con un not ,
|
|
Packit |
90a5c9 |
Sólo permitirá el acceso, si todas las condiciones negadas son verdaderas.
|
|
Packit |
90a5c9 |
En otras palabras, el acceso será bloqueado, si cualquiera de las condiciones
|
|
Packit |
90a5c9 |
negadas fallara.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
anteriores
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Uno de los efectos secundarios de adoptar proveedores basados en
|
|
Packit |
90a5c9 |
mecanismos de autenticación es que las directivas anteriores
|
|
Packit |
90a5c9 |
Order ,
|
|
Packit |
90a5c9 |
Allow ,
|
|
Packit |
90a5c9 |
Deny y
|
|
Packit |
90a5c9 |
Satisfy ya no son necesarias.
|
|
Packit |
90a5c9 |
Sin embargo, para proporcionar compatibilidad con configuraciones antiguas,
|
|
Packit |
90a5c9 |
estas directivas se han movido al módulo mod_access_compat .
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Nota:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Las directivas proporcionadas por mod_access_compat
|
|
Packit |
90a5c9 |
han quedado obsoletas por mod_authz_host . Mezclar
|
|
Packit |
90a5c9 |
directivas antiguas como
|
|
Packit |
90a5c9 |
Order ,
|
|
Packit |
90a5c9 |
Allow ó
|
|
Packit |
90a5c9 |
Deny con las nuevas
|
|
Packit |
90a5c9 |
como
|
|
Packit |
90a5c9 |
Require
|
|
Packit |
90a5c9 |
es técnicamente posible pero desaconsejable. El módulo
|
|
Packit |
90a5c9 |
mod_access_compat se creó para soportar configuraciones
|
|
Packit |
90a5c9 |
que contuvieran sólo directivas antiguas para facilitar la actualización
|
|
Packit |
90a5c9 |
a la versión 2.4.
|
|
Packit |
90a5c9 |
Por favor revise la documentación de
|
|
Packit |
90a5c9 |
actualización para más información al
|
|
Packit |
90a5c9 |
respecto.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Puede haber momentos en que la autenticación ponga una carga
|
|
Packit |
90a5c9 |
inaceptable en el proveedor (de autenticación) o en tu red.
|
|
Packit |
90a5c9 |
Esto suele afectar a los usuarios de mod_authn_dbd
|
|
Packit |
90a5c9 |
(u otros proveedores de terceros/personalizados).
|
|
Packit |
90a5c9 |
Para lidiar con este problema, HTTPD 2.3/2.4 introduce un nuevo proveedor
|
|
Packit |
90a5c9 |
de caché mod_authn_socache para cachear las credenciales
|
|
Packit |
90a5c9 |
y reducir la carga en el proveedor(es) original.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Esto puede ofrecer un aumento de rendimiento sustancial para algunos usuarios.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
También debería leer la documentación para
|
|
Packit |
90a5c9 |
mod_auth_basic y mod_authz_host
|
|
Packit |
90a5c9 |
la cuál contiene más información de como funciona todo esto.
|
|
Packit |
90a5c9 |
La directiva <AuthnProviderAlias> puede también ayudar
|
|
Packit |
90a5c9 |
a la hora de simplificar ciertas configuraciones de autenticación.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Los diferentes algoritmos de cifrado que están soportados por Apache
|
|
Packit |
90a5c9 |
para la autenticación se explican en
|
|
Packit |
90a5c9 |
Cifrado de Contraseñas.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Y tal vez quiera ojear la documentación de "how to"
|
|
Packit |
90a5c9 |
Control de Acceso donde se mencionan temas
|
|
Packit |
90a5c9 |
relacionados.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Idiomas disponibles: en |
|
|
Packit |
90a5c9 |
es |
|
|
Packit |
90a5c9 |
fr |
|
|
Packit |
90a5c9 |
ja |
|
|
Packit |
90a5c9 |
ko |
|
|
Packit |
90a5c9 |
tr
|
|
Packit |
90a5c9 |
Notice:This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.
|
|
Packit |
90a5c9 |
<script type="text/javascript">
|
|
Packit |
90a5c9 |
var comments_shortname = 'httpd';
|
|
Packit |
90a5c9 |
var comments_identifier = 'http://httpd.apache.org/docs/2.4/howto/auth.html';
|
|
Packit |
90a5c9 |
(function(w, d) {
|
|
Packit |
90a5c9 |
if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
|
|
Packit |
90a5c9 |
d.write('
|
|
Packit |
90a5c9 |
var s = d.createElement('script');
|
|
Packit |
90a5c9 |
s.type = 'text/javascript';
|
|
Packit |
90a5c9 |
s.async = true;
|
|
Packit |
90a5c9 |
s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
|
|
Packit |
90a5c9 |
(d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
else {
|
|
Packit |
90a5c9 |
d.write('
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
})(window, document);
|
|
Packit |
90a5c9 |
//--></script>
|
|
Packit |
90a5c9 |
Copyright 2018 The Apache Software Foundation. Licencia bajo los términos de la Apache License, Version 2.0.
|
|
Packit |
90a5c9 |
Módulos | Directivas | Preguntas Frecuentes | Glosario | Mapa del sitio web <script type="text/javascript">
|
|
Packit |
90a5c9 |
if (typeof(prettyPrint) !== 'undefined') {
|
|
Packit |
90a5c9 |
prettyPrint();
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
//--></script>
|
|
Packit |
90a5c9 |
</body></html>
|