MAL - Memória Auxiliar do Lutieri

quarta-feira, abril 04, 2007

Autenticando o Apache no AD do w2k

Buenos dias!

Estou montando a rede da empresa no nagios, uma ferramenta de monitoramento de rede bastante interessante. Precisei fazer a autenticação pra acessar o Nagios. Sendo que todos usuários possuem uma conta no Active Directory, seria mais interessante se esse login, o do Nagios, pudesse ser feito utilizando esses usuários e senhas já existentes. Sem a necessidade de manter mais uma base de usuários/senhas e fazer os usuário lembrarem de mais uma senha. Enfim: Viva a integração.

Falando em integração logo lembramos de serviços de diretório, logo lembramos de LDAP. Pois bem o que eu decidi fazer foi, nada mais que, utilizar o usuário que já existe cadastrado no AD do windows para logar no Nagios.

Bem na verdade quem faz a parte de autenticação é o Apache. O nagios apenas aproveita esse login efetuado para dar permissões e etc...

Comecemos:

É necessário ter compilado e carregado suporte a LDAP no apache. Partirei do ponto em que acredito que isso já esteja feito.

1º passo: Carregar os módulos LDAP no apache. Adicionei a seguinte configuração no httpd.conf

LoadModule ldap_module /usr/lib/apache2/modules/mod_ldap.so
LoadModule auth_ldap_module /usr/lib/apache2/modules/mod_auth_ldap.so

2º passo: Criar a configuração no diretório que deve ter autenticação. Eu prefiro criar um arquivo .htaccess e fazer a configuração nele. O meu ficou assim:

AuthType Basic
AuthName "Acesso ao Nagios"

# DN of Active Directory server
#sAMAccountName = login do usuario

AuthLDAPUrl "ldap://ADServer/DC=dominio,DC=com,DC=br?sAMAccountName?sub?(objectClass=*)"


##OBS: optional DN used to bind to the server when searching for entries. If not provided, mod_auth_ldap will use an anonymous bind.

# An account in the AD that has enough permissions to perform an LDAP search
#Case Insensitive

AuthLDAPBindDN "CN=Lutieri G. B.,OU=XYZ Ltda,OU=Consultorias/Terceiros,OU=Users,OU=SEDE,DC=dominio,DC=com,DC=br"

#ou

#The following would also be valid, although not truly LDAP compliant
#AuthLDAPBindDN lutierib@dominio.com.br

#ou

#Nao funcionou -> AuthLDAPBindDN dominio.com.br\\lutierib

#Senha da Conta acima
AuthLDAPBindPassword 123456



# When checking for group membership, use the DN of the user, not the HTTP entry

AuthLDAPGroupAttributeIsDN on

require valid-user

#require group OU=XYZ Ltda,DC=dominio,DC=com,DC=br

#ou

#require user lutierib



No arquivo acima temos AuthLDAPBindDN. Indica um usuário comum que será usado para consultar o AD. É um usuário com privilégios mínimos. Na documentação do Apache diz que se não for especificado será executada a consulta como anônimo. E pra mim funcionou como anônimo. ;-)

AuthLDAPBindPassword é a senha da conta especificada em AuthLDAPBind.

Nas últimas opções de require podem ser especificados usuários ou membros de uma OU(Unidade organizacional) que podem ter acesso a essa página. Os demais não serão aceitos. Se você deseja aceitar qualquer usuário válido é só usar:

require valid-user

AuthLDAPUrl especifica o servidor, o domínio e o atributo que vai ser utilizado para fazer a busca no AD. Nesse caso estamos utilizando o atributo sAMAccountName que é o nome do usuário. Isso que dizer que quando for solicitada a autenticação deve ser informado o nome de usuário e senha.

Caso você queira que faça-se o login atráves do sobrenome, por exemplo, procura o atributo correspondente aqui: http://www.computerperformance.co.uk/Logon/LDAP_attributes_active_directory.htm

Caso tenha dúvida sobre alguma das opções usadas no arquivo .htaccess acima você pode olhar a documentação do módulo em:



Utilizei como base um howto que encontra-se aqui e baseia-se no uso de grupos :

Autenticação no nagios está aqui:

Se não está funcionando o login olhe os logs:
tail -f /var/log/apache2/error.log
Acho que é só.

Marcadores: , , ,

0 Comentários:

Postar um comentário

<< Home



Chat with Lutieri G. B.

Subscribe in a reader