Sintaxe do BindDN LDAP / ActiveDirectory

6

Estou solucionando problemas de um firewall de hardware baseado em Linux para um cliente. Esse firewall de hardware se conecta ao ActiveDirectory para autenticação Single SignOn.

O ActiveDirectory é largamente apenas uma versão pervertida do LDAP, ao melhor de meu conhecimento, e usa a mesma sintaxe do BindDN - corrija-me se estiver errado.

O cliente configurou isso como seu BindDN - as cadeias reais foram substituídas por motivos de privacidade, mas caracteres especiais e espaço em branco permanecem. "somerandomplace \ fubar fubaz"

Isso não parece ser uma sintaxe de BindDN válida para mim e já trabalhei com o LDAP antes, mas quando clicamos no botão Test para testar esse BindDN, o teste é bem-sucedido. Quando eu altero apenas um dos caracteres no BindDN e executo o teste novamente, o teste falha.

Estou tentando descobrir qual é o problema aqui:

A) Que eu não entendo completamente as nuances do BindND e da sintaxe associada

ou

B) Que o appliance não consegue verificar corretamente as entradas e está identificando falsamente o teste como um sucesso

    
por Guy 08.04.2013 / 21:07

3 respostas

11

O LDAP é apenas um protocolo. E como Greg disse, a implementação da Microsoft no Active Directory é compatível com os vários RFCs que o definem. (+1 para ele)

A resposta de Doug é parcialmente correta, pois ele dá um exemplo de um DN de Ligação válido. Mas o Active Directory permite especificamente que o valor do DN da ligação seja enviado como outros formulários também. A melhor forma de usar, na minha opinião, é o UserPrincipalName (UPN) , que geralmente está no seguinte formato, a menos que tenha sido explicitamente alterado.

O benefício disso em relação a um valor normal de DN é que a conta de usuário pode ser movida dentro do AD e o aplicativo que usa a credencial não precisa atualizar sua configuração.

Ele também pode estar no formulário NetBIOS herdado, que se parece com isso e parece ser o que seu cliente está usando.

  • < Nome NetBIOS do domínio > \ < sAMAccountName > (por exemplo, CONTOSO \ user1)

Isso tem o mesmo benefício que o valor UPN, mas novamente é considerado legado. Os nomes de NetBIOS devem ter morrido há muito tempo, mas isso é um discurso para outro tópico.

    
por 21.01.2014 / 09:28
2

O DN de ligação seria CN = username, CN = Usuários, DC = yourdomain, DC = com para um usuário localizado no container Users.

Ele pode funcionar se você simplesmente colocar o nome de usuário também, já que ele provavelmente pesquisará a propriedade sAMAccountname se o seu Active Directory estiver ciente. Apenas não prefira o nome de usuário com o domínio.

    
por 08.04.2013 / 22:09
1

A implementação LDAP da Microsoft é compatível. Qualquer caractere é válido em um DN. Se houver caracteres especiais, eles devem ser escapados. O espaço em branco não precisa ser salvo, a menos que esteja à frente ou à direita. Um caractere pode ser escapado com uma barra invertida ou com o equivalente hexadecimal \ nn.

Nomes distintos em link

space or # character at the beginning of a string    0x20
space character at the end of a string    0x20
,    comma    0x2C
+    plus sign    0x2B
"    double quote    0x22
\    backslash    0x5C
<    left angle bracket    0x3C
>    right angle bracket    0x3E
;    semicolon    0x3B
LF   line feed    0x0A
CR   carriage return    0x0D
=    equals sign    0x3D
/    forwards slash    0x2F 
    
por 08.04.2013 / 23:00