autenticação usando o openldap com o apache 2.4

2
Estou tentando fazer restringir o acesso a uma pasta usando um usuário ldap autenticado, isso costumava trabalhar com o apache no ubunbt 14.04, no entanto, agora estou tentando me 16.04, no entanto, não funciona, eu recebo AH1618 usuário não encontrado erros, tenho certeza de que é algo simples:)

os usuários estão neste "domínio" ou=Users,dc=ldap,dc=kattronics,dc=com

Ao acessar a página da Web, recebo uma solicitação para a senha, o que é bom, mas recebo esse erro.

[auth_basic:error] [pid 10821] [client 10.0.5.167:58662] AH01618: user lasse.knudsen not found: /

Talvez haja uma pista na barra final

A depuração está habilitada para o apache2

AH01694: auth_ldap authenticate: user lasse.knudsen authentication failed; URI / [LDAP: ldap_simple_bind() failed][Can't contact LDAP server] (not authoritative)

O cant contato do servidor LDAP, quebra-me, o host resolve.

Qualquer pessoa que possa me apontar na direção certa.

Entrada de diretório da configuração do site do apache

<Directory /var/www/html>
  AuthName "Restricted - Kattronics Users Only"
  AuthType Basic
  #Satisfy any
  AuthBasicProvider ldap
  AuthLDAPUrl "ldaps://dc2-ldap001:636/ou=Users,dc=ldap,dc=kattronics,dc=com?uid"
  AuthLDAPBindDN "ou=Users,dc=ldap,dc=kattronics,dc=com"
  AuthLDAPBindAuthoritative off
  AuthLDAPGroupAttribute memberUid
  AuthLDAPGroupAttributeIsDN off
  #Require valid-user
  Require ldap-user # Gives error AH01618
</Directory>

Solução alternativa abaixo

 <IfModule mod_authnz_external.c>
  AddExternalAuth pwauth /usr/sbin/pwauth
  SetExternalAuthMethod pwauth pipe
 </IfModule>

<Directory /var/www/html>
                         AuthType Basic
                         AuthName "Login"
                         AuthBasicProvider external
                         AuthExternal pwauth
                         Require valid-user

                </Directory>
    
por LHK 02.05.2017 / 11:02

1 resposta

1

A maioria dos servidores LDAP exige que você autentique antes de poder solicitar informações úteis sobre o diretório. No jargão LDAP, a conexão é chamada para " bind " para o servidor de diretório.

Isso significa que o Apache precisará ser configurado com um nome de usuário e senha. O nome de usuário precisa ser o Nome Distinto completo que inclui o caminho completo no diretório em que ele está armazenado e seu AuthLDAPBindDN precisa ser parecido com:

AuthLDAPBindDN "CN=apache,OU=Service Accounts,DC=example,DC=com"

e você provavelmente precisa de um AuthLDAPBindPassword (de preferência um que nunca expira) também:

AuthLDAPBindPassword  y0ur_p@ssw0rd

Um segundo problema ao usar uma conexão LDAP segura com TLS / SSL é que o Apache precisará verificar a autenticidade do certificado do servidor usado pelo servidor LDAP. Normalmente, eu esperaria que um servidor LDAP não usasse um certificado emitido por uma das CAs públicas bem conhecidas, mas sim uma emitida por uma CA interna. Faça o download do certificado de CA para seu servidor da Web e carregue-o com a diretiva LDAPTrustedGlobalCert , ou seja

LDAPTrustedGlobalCert type directory-path/filename [password]

Como uma solução alternativa insegura, use a diretiva LDAPVerifyServerCert e não verifique o certificado do servidor:

LDAPVerifyServerCert          off
    
por 02.05.2017 / 16:21