LDAP + Keycloak + SSO
1. Configurando o LDAP no Keycloak
De acordo com a documentação oficial (Server Administration Guide), para integrar o LDAP vocĆŖ deve navegar atĆ© User Federation no Admin Console e selecionar āldapā como provedor.

A partir daĆ, vocĆŖ preenche as configuraƧƵes essenciais, como:
- URL de conexão (ldap:// ou ldaps://),
- Bind DN (usuÔrio com permissão de leitura),
- Credentials,
- Base DN para usuƔrios,
- Modo de edição (por exemplo, READ_ONLY ou UNSYNCED),
- Atributos LDAP como username, UUID, etc.

2. Mapeamento de Atributos e Grupos
O Keycloak cria automaticamente mapeamentos bĆ”sicos (username, email, nome, sobrenome). Ć possĆvel definir mapeamentos personalizados como por exemplo cargo, departamento, nĆŗmero de registro ā via user-attribute-ldap-mapper.

TambĆ©m Ć© possĆvel usar group-ldap-mapper ou role-ldap-mapper para mapear grupos ou roles do LDAP para grupos ou roles no Keycloak (realm-level ou client-level).

3. Ajustes AvanƧados e Performance
- Ć possĆvel habilitar LDAPS (conexĆ£o segura via SSL/TLS) configurando Use Truststore SPI para garantir que o Keycloak confie no certificado TLS do LDAP.
- Exista pool de conexƵes LDAP configurƔvel via com.sun.jndi.ldap.connect.pool.* para melhorar performance em cenƔrios com alta carga ou muitos usuƔrios.
- Para depurar ou logar melhor as requisiƧƵes LDAP, recomenda-se habilitar o nĆvel TRACE em org.keycloak.storage.ldap nos logs.
4. Exemplo resumido
Etapa 1: Configurar User Federation
- VĆ” ao console de administração ā User Federation ā Add provider: ldap
- Preencha campos como Display Name, Connection URL, Bind DN/Credential, Users DN, Edit Mode, atributos LDAP
- Teste conexão e autenticação e salve

Etapa 2: Sincronizar usuƔrios
- Se vocĆŖ ativou Import Users, use āSynchronize all usersā ou configure sync periódica
- Se optar por não importar, o Keycloak consulta de forma unificada no momento do login


Etapa 3: Configurar Mappers
- Atributos bÔsicos são mapeados automaticamente
- Para atributos customizados, crie mappers tipo user-attribute-ldap-mapper

- Para grupos/roles LDAP, use group-ldap-mapper ou role-ldap-mapper indicando DN base, atributos e destino (realm ou client)

SSO com Keycloak + LDAP
1. SSO "AutomƔtico" com Kerberos (SPNEGO / Windows AD)
Se vocĆŖ estiver usando LDAP do Active Directory (AD), Ć© possĆvel configurar o Kerberos/SPNEGO para autenticação automĆ”tica do usuĆ”rio no Keycloak ā sem ele precisar digitar login/senha no navegador (SSO verdadeiro).
- O navegador (Chrome/Edge/Firefox) usa o ticket do Windows Logon (Kerberos) para autenticar automaticamente no Keycloak.
- à necessÔrio configurar:
- Keycloak como um SPNEGO/Kerberos realm
- Um service account com SPN no Active Directory (ex: HTTP/keycloak.seudominio.com.br)
- Truststore com o keytab (.keytab)
- Navegadores devem estar configurados para confiar no domĆnio
2. SSO entre aplicaƧƵes via tokens OIDC/SAML
Após o usuÔrio se autenticar uma vez, todas as aplicações integradas com Keycloak (via OIDC ou SAML) aceitarão o token dele e ele não precisarÔ se autenticar novamente.
Isso Ʃ o que normalmente chamamos de SSO na prƔtica.
Exemplo:
- Aplicação A ā redireciona para login Keycloak ā autentica com LDAP
- UsuĆ”rio acessa Aplicação B ā redireciona tambĆ©m ā jĆ” estĆ” autenticado ā entra direto
ā ļø Nesse caso, o login só Ć© automĆ”tico após a primeira autenticação (diferente do SPNEGO, que pode fazer isso sem intervenção do usuĆ”rio).
3. Login automƔtico via Reverse Proxy (NGINX/IIS)
Outra abordagem é colocar um proxy reverso autenticado (ex: NGINX com módulo Kerberos ou IIS com NTLM) na frente do Keycloak. O proxy faz a autenticação com o AD e injeta o login no header para o Keycloak aceitar via Identity Brokering ou autenticação externa.