<-
Apache > Servidor HTTP > Documentacin > How-To / Tutoriales

Autenticacin y Autorizacin 522oc

Idiomas disponibles: tr

Esta traduccin podra estar obsoleta. Consulte la versin en ingls de la documentacin para comprobar si se han producido cambios recientemente.

Autenticacin es cualquier proceso por el cul se verifica que uno es quien dice ser. Autorizacin es cualquier proceso en el cul cualquiera est permitido a estar donde se quiera, o tener informacin la cul se quiera tener.

Para informacin de control de de forma genrica visiteHow to de Control de .

 Apache!

Consulte tambin 382u41

top

Mdulos y Directivas Relacionados 2q1u18

Hay tres tipos de mdulos involucrados en los procesos de la autenticacin y autorizacin. Normalmente debers escoger al menos un mdulo de cada grupo.

A parte de stos mdulos, tambin estn mod_authz_core. stos mdulos implementan las directivas esenciales que son el centro de todos los mdulos de autenticacin.

El mdulo mod_access_compat.

Tambin puedes mirar el how-to de Control de , donde se plantean varias formas del control de al servidor.

top

Introduccin 4w406i

Si se tiene informacin en nuestra pgina web que sea informacin sensible o pensada para un grupo reducido de s/personas, las tcnicas que se describen en este manual, le servirn de ayuda para asegurarse de que las personas que ven esas pginas sean las personas que uno quiere.

Este artculo cubre la parte "estndar" de cmo proteger partes de un sitio web que muchos usarn.

Nota: 3u4a1h

Si de verdad es necesario que tus datos estn en un sitio seguro, considera usar mod_ssl como mtodo de autenticacin adicional a cualquier forma de autenticacin.

top

Los Prerequisitos 3am3p

Las directivas que se usan en este artculo necesitaran ponerse ya sea en el fichero de configuracin principal del servidor ( tpicamente en la seccin <Directory> de apache2.conf ), o en cada uno de los ficheros de configuraciones del propio directorio (los archivos .htaccess).

Si planea usar los ficheros .htaccess , necesitars tener en la configuracin global del servidor, una configuracin que permita poner directivas de autenticacin 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 configuracin por directorio.

Ya que estamos hablando aqu de autenticacin, necesitars una directiva AllowOverride como la siguiente:

AllowOverride AuthConfig

O, si solo se van a poner las directivas directamente en la configuracin principal del servidor, debers tener, claro est, permisos de escritura en el archivo.

Y necesitars saber un poco de como est estructurado el rbol de directorios de tu servidor, para poder saber donde se encuentran algunos archivos. Esto no debera ser una tarea difcil, an as intentaremos dejarlo claro llegado el momento de comentar dicho aspecto.

Tambin debers de asegurarte de que los mdulos mod_authz_core han sido incorporados, o aadidos a la hora de compilar en tu binario httpd o cargados mediante el archivo de configuracin apache2.conf. Estos dos mdulos proporcionan directivas bsicas y funcionalidades que son crticas para la configuracin y uso de autenticacin y autorizacin en el servidor web.

top

Conseguir que funcione 1326

Aqu est lo bsico de cmo proteger con contrasea un directorio en tu servidor.

Primero, necesitars crear un fichero de contrasea. Dependiendo de que proveedor de autenticacin se haya elegido, se har de una forma u otra. Para empezar, usaremos un fichero de contrasea de tipo texto.

Este fichero deber estar en un sitio que no se pueda tener desde la web. Esto tambin implica que nadie pueda descargarse el fichero de contraseas. Por ejemplo, si tus documentos estn guardados fuera de /usr/local/apache/htdocs, querrs poner tu archivo de contraseas en /usr/local/apache/wd.

Para crear el fichero de contraseas, usa la utilidad htwd 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 ejecucin.

Para crear el fichero, escribiremos:

htwd -c /usr/local/apache/wd/s rbowen

htwd te preguntar por una contrasea, y despus te pedir que la vuelvas a escribir para confirmarla:

$ htwd -c /usr/local/apache/wd/s rbowen
New : my
Re-type new : my
Adding for rbowen

