Pular para conteúdo

auth-ldap: Módulo de Autenticação LDAP para NGINX

Instalação

Você pode instalar este módulo em qualquer distribuição baseada em RHEL, incluindo, mas não se limitando a:

  • RedHat Enterprise Linux 7, 8, 9 e 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 e 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

Ative o módulo adicionando o seguinte no topo de /etc/nginx/nginx.conf:

load_module modules/ngx_http_auth_ldap_module.so;

Este documento descreve o nginx-module-auth-ldap v0.3 lançado em 28 de maio de 2020.


Módulo LDAP para nginx que suporta autenticação contra múltiplos servidores LDAP.

Exemplo de configuração

Defina a lista de seus servidores LDAP com os requisitos de usuário/grupo necessários:

    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;
      }
    }

E adicione os servidores necessários na ordem correta em sua diretiva de localização/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 configuração disponíveis

url

valor esperado: string

Esquemas de URL disponíveis: ldap://, ldaps://

binddn

valor esperado: string

binddn_passwd

valor esperado: string

group_attribute

valor esperado: string

group_attribute_is_dn

valor esperado: on ou off, padrão off

require

valor esperado: valid_user, user, group

satisfy

valor esperado: all, any

max_down_retries

valor esperado: um número, padrão 0

Contagem de tentativas para tentar reconectar a um servidor LDAP se ele for considerado "DOWN". Isso pode acontecer se uma conexão KEEP-ALIVE com um servidor LDAP expirar ou for encerrada pelo servidor após algum tempo.

Isso geralmente pode ajudar com o seguinte erro:

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

connections

valor esperado: um número maior que 0

ssl_check_cert

valor esperado: on ou off, padrão off

Verifique o certificado remoto para conexões LDAPs. Se desativado, qualquer certificado remoto será aceito, o que expõe você a possíveis ataques de man-in-the-middle. Observe que o certificado do servidor precisará ser assinado por uma CA adequada confiável pelo seu sistema se isso estiver habilitado. Veja abaixo como confiar em CAs sem instalá-las globalmente no sistema.

Esta opção requer OpenSSL >= 1.0.2; não está disponível se compilada com versões mais antigas.

ssl_ca_file

valor esperado: caminho do arquivo

Confie no certificado CA neste arquivo (veja ssl_check_cert acima).

ssl_ca_dir

valor esperado: caminho do diretório

Confie em todos os certificados CA neste diretório (veja ssl_check_cert acima).

Observe que você precisa fornecer links simbólicos baseados em hash no diretório para que isso funcione; basicamente, você precisará executar o comando c_rehash do OpenSSL neste diretório.

referral

valor esperado: on, off

O padrão da biblioteca LDAP é on. Esta opção desativa o uso de mensagens de referência do servidor LDAP. Útil para autenticar contra um servidor AD somente leitura sem acesso para leitura e gravação.

GitHub

Você pode encontrar dicas adicionais de configuração e documentação para este módulo no repositório do GitHub para nginx-module-auth-ldap.