Configurando Integração LDAP / Active Directory no Liferay - Comunidade
Comunidade
- Home
- Infraestrutura
- Configurando Integração LDAP / Active Directory no Liferay
Configurando Integração LDAP / Active Directory no Liferay
Configurando Integração LDAP / Active Directory no Liferay
Guia de configuração de autenticação e importação de usuários via LDAP/AD no Liferay — incluindo os ajustes que resolvem problemas de timeout e login intermitente.
SEA Tecnologia · Equipe de Infraestrutura
Índice
1. Pré-requisitos e conceitos
2. Validando o AD com ldapsearch (antes de tudo)
Antes de configurar no portal, valide a conexão e os atributos pela linha de comando. Instale o cliente:
Buscar um usuário específico pelo username (sAMAccountName):
Buscar pelo e-mail (userprincipalname):
Listar e contar usuários de uma OU:
3. Autenticação de usuário (Instância)
Painel de Controle > Configurações da Instância > Autenticação de Usuário > aba Geral:
4. Habilitando o LDAP
Painel de Controle > Configurações da Instância > LDAP > aba Geral:
5. Conexão com o servidor
Aba Servidores > Conexão. Clique em Adicionar e preencha:
Use o botão Testar Conexão LDAP para validar antes de prosseguir.
6. Filtros de busca (usuários)
Aba Servidores > Usuários:
Filtro de busca da autenticação por nome de usuário:
Filtro de busca para a importação:
7. Mapeamento de usuário
Aba Servidores > Mapeamento do usuário:
8. Preferências de conexão (o ponto crítico)
Este é o ajuste que resolveu o maior dos nossos problemas. O atributo com.sun.jndi.ldap.connect.pool vem habilitado por padrão e causa logins intermitentes e timeouts. Desative-o.
9. Exportação
Aba Exportar:
10. Importação
Aba Importar:
11. Verificação e troubleshooting
SEA Tecnologia — Equipe de Infraestrutura · Artigo do fórum de Infraestrutura · Integração LDAP no Liferay
SEA Tecnologia · Equipe de Infraestrutura
Esta configuração é o resultado de vários problemas reais enfrentados em campo: erros de timeout no log, login do portal que funcionava por um período e parava, e usuários que conseguiam logar enquanto outros não. Os valores abaixo são o nosso padrão recomendado para instalação em clientes.
Índice
- Pré-requisitos e conceitos
- Validando o AD com ldapsearch (antes de tudo)
- Autenticação de usuário (Instância)
- Habilitando o LDAP
- Conexão com o servidor
- Filtros de busca (usuários)
- Mapeamento de usuário
- Preferências de conexão (o ponto crítico)
- Exportação
- Importação
- Verificação e troubleshooting
1. Pré-requisitos e conceitos
- Acesso ao servidor LDAP/AD: URL, porta (geralmente 389), DN base, e um usuário de serviço (bind) com permissão de leitura.
- userAccountControl=512: indica que a conta de usuário está habilitada no Active Directory.
- !(pwdLastSet=0): exclui contas cuja senha nunca foi definida.
- Atenção aos atributos: os campos variam por cliente. Por exemplo, o e-mail pode usar "mail" em vez de "userprincipalname". Sempre verifique antes.
Credenciais: o usuário e a senha de conexão (bind) ficam no Passbolt da SEA. Nunca coloque essas credenciais no artigo do fórum nem em arquivos versionados.
2. Validando o AD com ldapsearch (antes de tudo)
Antes de configurar no portal, valide a conexão e os atributos pela linha de comando. Instale o cliente:
| 1 | yum install -y openldap-clients |
| 2 | ldapsearch --version |
Buscar um usuário específico pelo username (sAMAccountName):
| 1 | ldapsearch -x -H ldap://dc1.exemplo.gov.br:389 -D "{usuario_bind}" -w {senha} \ |
| 2 | -b "ou=cliente,dc=exemplo,dc=gov,dc=br" "sAMAccountName=bruno.alves" |
Buscar pelo e-mail (userprincipalname):
| 1 | ldapsearch -x -H ldap://dc1.exemplo.gov.br:389 -D "{usuario_bind}" -w {senha} \ |
| 2 | -b "ou=cliente,dc=exemplo,dc=gov,dc=br" "userprincipalname=bruno.alves@exemplo.gov.br" |
Listar e contar usuários de uma OU:
| 1 | ldapsearch -x -H ldap://dc1.exemplo.gov.br:389 -D "{usuario_bind}" -w {senha} \ |
| 2 | -b "ou=cliente,dc=exemplo,dc=gov,dc=br" | grep userPrincipalName | nl |
Por que fazer isso primeiro: confirma que a rede, o bind e os atributos estão corretos. Se o ldapsearch não retornar, o problema está no AD/rede — não adianta configurar no Liferay ainda.
3. Autenticação de usuário (Instância)
Painel de Controle > Configurações da Instância > Autenticação de Usuário > aba Geral:
- Como os usuários se autenticam?: Por Nome de Usuário
- Na aba Geral, desmarque todas as checkbox. Nas outras abas, mantenha a configuração padrão.
4. Habilitando o LDAP
Painel de Controle > Configurações da Instância > LDAP > aba Geral:
- Habilitar: marcado
- Obrigatório: desmarcado
- Use a política de senha do LDAP: marcado
- Método: Vincular
- Algoritmo de criptografia de senha: Nenhum
5. Conexão com o servidor
Aba Servidores > Conexão. Clique em Adicionar e preencha:
- Configuração padrão: Microsoft Active Directory Server (se for AD)
- URL do fornecedor base: ldap://dc1.exemplo.gov.br:389
- DN Base: ou=cliente,dc=exemplo,dc=gov,dc=br
- Usuário de conexão LDAP (bind): Acessar Passbolt da SEA
- Senha de conexão LDAP: Acessar Passbolt da SEA
Use o botão Testar Conexão LDAP para validar antes de prosseguir.
6. Filtros de busca (usuários)
Aba Servidores > Usuários:
Filtro de busca da autenticação por nome de usuário:
| 1 | (&(&(objectClass=person)(sAMAccountName=@screen_name@))(userAccountControl=512)) |
Filtro de busca para a importação:
| 1 | (&(&(&(objectClass=Person)(!(objectClass=Computer)))(userAccountControl=512))(!(pwdLastSet=0))) |
Tradução dos filtros: importa apenas pessoas (não computadores), com a conta habilitada (userAccountControl=512) e com senha já definida (pwdLastSet diferente de 0).
7. Mapeamento de usuário
Aba Servidores > Mapeamento do usuário:
- Nome de usuário: sAMAccountName
- Endereço de email: userprincipalname
- Senha: userPassword
- Nome: givenName
- Segundo Nome: middleName
- Sobrenome: sn
- Nome Completo: cn
- Cargo: title
- Grupos: sem configuração (os grupos não são importados neste padrão)
Lembre-se: confirme cada atributo com o resultado do ldapsearch. Em alguns clientes o e-mail é o atributo "mail".
8. Preferências de conexão (o ponto crítico)
Este é o ajuste que resolveu o maior dos nossos problemas. O atributo com.sun.jndi.ldap.connect.pool vem habilitado por padrão e causa logins intermitentes e timeouts. Desative-o.
| 1 | com.sun.jndi.ldap.connect.pool=false |
| 2 | com.sun.jndi.ldap.connect.timeout=5000 |
| 3 | com.sun.jndi.ldap.read.timeout=5000 |
Sintoma típico do pool ligado: login funciona por um tempo e depois para; alguns usuários autenticam e outros não; timeouts aparecem no log. Com o pool desativado e os timeouts definidos, o comportamento estabiliza.
9. Exportação
Aba Exportar:
- Desabilite todas as opções. Não queremos que o Liferay escreva de volta no AD.
10. Importação
Aba Importar:
- Habilitar Importação: marcado (deixe apenas esta marcada; desabilite as demais checkbox)
- Intervalo de importação: 90000
- Método de importação: Usuário
- Estratégia de sincronização do usuário: Tipo de autenticação
11. Verificação e troubleshooting
- Login intermitente / timeouts no log: confirme com.sun.jndi.ldap.connect.pool=false e os timeouts de connect/read em 5000.
- Usuário não loga: valide com ldapsearch se a conta tem userAccountControl=512 (habilitada) e pwdLastSet diferente de 0.
- E-mail não importa: verifique se o atributo correto é userprincipalname ou mail no AD do cliente.
- Conexão falha no Testar: cheque rede/porta 389, o DN base e as credenciais de bind (Passbolt).
- Nenhum usuário importado: revise o filtro de importação e o DN base; teste o mesmo filtro via ldapsearch.
SEA Tecnologia — Equipe de Infraestrutura · Artigo do fórum de Infraestrutura · Integração LDAP no Liferay
5/4/23