Si htwd no est en tu variable de entorno "path" del sistema, por supuesto debers escribir la ruta absoluta del ejecutable para poder hacer que se ejecute. En una instalacin por defecto, est en: /usr/local/apache2/bin/htwd

Lo prximo que necesitas, ser configurar el servidor para que pida una contrasea y as decirle al servidor que s estn autorizados a acceder. Puedes hacer esto ya sea editando el fichero apache2.conf de configuracin 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 configuracin global del servidor apache2.conf dentro de la seccin <Directory "/usr/local/apache/htdocs/secret"> , como se muestra a continuacin:

<Directory "/usr/local/apache/htdocs/secret">
AuthType Basic
AuthName "Restricted Files"
# (Following line optional)
AuthBasirovider file
AuthFile "/usr/local/apache/wd/s"
Require  rbowen
</Directory>

Vamos a explicar cada una de las directivas individualmente. La directiva mod_ssl en su lugar.

La directiva AuthName establece el Realm para ser usado en la autenticacin. El Realm tiene dos funciones principales. La primera, el cliente presenta a menudo esta informacin al como parte del cuadro de dilogo de contrasea. La segunda, que es utilizado por el cliente para determinar qu contrasea enviar a para una determinada zona de autenticacin.

As que, por ejemple, una vez que el cliente se ha autenticado en el rea de los "Ficheros Restringidos", entonces re-intentar automticamente la misma contrasea para cualquier rea en el mismo servidor que es marcado con el Realm de "Ficheros Restringidos" Por lo tanto, puedes prevenir que a un se le pida mas de una vez por su contrasea, compartiendo as varias reas restringidas el mismo Realm Por supuesto, por razones de seguridad, el cliente pedir siempre por una contrasea, siempre y cuando el nombre del servidor cambie.

La directiva mod_authn_dbd.

La directiva htdbm. Muchos otros mtodos de autenticacin as como otras opciones, estn disponibles en mdulos de terceros Base de datos de Mdulos disponibles.

Finalmente, la directiva Require.

top

Dejar que ms de una persona entre 2s4u54

Las directivas mencionadas arriba slo permiten a una persona (especialmente con un que en ej ejemplo es rbowen) en el directorio. En la mayora de los casos, se querr permitir el a ms de una persona. Aqu es donde la directiva AuthGroupFile entra en juego.

Si lo que se desea es permitir a ms de una persona el , necesitars crear un archivo de grupo que asocie los nombres de grupos con el de personas para permitirles el . El formato de este fichero es bastante sencillo, y puedes crearlo con tu editor de texto favorito. El contenido del fichero se parecer a:

GroupName: rbowen dpitts sungo rshersey

Bsicamente eso es la lista de los cuales estn en un mismo fichero de grupo en una sola linea separados por espacios.

Para aadir un a tu fichero de contraseas existente teclee:

htwd /usr/local/apache/wd/s dpitts

Te responder lo mismo que anteriormente, pero se aadir al fichero existente en vez de crear uno nuevo. (Es decir el flag -c ser el que haga que se genere un nuevo fichero de contraseas).

Ahora, tendr que modificar su fichero .htaccess para que sea parecido a lo siguiente:

AuthType Basic
AuthName "By Invitation Only"
# Optional line:
AuthBasirovider file
AuthFile "/usr/local/apache/wd/s"
AuthGroupFile "/usr/local/apache/wd/groups"
Require group GroupName

Ahora, cualquiera que est listado en el grupo GroupName, y tiene una entrada en el fichero de contraseas, se les permitir el , si introducen su contrasea correctamente.

Hay otra manera de dejar entrar a varios s, que es menos especfica. En lugar de crear un archivo de grupo, slo puede utilizar la siguiente directiva:

Require valid-

Usando sto en vez de la lnea Require rbowen permitir a cualquier persona acceder, la cul aparece en el archivo de contraseas, y que introduzca correctamente su contrasea. Incluso puede emular el comportamiento del grupo aqu, slo manteniendo un fichero de contraseas independiente para cada grupo. La ventaja de este enfoque es que Apache slo tiene que comprobar un archivo, en lugar de dos. La desventaja es que se tiene que mantener un montn de ficheros de contrasea de grupo, y recuerde hacer referencia al fichero correcto en la directiva AuthFile.

top

