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:
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:
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:
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.logAcho que é só.
0 Comentários:
Postar um comentário
<< Home