Saltar a contenido

auth-ldap: Módulo de Autenticación LDAP para NGINX

Instalación

Puedes instalar este módulo en cualquier distribución basada en RHEL, incluyendo, pero no limitado a:

  • RedHat Enterprise Linux 7, 8, 9 y 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 y Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-auth-ldap
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-auth-ldap

Habilita el módulo añadiendo lo siguiente en la parte superior de /etc/nginx/nginx.conf:

load_module modules/ngx_http_auth_ldap_module.so;

Este documento describe nginx-module-auth-ldap v0.3 lanzado el 28 de mayo de 2020.


Módulo LDAP para nginx que soporta autenticación contra múltiples servidores LDAP.

Ejemplo de configuración

Define la lista de tus servidores LDAP con los requisitos de usuario/grupo necesarios:

    http {
      ldap_server test1 {
        url ldap://192.168.0.1:3268/DC=test,DC=local?sAMAccountName?sub?(objectClass=person);
        binddn "TEST\\LDAPUSER";
        binddn_passwd LDAPPASSWORD;
        group_attribute uniquemember;
        group_attribute_is_dn on;
        require valid_user;
      }

      ldap_server test2 {
        url ldap://192.168.0.2:3268/DC=test,DC=local?sAMAccountName?sub?(objectClass=person);
        binddn "TEST\\LDAPUSER";
        binddn_passwd LDAPPASSWORD;
        group_attribute uniquemember;
        group_attribute_is_dn on;
        require valid_user;
      }
    }

Y añade los servidores requeridos en el orden correcto en tu directiva de ubicación/servidor:

    server {
        listen       8000;
        server_name  localhost;

        auth_ldap "Forbidden";
        auth_ldap_servers test1;
        auth_ldap_servers test2;

        location / {
            root   html;
            index  index.html index.htm;
        }

    }

Parámetros de configuración disponibles

url

valor esperado: cadena

Esquemas de URL disponibles: ldap://, ldaps://

binddn

valor esperado: cadena

binddn_passwd

valor esperado: cadena

group_attribute

valor esperado: cadena

group_attribute_is_dn

valor esperado: on o off, por defecto off

require

valor esperado: valid_user, user, group

satisfy

valor esperado: all, any

max_down_retries

valor esperado: un número, por defecto 0

Conteo de reintentos para intentar reconectar a un servidor LDAP si se considera "DOWN". Esto puede suceder si una conexión KEEP-ALIVE a un servidor LDAP se agota o es terminada por el servidor después de un tiempo.

Esto puede ayudar generalmente con el siguiente error:

http_auth_ldap: ldap_result() failed (-1: Can't contact LDAP server)

connections

valor esperado: un número mayor que 0

ssl_check_cert

valor esperado: on o off, por defecto off

Verifica el certificado remoto para conexiones LDAPs. Si está deshabilitado, cualquier certificado remoto será aceptado, lo que te expone a posibles ataques de hombre en el medio. Ten en cuenta que el certificado del servidor deberá estar firmado por una CA adecuada confiable por tu sistema si esto está habilitado. Consulta a continuación cómo confiar en CAs sin instalarlas a nivel del sistema.

Esta opción necesita OpenSSL >= 1.0.2; no está disponible si se compila con versiones anteriores.

ssl_ca_file

valor esperado: ruta de archivo

Confía en el certificado CA en este archivo (ver ssl_check_cert arriba).

ssl_ca_dir

valor esperado: ruta de directorio

Confía en todos los certificados CA en este directorio (ver ssl_check_cert arriba).

Ten en cuenta que necesitas proporcionar enlaces simbólicos basados en hash en el directorio para que esto funcione; básicamente necesitarás ejecutar el comando c_rehash de OpenSSL en este directorio.

referral

valor esperado: on, off

El valor predeterminado de la biblioteca LDAP es on. Esta opción desactiva el uso de mensajes de referencia del servidor LDAP. Útil para autenticar contra un servidor AD de solo lectura sin acceso a escritura.

GitHub

Puedes encontrar consejos de configuración adicionales y documentación para este módulo en el repositorio de GitHub para nginx-module-auth-ldap.