Descripción: Autenticación HTTP básica
Estado: Base
ModuleIdentifier: auth_basic_module
Archivo fuente: mod_auth_basic.c
Compatibilidad: Disponible en Apache 2.1 y posterior

Resumen

Este módulo permite el uso de la autenticación básica HTTP para restringir el acceso mediante la búsqueda de usuarios en los proveedores dados. La autenticación HTTP Digest es proporcionada por mod_auth_digest. Este módulo generalmente debe combinarse con al menos un módulo de autenticación como mod_authn_file y un módulo de autorización como mod_authz_user.

Directiva AuthBasicAuthoritative

Descripción: Establece si la autorización y la autenticación se pasan a módulos de nivel inferior.
Sintaxis:
AuthBasicAuthoritative On|Off
Defecto:
AuthBasicAuthoritative On
Contexto: directorio, .htaccess
Anular: AuthConfig
Estado: Base
Módulo: mod_auth_basic

Normalmente, cada módulo de autorización enumerado en AuthBasicProvider intentará verificar al usuario, y si el usuario no se encuentra en ningún proveedor, se denegará el acceso. Establecer el AuthBasicAuthoritative directiva explícitamente para Off permite que tanto la autenticación como la autorización se transmitan a otros módulos no basados ​​en proveedores si hay sin ID de usuario o regla que coincida con el ID de usuario proporcionado. Esto solo debería ser necesario al combinar mod_auth_basic con módulos de terceros que no están configurados con el AuthBasicProvider directiva. Cuando se utilizan dichos módulos, el orden de procesamiento se determina en el código fuente de los módulos y no es configurable.

Directiva AuthBasicFake

Descripción: Autenticación básica falsa usando las expresiones dadas para nombre de usuario y contraseña
Sintaxis:
AuthBasicFake off|username [password]
Defecto: none
Contexto: directorio, .htaccess
Anular: AuthConfig
Estado: Base
Módulo: mod_auth_basic
Compatibilidad: Servidor HTTP Apache 2.4.5 y posterior

El nombre de usuario y la contraseña especificados se combinan en un encabezado de autorización, que se pasa al servidor o servicio detrás del servidor web. Los campos de nombre de usuario y contraseña se interpretan utilizando el analizador de expresiones, que permite establecer tanto el nombre de usuario como la contraseña en función de los parámetros de la solicitud.

Si no se especifica la contraseña, se utilizará el valor predeterminado “contraseña”. Para deshabilitar la autenticación básica falsa para un espacio URL, especifique “AuthBasicFake off”.

En este ejemplo, pasamos un nombre de usuario y una contraseña fijos a un servidor backend.

Ejemplo fijo


    AuthBasicFake demo demopass

En este ejemplo, pasamos la dirección de correo electrónico extraída de un certificado de cliente, ampliando la funcionalidad de la opción FakeBasicAuth dentro del SSLOptions directiva. Al igual que la opción FakeBasicAuth, la contraseña se establece en la fija string “contraseña”.

Ejemplo de certificado


    AuthBasicFake "%SSL_CLIENT_S_DN_Email"

Ampliando el ejemplo anterior, generamos una contraseña aplicando un hash a la dirección de correo electrónico con una frase de contraseña fija y pasando el hash al servidor backend. Esto se puede utilizar para acceder a sistemas heredados que no admiten certificados de cliente.

Ejemplo de contraseña


    AuthBasicFake "%SSL_CLIENT_S_DN_Email" "%sha1:passphrase-%SSL_CLIENT_S_DN_Email"

Ejemplo de exclusión


    AuthBasicFake off

Directiva AuthBasicProvider

Descripción: Establece los proveedores de autenticación para esta ubicación
Sintaxis:
AuthBasicProvider provider-name [provider-name] ...
Defecto:
AuthBasicProvider file
Contexto: directorio, .htaccess
Anular: AuthConfig
Estado: Base
Módulo: mod_auth_basic

