Grupos de usuários Apache mod_auth_kerb e LDAP

12

Estou pensando mod_auth_kerbem implantar em nossos servidores web internos para ativar o SSO. O único problema óbvio que vejo é que é uma abordagem do tipo tudo ou nada, pois todos os usuários do seu domínio podem acessar um site ou não.

É possível combinar mod_auth_kerbcom algo como mod_authnz_ldapverificar se há membros de um grupo específico no LDAP? Eu estou supondo que a KrbAuthoritativeopção teria algo a ver com isso?

Além disso, pelo que entendi, o módulo define o nome de usuário para ser username@REALMapós a autenticação, mas é claro que no diretório os usuários são armazenados apenas como o nome de usuário. Além disso, alguns sites internos que executamos, como o trac, já têm um perfil de usuário vinculado a cada nome de usuário. Existe uma maneira de resolver isso, talvez retirando o bit do domínio após a autenticação de alguma forma?

Kamil Kisiel
fonte
Apenas uma pergunta sobre implementação, você está usando um ADS do Windows para o domínio kerberos ou alguma outra implementação?
214 Jeremy Bouse
OpenDirectory da Apple que vem com MIT Kerberos v5
Kamil Kisiel
Ok ... Não trabalhei com o OpenDirectory da Apple antes. Consegui fazer o Apache se autenticar usando NTLM no Windows ADS usando suas credenciais de estação de trabalho e depois restringindo a grupos específicos.
214 Jeremy Bouse
Sem remover a região do nome de usuário, você pode usar um atributo alternativo na consulta LDAP para procurar a entidade do usuário, por exemplo, o atributo "userPrincipalName" no Ms ActiveDirectory.
Yves Martin

Respostas:

13

Agora é possível no mod_auth_kerb 5.4 retirar a região de REMOTE_USER com a seguinte diretiva de configuração:

KrbLocalUserMapping On

estirro
fonte
Uau, parece que isso foi lançado em 2008, mas nenhuma menção a ele (a versão ou o parâmetro) em seu site.
21411 Kamil Kisiel
7

É o ponto principal da separação authn / authz na 2.2 que você pode autenticar com um mecanismo e autorizar com outro. A autenticação fornece uma configuração de REMOTE_USER, na qual você pode usar o authz_ldap. Além disso, authn_ldap procura um usuário (convertendo REMOTE_USER em um DN, se encontrado, usando os critérios de pesquisa que você precisa especificar - por exemplo, pesquisando por CN). Em seguida, quando um DN for encontrado, você poderá especificar os requisitos no objeto LDAP. Por exemplo, se todos os usuários que acessam um recurso devem estar na mesma UO, você especifica

require ldap-dn ou = Gerentes, o = A empresa

Martin v. Löwis
fonte
É possível modificar a variável REMOTE_USER antes de passar para o estágio de autorização? Por exemplo, para retirar a parte REALM do nome de usuário Kerberos para pesquisa em um banco de dados LDAP?
Kamil Kisiel
Não por meio de configuração. No entanto, é relativamente fácil fazê-lo no código-fonte do módulo Apache. Procure atribuições para solicitar-> usuário e ajuste-as; depois reconstrua o módulo com apxs2 -c. OTOH, pode ser mais fácil colocar os nomes do Kerberos no LDAP, sob um atributo separado, e fazer com que o módulo ldap procure o usuário por esse atributo.
Martin v. Löwis 16/07/2009
2

O Debian stable agora vem com a versão 5.4 de mod_auth_kerb .

Se você estiver com uma versão mais antiga, esta página explica como o mod_map_user pode ser usado em combinação com mod_auth_kerb e mod_authnz_ldap.

jcharaoui
fonte