Onde o MSAD LDAP armazena as credenciais usadas para autenticar usuários?

1

Eu posso procurar os detalhes do usuário de um diretório LDAP existente usando um DN de ligação e uma senha de ligação. Não consigo encontrar nenhuma entrada armazenando a senha do usuário. É possível que os atributos de senha estejam ocultos da conta de ligação que usei para conectar-me ao LDAP do MSAD? Se não, o LDAP armazena as senhas separadamente em outro lugar?

Eu planejo configurar meu aplicativo para autenticar usuários com base nesse LDAP.

    
por Kent Pawar 16.05.2013 / 10:05

2 respostas

1

I plan to configure my application to authenticate users based on this LDAP.

A maneira correta de autenticar a conta do ldap é simplesmente tentar vincular o servidor ldap com os credenciais. Para alguns servidores, você precisa fornecer o nome distinto completo com base no login. Então você precisará configurar uma conta para procurar o DN com algum outro identificador.

Where are the credentials stored.

A maioria dos servidores armazena um hash em um atributo chamado 'senha'. Mas as ACLs são definidas neste atributo para que ninguém possa lê-lo. A Microsoft simplesmente não permite a leitura do hash da senha por meio do LDAP como um recurso de segurança. Só pode ser definido através de uma ligação LDAPS, isto é, LDAP em SSL. Configurar janelas para suportar o LDAPS requer a criação de uma CA ou a compra de certificados.

    
por 16.05.2013 / 11:03
1

Em geral, embora os atributos possam parecer atributos em qualquer sistema LDAP, o atributo de senha é quase sempre um caso especial. Talvez seja restrito pelo servidor LDAP como um caso especial. Talvez o ACL o proteja. Talvez seja escrito, mas não legível.

Geralmente existem vários atributos de senha (o AD possui unicodePassword e userPassword) e depende do tipo que deve ser usado. O Novell / NetIQ eDirectory possui userPassword, que depende de como você está configurado, quanto ao valor abaixo dele (pares de chaves RSA, nspmPassword ou a senha simples, que é um caso ainda mais estranho que um atributo simples, pois é armazenado em partes em vários atributos)

Alguns servidores LDAP permitem vincular um valor com hash, que corresponde ao valor armazenado em hash e o valor com hash pode ser recuperável, mas não reversível.

Mas a chave é, não importa. Como cada servidor LDAP é diferente, você precisa usar a abordagem de padrões para senhas LDAP, que é tentar e Vincular como um usuário com o DN e a senha fornecidos. E se eles não fornecerem um DN, faça uma pesquisa por uid = nome de usuário ou cn = nome de usuário ou qualquer que seja seu atributo de nomeação, para localizar o DN completo.

Finalmente, esteja ciente de que o padrão LDAP diz que uma ligação com uma senha em branco será bem-sucedida, mas como uma conexão anônima. Então, você precisa ter certeza de que as senhas que você permite não estão em branco, senão você terá uma ligação bem-sucedida e, possivelmente, deixará alguém entrar inadvertidamente.

    
por 31.07.2013 / 02:09