Posibles Problemas 6j446r

Debido a la forma en que se especifica la autenticacin bsica, su nombre de y la contrasea deben ser verificados cada vez que se solicita un documento desde el servidor. Esto es, incluso si se vuelve a cargar la misma pgina, y para cada imagen de la pgina (si provienen de un directorio protegido). Como se puede imaginar, esto ralentiza las cosas un poco. La cantidad que ralentiza las cosas es proporcional al tamao del archivo de contraseas, porque tiene que abrir ese archivo, recorrerlista de s hasta que llega a su nombre. Y tiene que hacer esto cada vez que se carga una pgina.

Una consecuencia de esto, es que hay un limite prctico de cuantos s puedes introducir en el fichero de contraseas. Este lmite variar dependiendo de la mquina en la que tengas el servidor, pero puedes notar ralentizaciones en cuanto se metan cientos de entradas, y por lo tanto consideraremos entonces otro mtodo de autenticacin en ese momento.

top

Mtodo alternativo de almacenamiento de las contraseas 3gb4c

Debido a que el almacenamiento de las contraseas en texto plano tiene el problema mencionado anteriormente, puede que se prefiera guardar las contraseas en otro lugar como por ejemplo una base de datos.

Los mdulos AuthBasirovider , en su lugar se puede elegir dbm o dbd como formato de almacenamiento.

Para seleccionar los ficheros de tipo dbm en vez de texto plano, podremos hacer algo parecido a lo siguiente:

<Directory "/www/docs/private">
    AuthName "Private"
    AuthType Basic
    AuthBasirovider dbm
    AuthDBMFile "/www/s/wd.dbm"
    Require valid-
</Directory>

Hay otras opciones disponibles. Consulta la documentacin de mod_authn_dbm para ms detalles.

top

Uso de mltiples proveedores 69441e

Con la introduccin de la nueva autenticacin basada en un proveedor y una arquitectura de autorizacin, ya no estaremos restringidos a un nico mtodo de autenticacin o autorizacin. De hecho, cualquier nmero de los proveedores pueden ser mezclados y emparejados para ofrecerle exactamente el esquema que se adapte a sus necesidades. En el siguiente ejemplo, veremos como ambos proveedores tanto el fichero como el LDAP son usados en la autenticacin:

<Directory "/www/docs/private">
    AuthName "Private"
    AuthType Basic
    AuthBasirovider file ldap
    AuthFile "/usr/local/apache/wd/s"
    AuthLDAPURL ldap://ldaphost/o=yourorg
    Require valid-
</Directory>

En este ejemplo el fichero, que acta como proveedor, intentar autenticar primero al . Si no puede autenticar al , el proveedor del LDAP ser llamado para que realice la autenticacin. Esto permite al mbito de autenticacin ser amplio, si su organizacin implementa ms de un tipo de almacn de autenticacin. Otros escenarios de autenticacin y autorizacin pueden incluir la mezcla de un tipo de autenticacin con un tipo diferente de autorizacin. Por ejemplo, autenticar contra un fichero de contraseas pero autorizando dicho mediante el directorio del LDAP.

As como mltiples mtodos y proveedores de autenticacin pueden ser implementados, tambin pueden usarse mltiples formas de autorizacin. En este ejemplo ambos ficheros de autorizacin de grupo as como autorizacin de grupo mediante LDAP va a ser usado:

<Directory "/www/docs/private">
    AuthName "Private"
    AuthType Basic
    AuthBasirovider file
    AuthFile "/usr/local/apache/wd/s"
    AuthLDAPURL ldap://ldaphost/o=yourorg
    AuthGroupFile "/usr/local/apache/wd/groups"
    Require group GroupName
    Require ldap-group cn=mygroup,o=yourorg
</Directory>

Para llevar la autorizacin un poco ms lejos, las directivas de autorizacin de contenedores tales como Contenedores de Autorizacin para ejemplos de cmo pueden ser aplicados.

top

Ms all de la Autorizacin 444a5f

El modo en que la autorizacin puede ser aplicada es ahora mucho ms flexible que us solo chequeo contra un almacn de datos (contraseas). Ordenando la lgica y escoger la forma en que la autorizacin es realizada, ahora es posible

