Apache2: define dos proveedores de autenticación que funcionen

Apache2: define dos proveedores de autenticación que funcionen

Quiero definir dos proveedores de autenticación diferentes en mi apache2 .htaccess en caso de que uno falle (el deseado es ldap pero quiero poder iniciar sesión incluso si ldap falla a través del archivo htpasswd local)

Lo intentéestepero no puedo hacerlo funcionar porque Apache se queja de un tipo de autenticación ya definido.

Si defino ambos tipos de autenticación dentro de mi site.conf, no puedo iniciar sesión a través del archivo htpasswd local, debido a la línea "Requerir", que garantiza que el grupo ldap correcto y el archivo local no puedan manejar esa regla, ya que solo necesita Require valid-user.

          Require ldap-group CN=admins,OU=Groups,OU=main,DC=my,DC=tld

Respuesta1

Si proporcionó tanto el proveedor de autenticación filecomo el ldapproveedor (mediante la AuthBasicProvider ldap filedirectiva), puede definir el siguiente conjunto de reglas para poder autenticarse desde ambos. Supongo que utiliza el uidatributo como nombre de usuario, pero si no, no debería ser demasiado difícil reescribir la condición siguiente.

<RequireAny>
    <RequireAll>
        Require valid-user
        Require ldap-group cn=admins,ou=groups,out=main,dc=my=dc=tld
    </RequireAll>
    <RequireAll>
        Require valid-user
        Require not ldap-attribute uid="%{REMOTE_USER}"
    </RequireAll>
</RequireAny>

Por lo tanto, el usuario se autentica si se cumple alguna de las siguientes condiciones:

  1. El usuario es válido y tiene la membresía del grupo LDAP adecuado. En este caso, el usuario debe haber sido autenticado por el ldapbackend.
  2. El uidatributo del usuario no coincide con el nombre de usuario proporcionado, pero el usuario es válido. Esto sólo puede suceder si el uidatributo no existe, pero si lo es, entonces el ldapproveedor no pudo encontrar al usuario en la base de datos LDAP. Entonces, en este caso, la validez de las credenciales del usuario ha sido determinada por el fileproveedor.

información relacionada