los AuthBasicProvider La directiva establece qué proveedor se utiliza para autenticar a los usuarios para esta ubicación. El valor por defecto file proveedor es implementado por el mod_authn_file módulo. Asegúrese de que el módulo de proveedor elegido esté presente en el servidor.

Ejemplo


    AuthType basic
    AuthName "private area"
    AuthBasicProvider  dbm
    AuthDBMType        SDBM
    AuthDBMUserFile    "/www/etc/dbmpasswd"
    Require            valid-user

Se consulta a los proveedores en orden hasta que un proveedor encuentra una coincidencia para el nombre de usuario solicitado, momento en el que este único proveedor intentará verificar la contraseña. El hecho de no verificar la contraseña no implica que el control se transfiera a los proveedores posteriores.

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

Directiva AuthBasicUseDigestAlgorithm

Descripción: Verifique las contraseñas con los proveedores de autenticación como si estuviera vigente la autenticación implícita en lugar de la autenticación básica.
Sintaxis:
AuthBasicUseDigestAlgorithm MD5|Off
Defecto:
AuthBasicUseDigestAlgorithm Off
Contexto: directorio, .htaccess
Anular: AuthConfig
Estado: Base
Módulo: mod_auth_basic
Compatibilidad: Servidor HTTP Apache 2.4.7 y posterior

Normalmente, cuando se utiliza la autenticación básica, los proveedores enumerados en AuthBasicProvider Intente verificar a un usuario comprobando sus almacenes de datos para un nombre de usuario y contraseña asociados coincidentes. Las contraseñas almacenadas suelen estar cifradas, pero no necesariamente; cada proveedor puede elegir su propio esquema de almacenamiento de contraseñas.

Cuando usas AuthDigestProvider y autenticación implícita, los proveedores realizan una verificación similar para encontrar un nombre de usuario coincidente en sus almacenes de datos. Sin embargo, a diferencia del caso de la autenticación básica, el valor asociado con cada nombre de usuario almacenado debe ser un string compuesto por el nombre de usuario, el nombre de dominio y la contraseña. (Ver RFC 2617, Sección 3.2.2.2 para obtener más detalles sobre el formato utilizado para este cifrado string.)

Como consecuencia de la diferencia en los valores almacenados entre la autenticación básica y la autenticación implícita, la conversión de la autenticación implícita a la autenticación básica generalmente requiere que a todos los usuarios se les asignen nuevas contraseñas, ya que sus contraseñas existentes no se pueden recuperar del esquema de almacenamiento de contraseñas impuesto a aquellos proveedores que admite la autenticación implícita.

Establecer el AuthBasicUseDigestAlgorithm directiva para MD5 hará que la contraseña de autenticación básica del usuario se verifique utilizando el mismo formato cifrado que para la autenticación implícita. Primero un string compuesto a partir del nombre de usuario, el nombre del reino y la contraseña con hash con MD5; luego el nombre de usuario y este cifrado string se pasan a los proveedores enumerados en AuthBasicProvider como si AuthType estaba configurado para Digest y la autenticación implícita estaba en vigor.

Mediante el uso de AuthBasicUseDigestAlgorithm un sitio puede cambiar de autenticación implícita a básica sin requerir que se asignen nuevas contraseñas a los usuarios.

El proceso inverso de cambiar de autenticación básica a autenticación implícita sin asignar nuevas contraseñas generalmente no es posible. Solo si las contraseñas de autenticación básica se han almacenado en texto plano o con un esquema de cifrado reversible, será posible recuperarlas y generar un nuevo almacén de datos siguiendo el esquema de almacenamiento de contraseñas de autenticación implícita. Solo los proveedores que admiten la autenticación implícita podrán autenticar a los usuarios cuando AuthBasicUseDigestAlgorithm se establece en MD5. El uso de otros proveedores resultará en una respuesta de error y se le negará el acceso al cliente.