Aplicando la lgica y ordenacin 585z6g

Controlar el cmo y en qu orden se va a aplicar la autorizacin ha sido un misterio en el pasado. En Apache 2.2 un proveedor del mecanismo de autenticacin fue introducido para disociar el proceso actual de autenticacin y soportar funcionalidad. Uno de los beneficios secundarios fue que los proveedores de autenticacin podan ser configurados y llamados en un orden especifico que no dependieran en el orden de carga del propio modulo. Este proveedor de dicho mecanismo, ha sido introducido en la autorizacin tambin. Lo que esto significa es que la directiva Require aparece en la configuracin.

Con la Introduccin del contenedor de directivas de autorizacin tales como Contenedores de autorizacin Para un ejemplo de cmo pueden ser utilizados para expresar una lgica ms compleja de autorizacin.

Por defecto todas las directivas <RequireAny>. En otras palabras, Si alguno de los mtodos de autorizacin especificados tiene xito, se concede la autorizacin.

Uso de los proveedores de autorizacin para el control de 4f2a30

La autenticacin de nombre de y contrasea es slo parte de toda la historia que conlleva el proceso. Frecuentemente quiere dar a la gente en base a algo ms que lo que son. Algo como de donde vienen.

Los proveedores de autorizacin all, env, host y ip te permiten denegar o permitir el basndose en otros criterios como el nombre de la mquina o la IP de la mquina que realiza la consulta para un documento.

El uso de estos proveedores se especifica a travs de la directiva Require. La directiva registra los proveedores de autorizacin que sern llamados durante la solicitud de la fase del proceso de autorizacin. Por ejemplo:

Require ip address
        

Donde address es una direccin IP (o una direccin IP parcial) o bien:

Require host domain_name
        

Donde domain_name es el nombre completamente cualificado de un nombre de dominio (FQDN) (o un nombre parcial del dominio); puede proporcionar mltiples direcciones o nombres de dominio, si se desea.

Por ejemplo, si alguien enva spam a su tabln de mensajes y desea mantenerlos alejados, podra hacer lo siguiente:

<RequireAll>
    Require all granted
    Require not ip 10.252.46.165
</RequireAll>

Visitantes que vengan desde esa IP no sern capaces de ver el contenido que cubre esta directiva. Si, en cambio, lo que se tiene es el nombre de la mquina, en vez de la direccin IP, podra usar:

<RequireAll>
    Require all granted
    Require not host host.example.com
</RequireAll>

Y, si lo que se quiere es bloquear el desde un determinado dominio (bloquear el desde el dominio entero), puede especificar parte de la direccin o del propio dominio a bloquear:

<RequireAll>
    Require all granted
    Require not ip 192.168.205
    Require not host phishers.example.com moreidiots.example
    Require not host ke
</RequireAll>

Usando <Require>, cada una negada con un not, Slo permitir el , si todas las condiciones negadas son verdaderas. En otras palabras, el ser bloqueado, si cualquiera de las condiciones negadas fallara.

Compatibilidad de Control de con versiones anteriores 94m4z

Uno de los efectos secundarios de adoptar proveedores basados en mecanismos de autenticacin es que las directivas anteriores mod_access_compat.

Nota: 3u4a1h

Las directivas proporcionadas por actualizacin para ms informacin al respecto.

top

Cache de Autenticacin 6z4943

Puede haber momentos en que la autenticacin ponga una carga inaceptable en el proveedor (de autenticacin) o en tu red. Esto suele afectar a los s de mod_authn_socache para cachear las credenciales y reducir la carga en el proveedor(es) original.

Esto puede ofrecer un aumento de rendimiento sustancial para algunos s.

top

Ms informacin 666r5r

Tambin debera leer la documentacin para <AuthnProviderAlias> puede tambin ayudar a la hora de simplificar ciertas configuraciones de autenticacin.

Los diferentes algoritmos de cifrado que estn soportados por Apache para la autenticacin se explican en Cifrado de Contraseas.

Y tal vez quiera ojear la documentacin de "how to" Control de donde se mencionan temas relacionados.

Idiomas disponibles: tr

top

Comentarios 3f6r1x

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 by our s 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 Libera.chat, or sent to our mailing lists.