openldap sizelimit. Não é possível receber mais de 500 entradas

2

Eu não posso receber mais de 500 entradas, quando eu consultar meu servidor openldap.

Embora eu tenha feito as seguintes alterações:

slapd.conf

    # This is the main slapd configuration file. See slapd.conf(5) for more
    # info on the configuration options.

    #######################################################################
    # Global Directives:       
    .....

     # The maximum number of entries that is returned for a search operation
    sizelimit 10000

ldap.conf

#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

#BASE   dc=example,dc=com
#URI    ldap://ldap.example.com ldap://ldap-master.example.com:666

SIZELIMIT       10000
#TIMELIMIT      15
#DEREF          never

# TLS certificates (needed for GnuTLS)
TLS_CACERT      /etc/ssl/certs/ca-certificates.crt

Depois de reiniciar em minha máquina, e consulte o seguinte comando:

ldapsearch -x -h localhost -b "dc=XXX,dc=XXX,dc=XXX"

Eu recebo:

# search result
search: 2
result: 4 Size limit exceeded

# numResponses: 501
# numEntries: 500

Eu senti falta de algumas mudanças necessárias?

    
por JMAD2016 09.02.2017 / 13:03

2 respostas

6

O limite de pesquisa do OpenLDAP pode ser definido no lado do servidor ou no lado do cliente.

1. Lado do servidor na seção de banco de dados do slapd.conf (estilo antigo     configuração obsoleta mas usável em aço) ou cn = config     (recomendado)

Globalmente por banco de dados:

slapd.conf

sizelimit <numberOfMaxResult>

cn = config

olcSizeLimit: <numberOfMaxResult>

Este parâmetro não é obrigatório, o padrão é 500 .

Por usuário:

slapd.conf

limits <Who> size=<numberOfMaxResult>

cn = config

olcLimits: <Who> size=<numberOfMaxResult>

Em todos os casos

Quem pode ser:

* : all

anonymous : usuário não conectado

users : todos os usuários conectados

dn.exact="cn=xxxx,ou=people... : um usuário

group/groupOfNames/member="cn=managers,ou=groups... : grupo de usuários

numberOfMaxResult pode ser:

unlimited : tamanho ilimitado, é uma péssima ideia usar essa configuração na produção

number (like 300) : número de registros máximos de resultados.

Se o tamanho do limite global e por usuário for feito, por limite de usuário será aplicado .

2. Lado do cliente

no arquivo de configuração do cliente ldap.conf:

SIZELIMIT <numberOfMaxResult>

Parâmetro de solicitação

ldapsearch -z 10 ... limit result a 10

Toda a API do cliente deve fornecer esse parâmetro.

Se o tamanho do lado do servidor e do lado do cliente for feito, O menor número será aplicado .

Este é um resumo curto , para mais informações neste tópico:

man slapd.conf
man slapd-config

Limita a configuração no guia do Administrador do OpenLDAP .

    
por 11.02.2017 / 09:55
0

Se você solicitar um grande conjunto de resultados para um Active Directory (AD), receberá uma mensagem de erro "limite de tamanho excedido": as procuras do Active Directory executadas sem paginação estão limitadas a retornar no máximo os primeiros 1000 registros.

Uma maneira de contornar esse limite de tamanho de pesquisa é obter "páginas" de resultados, também por meio do ldapsearch.

O Ldapsearch fornece a opção '-E' que permite realizar pesquisas paginadas.

Podemos solicitar todos os itens de um grande conjunto de resultados simplesmente fornecendo a política de paginação correta.

Por exemplo, podemos usar -E e fornecer um valor de pr = 1000 / noprompt para retornar todas as páginas, com 1000 itens de resultado por página, sem mais interação do usuário (noprompt).

ldapsearch -E pr=1000/noprompt -x
          -h adhost.domain.com
          -p 389
          -D  cn=administrator,cn=users,dc=domain,dc=com
          -w password
          -s sub -b  "OU=Users,DC=domain,DC=com"
          "(objectClass=user)" dn
    
por 03.07.2018 / 13:46