LDAP e pam sem acesso restrito e anônimo

4

Estou trabalhando em uma grande empresa e posso usar seu servidor LDAP central somente leitura remotamente. O servidor LDAP não não permite a vinculação anônima. Para usar este servidor para autenticação dos usuários no meu pequeno servidor com um módulo pam, eu preciso de uma conta que expõe os dados no LDAP para mim. Os dados da conta são normalmente preenchidos nos campos binddn e bindpw da configuração. Como eu entendi módulo pam normalmente logins com binddn e bindpw , em seguida, realiza uma pesquisa e depois ligar para cada usuário que está disposto a fazer o login.

Os administradores do servidor, no entanto, não gostam de expor todos os dados para mim. Então minha pergunta é:

Como posso configurar o pam sem a conta binddn? Idealmente, um vínculo direto para cada usuário deve ser executado sem login anterior com a conta binddn.

    
por Roman B. 25.07.2012 / 10:46

3 respostas

2

O problema é que a autenticação do usuário no UNIX funciona com uma string de nome de usuário simples, como 'usera'.

O LDAP não funciona assim, mas precisa de um nome de usuário completo DN, como uid=mruser,cn=users,dc=ibm,dc=com .

Portanto, o motivo pelo qual você precisa permitir a ligação anônima ou ter um binddn válido é para que o sistema de autenticação possa ser vinculado ao servidor LDAP e executar uma pesquisa para traduzir usera - > %código%. Sem essa habilidade, não saberia com que testar a senha no diretório.

É normal que os administradores LDAP não queiram permitir a vinculação anônima, mas devem ser capazes de criar um usuário específico para você, o qual só permite acessar os detalhes específicos necessários para que a autenticação LDAP funcione no UNIX. ie. acesso somente leitura nas áreas de usuário e grupo da hierarquia LDAP.

Você não menciona de que SO está falando, mas lembre-se de que o PAM é para autenticação - você também precisa ter o serviço NSS para resolver nomes de usuários e userids. Dependendo da implementação, isso pode ser uma parte diferente do trabalho de configuração que você precisa fazer.

    
por 25.07.2012 / 19:22
2

Eu não consegui descobrir uma maneira de fazer isso com os módulos pré-existentes do PAM, então eu escrevi um. Apenas suporta autenticação simples no momento. Certifique-se de incluir um parâmetro de modelo uri e binddn da seguinte forma:

auth    sufficient    pam_ldapdb.so uri=ldap://example.com binddn=uid=%s,dc=example,dc=com

% s será substituído pelo usuário que se conecta.

Isso requer g ++, pam devel e ldap devel. Ele foi testado no CentOS 6 e 7, 64 bits.

link

    
por 16.07.2015 / 20:01
1

Acho que entendo o que você quer fazer, o que eu acho que é:

  1. Um usuário apresenta credenciais para você para validação.

  2. Em vez de vincular ao servidor LDAP por meio de acesso anônimo ou com um conjunto padrão de credenciais de ligação, você deseja usar as credenciais que lhe são apresentadas pelo usuário, cada vez, para autenticar no servidor LDAP em para solicitar a validação dessas credenciais.

É isso?

Nesse caso, para que isso faça sentido, as credenciais de cada usuário devem ser válidas LDAP somente para autenticar suas próprias credenciais; caso contrário, você poderia executar a pesquisa ampla claramente temida com o primeiro conjunto de credenciais apresentadas. E se os administradores do servidor LDAP puderem vincular o escopo de um conjunto de credenciais, eles deverão ser capazes de fornecer um conjunto padrão de credenciais de vinculação válidas apenas para realizar pesquisas em relação aos usuários autorizados. veja.

Você vê meu ponto? Se os administradores do servidor LDAP forem bons no escopo das pesquisas que as credenciais podem fazer, eles terão as habilidades necessárias para fornecer um conjunto adequado de credenciais de vinculação. E se eles não são tão bons, não há nenhum ponto em pedir que você faça o que eles querem, porque você já possui credenciais poderosas o suficiente para fazer o que eles não querem que você faça.

As duas formas padrão de acessar um servidor LDAP são (1) anonimamente e (2) usando um conjunto de credenciais emitidas pelos administradores do servidor, que são adequadas apenas para fazer o que você precisa que elas façam. Se os administradores do servidor não gostarem de (1), o trabalho deles é fornecer credenciais adequadas para fazer (2).

    
por 25.07.2012 / 12:25