Blame docs/manual/howto/auth.html.es

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 / Tutoriales

Autenticació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
    top
    Packit 90a5c9
    Packit 90a5c9

    Módulos y Directivas Relacionados

    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
            top
            Packit 90a5c9
            Packit 90a5c9

            Introducción

            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
            top
            Packit 90a5c9
            Packit 90a5c9

            Los Prerequisitos

            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
            top
            Packit 90a5c9
            Packit 90a5c9

            Conseguir que funcione

            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
            top
            Packit 90a5c9
            Packit 90a5c9

            Dejar que más de una persona

            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
            top
            Packit 90a5c9
            Packit 90a5c9

            Posibles Problemas

            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
            top
            Packit 90a5c9
            Packit 90a5c9

            Método alternativo de almacenamiento de las

            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
            top
            Packit 90a5c9
            Packit 90a5c9

            Uso de múltiples proveedores

            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
            top
            Packit 90a5c9
            Packit 90a5c9

            Más allá de la Autorización

            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
                

            Aplicando la lógica y ordenación

            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
                

            Uso de los proveedores de autorización para

            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
                

            Compatibilidad de Control de Acceso con versiones

            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
            	
            top
            Packit 90a5c9
            Packit 90a5c9

            Cache de Autenticación

            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
            top
            Packit 90a5c9
            Packit 90a5c9

            Más información

            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
            top

            Comentarios

            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('
            <\/div>');
            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('
            Comments are disabled for this page at the moment.<\/div>');
            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>