
Tenho uma pergunta sobre o Openldap. Estou usando uma solução (PingFederate) que obtém erros do openldap para fazer coisas diferentes dependendo do filtro. Por exemplo, posso dizer: detecte o erro de DN inválido e, quando o conseguir, faça alguma coisa.
Eu configurei olcPPolicyUseLockout como true em ppolicy para obter mais informações quando houver credenciais inválidas; para que o Pingfederate o detectasse. Mas não funciona
Quando uso o ldapwhoami com -e ppolicy recebo o seguinte: ldap_bind: Credenciais inválidas (49); Senha expirada ldap_bind: Credenciais inválidas (49); Conta bloqueada
Então minha pergunta é a seguinte: O que significa ponto e vírgula no Openldap? A mensagem após o ponto e vírgula é levada em consideração? O Openldap comunica todo o erro às outras soluções com as quais está integrado?
Responder1
Primeiro, observe que as ferramentas de linha de comando do OpenLDAP geram alguma representação textual do código de resultado e da mensagem de diagnóstico que não é a codificação exata do protocolo on-the-wire.
As PDUs LDAP são mensagens codificadas em ASN.1. Para entender a estrutura da resposta, você pode examinarSeção 4.1.9 da RFC 4511. Para observar PDUs LDAP realmente enviadas por componentes LDAP, o dissecador LDAP no Wireshark é muito útil.
Principalmente a sobreposição do OpenLDAPpolítica de tapaimplementosdraft-behera-ldap-password-policy-09. Este rascunho da Internet especifica os chamados controles estendidos, tanto para solicitações quanto para respostas, que estendem a semântica do protocolo da operação de ligação.
Isso significa que cada cliente LDAP com reconhecimento de política precisa 1. enviar ocontrole de solicitação de política de senhae 2. decodificar e interpretar ocontrole de resposta.
Veja tambémcódigo de demonstração python-ldapcomo um exemplo.