mod_auth_basic Autenticación HTTP Básica Base mod_auth_basic.c auth_basic_module

Este módulo permite el uso de Autenticación HTTP Básica para restringir acceso buscando usuarios en los proveedores configurados. La autenticación HTTP Digest la facilita el módulo mod_auth_digest. Este módulo debería combinarse generalmente con al menos un módulo de autenticación como mod_authn_file y uno de autorización como mod_authz_user.

AuthName AuthType Require Authentication howto AuthBasicProvider Configura el/los proveedor/es de autenticación para esta ubicación AuthBasicProvider provider-name [provider-name] ... AuthBasicProvider file directory.htaccess AuthConfig

La directiva AuthBasicProvider configura qué proveedor se usa para autenticar los usuarios en esta ubicación. El fichero proveedor por defecto se implementa con el módulo mod_authn_file. Asegúrese de que el proveedor elegido está presente en el servidor.

Ejemplo <Location "/secure"> AuthType basic AuthName "private area" AuthBasicProvider dbm AuthDBMType SDBM AuthDBMUserFile "/www/etc/dbmpasswd" Require valid-user </Location>

Se consulta a los proveedores en orden hasta que un proveedor encuentra una coincidencia para el nombre de usuario solicitado, y en este punto solo este proveedor intentará comprobar la contraseña. Un fallo al verificar la contraseña no provoca que el control se pase a los proveedores subsiguientes.

Los proveedores son implementados por mod_authn_dbm, mod_authn_file, mod_authn_dbd, mod_authnz_ldap y mod_authn_socache.

AuthBasicAuthoritative Configura si se pasan autorización o autenticación a los módulos de más bajo nivel AuthBasicAuthoritative On|Off AuthBasicAuthoritative On directory.htaccess AuthConfig

Normalmente, cada módulo de autorización listado en AuthBasicProvider intentará vefificar el usuario y si el usuario no se encuentra en ningún proveedor, el acceso será denegado. Configurando la directiva AuthBasicAuthoritative de forma explícita a Off permite que ambos autenticación y autorización sean pasados a otros módulos no-proveedores si no hay ID de usuario o regla coincidente para el ID de usario facilitado. Esto solo sería necesario cuando se combina mod_auth_basic con módulos de terceros que no están configurados con la directiva AuthBasicProvider. Cuando se usan tales módulos, el orden de procesamiento se determina en el código fuente de los módulos y no es configurable.

AuthBasicFake Autenticación básica falsa usando las expresiones facilitadas para usario y contraseña AuthBasicFake off|username [password] none directory.htaccess AuthConfig Apache HTTP Server 2.4.5 y posteriores

El usuario y contraseña especificados se combinan en una cabecera de Autorización, que se pasa al servidor o servicio detrás del servidor web. Ambos cambios usuario y contraseña son interpretrados usando el intérprete de expresión, que permite que tanto el usuario como la contraseña se basen en los parámetros solicitados.

Si la contraseña no se especifica, se utilizará el valor por defecto "password". Para desahabilitar la autenticación básica falsa para una URL, especifique "AuthBasicFake off".

En este ejemplo, enviamos un usuario y contraseña fijos a un servidor backend.

Fixed Example <Location "/demo"> AuthBasicFake demo demopass </Location>

En este ejemplo, pasamos la dirección de email extraida de un certificado cliente, extendiendo la opción de funcionalidad de FakeBasicAuth dentro de la directiva SSLOptions. Como con la opción FakeBasicAuth, la contraseña se configura a la cadena de caracteres específica "password".

Ejemplo de Certificado <Location "/secure"> AuthBasicFake "%{SSL_CLIENT_S_DN_Email}" </Location>

Extendiendo el ejemplo de arriba, generamos una contraseña encriptando la dirección email con una contraseña fija, y pasando el resultado encriptado al servidor de backend. Este método se puede usar como puerta de acceso a sistemas antiguos que no dan soporte a certificados cliente.

Ejemplo de Contraseña <Location "/secure"> AuthBasicFake "%{SSL_CLIENT_S_DN_Email}" "%{sha1:passphrase-%{SSL_CLIENT_S_DN_Email}}" </Location> Ejemplo de Exclusión <Location "/public"> AuthBasicFake off </Location>
AuthBasicUseDigestAlgorithm Comprueba contraseñas en proveedores de autenticación como si la Autenticación Digest estuviera en uso en lugar de la Autenticación Básica. AuthBasicUseDigestAlgorithm MD5|Off AuthBasicUseDigestAlgorithm Off directory.htaccess AuthConfig Apache HTTP Server 2.4.7 y posteriores

Normalmente, cuando se usa Autenticación Básica, los proveedores listados en AuthBasicProvider intentan verificar un usuario comprobando sus almacenes de datos para encontrar una coincidencia de nombre de usuario y contraseña asociados. Las contraseñas almacenadas generalmente están encriptadas, pero no necesariamente; cada proveedor puede usar su propio esquema de almacenamiento para contraseñas.

Cuando se usa AuthDigestProvider y Autenticación Digest, los proveedores realizan una comprobación similar para encontrar un nombre de usuario en sus almacenes de datos. Sin embargo, al contrario que en el caso de la Autenticación Básica, el valor asociado con cada nombre de usuario almacenado debe ser una cadena de caracteres encriptada compuesta del nombre de usuario, nombre real y contraseña. (Vea el RFC 2617, Sección 3.2.2.2 para más detalles en el formato usado para la cadena de caracteres encriptada.)

Como consecuencia de la diferencia entre los valores almacenados entre la Autenticación Básica y la Digest, convertir desde Autenticación Digest a Autenticación Básica generalmente requiere que a todos los usuarios se les asigne nuevas contraseñas, puesto que sus contraseñas actuales no pueden ser recuperadas desde el esquema de almacenamiento de contraseñas impuesto en esos proveedores que soportan la Autenticación Digest.

Configurando la directiva AuthBasicUseDigestAlgorithm a MD5 hará que se compruebe la contraseña del usuario de Autenticación Básica usando el mismo formato encriptado que para Autenticación Digest. Primero una cadena de caracteres que se compone del nombre de usuario, nombre real y contraseña es encriptada con MD5; entonces el usuario y esta cadena de caracteres encriptada se pasan a los proveedores listados en AuthBasicProvider como si AuthType fuera configurado como Digest y como si se estuviera usando la Autenticación Digest.

A través del uso de AuthBasicUseDigestAlgorithm un sitio puede pasar de Autenticación Digest a Básica sin requerir que a los usuarios se les asignen contraseñas nuevas.

El método inverso de cambiar de Autenticación Básica a Digest sin asignar nuevas contraseñas generalmente no es posible. Solo si las contraseñas de la Autenticación Básica se han almacenado en texto plano o con un esquema de encriptación reversible sería posible recuperarlas y generar un nuevo almacén de datos siguiendo el esquema de almacenamiento de contraseñas de Autenticación Digest. Solo proveedores que dan soporte a Autenticación Digest podrán autenticar usuarios cuando AuthBasicUseDigestAlgorithm está configurada a MD5. El uso de otros proveedores dará como resultado una respuesta de error y se denegará el acceso al cliente.