Infraestrutura TI

Como integrar o LDAP (AD) no Keycloak 22.0.3

Nesse artigo vamos mostrar como configurar um provedor de Federação de usuários no Keycloak na versão 22.0.3, em nosso caso vamos configurar o LDAP ,Lightweight Directory Access Protocol, com um servidor AD,active directory, porém com pquenas alterações o guia também pode ser utilizado com Red Hat Directory Server, Tivoli, Novll eDirectory entre outros. O mesmo se aplica a versão do Keycloak que a depender da sua versão, um campo ou outro pode mudar a posição, mas em essência o guia deve servir.

Sumário

  • Pré Requisitos
  • Adicionando uma nova Federação de usuários
  • Criando uma nova conexão com LDAP
  • Mapeando os campos do AD para o Keycloak
  • Fazeendo Login no Keeycloak com integração com LDAP
  • Conclussão

Pré Requisitos

Para esse guia você precisa ter uma instalação do Keycloak, um Realm e Cliente público configurado, caso tenha dúvidas em como criar um Realm e Cliente veja esse artigo que mostramos como. Além disso são necessários os seguintes itens:

  • URL de conexão do LDAP ex: ldap://localhost
  • Tipo de autenticação
  • Se tiver autenticação CN,OU,DC do usuario Administrador do LDAP além de sua senha
  • Modo de edição
  • Ponto de início para procuras no servidor do diretório LDAP
  • Campos que vão ser usados como atributos de nome completo, username, email e afins
  • Objetos do usuário
  • Profundidade da busca

Adicionando uma nova Federação de usuários

Uma vez logado no keycloak, selecione ou crie um realm, veja nosso artigo caso queira criar um, e na aba configurações acesse federações de usuários, conforme imagem abaixo:

Caso queira também pode acessar a URL para versões recentes do keycloak:

https://localhost:8080/admin/SEU_REALM/console/#/master/user-federation
Bash

Para nosso exemplo vamos selecionar o provedor como “active directory”. Escolha o mais próximo do seu provedor LDAP:

Na sequência devemos informar a url de conexão que deve seguir o seguinte padrão: protocolo + Ip ou domínio + porta caso tenha um exemplo seria ldap://localhost:123 ou ldap://localhost caso a porta seja a padrão (389) devemos também marcar ou não se nosso servidor ldap usa STARTTLS como protocolo de segurança. Em nosso exemplo vamos deixar desmarcado, por fim podemos selecionar a opção “testar conexão” onde esperamos uma mensagem “Successfully connected to LDAP”.

Caso não, verifique as configurações acima e tente novamente, no caso de sucesso podemos seguir para a forma de autenticação.

Selecionando o tipo de autenticação

Devemos setar o “Bind DN” que pode ser nos dois formatos login@dominio ou através de conta e diretórios onde deve logar, segue os dois exemplos:

Devemos então fornecer a senha dessa conta e testar a autenticação onde novamente devemos ver uma imagem igual a de cima, nesse ponto já podemos seguir para o mapeamento de campos.

Mapeando os campos do AD para o Keycloak

Esse é um dos passos mais importantes durante a configuração pois é nele que vamos explicar para o Keycloak como ele deve fazer a correção de campos dele com a do seu servidor LDAP. Caso não tenha certeza de quais atributos usar você pode consultar esses links da Microsoft atributos Active Directory ou Atributos de nomenclatura de usuário. Para esse tutorial vamos explicar o que usamos.

KeycloakLDAPResultado
Modo de ediçãoUNSYNCEDREAD_ONLY é um LDAP somente leitura. WRITABLE significa que os dados serão sicronizados de volta para o LDAP por demanda. UNSYNCED significa que os dados do usuário serão importados, mas não sicronizados de volta para o LDAP.
Atributo LDAP para UsernamesAMAccountNameO atributo sAMAccountName é um nome de logon (ex: admin)
Atributo LDAP para UUIDobjectGUIDobjectGUID é o identificador exclusivo de um usuário. O atributo é um GUID (Identificador Global exclusivo)
emailmailEmail do usuario
firstNamegivennamePrimeiro nome
lastNamesnUltimo nome
usernamesAMAccountNameO atributo sAMAccountName é um nome de logon (ex: admin)

Caso queira adicionar mais campos basta selecionar a opção, lembre-se apenas de adicionar o Objeto que tem os atributos que deseja adicionar, para nosso exemplo usamos: person, organizationalPerson, user

Fazendo Login no Keycloak com integração com LDAP

Uma vez com o keycloak configurado e habilitado podemos acessar essa url:

https://localhost:8080/realms/SEU_REALM/account/#/security/signingin
Bash

Caso receba erros como:

  • No users found, could be due to wrongly configured federated provider Unexpected non-whitespace character after JSON at position 2
  • Unexpected error when handling authentication request to identity provider.

Isso indica algum erro durante a configuração do seu ldap que pode ter relação mas não exclusivamente em como os campos foram mapeados e nesse caso apenas revisando sua configuração.

Conclusão

Seu LDAP já está configurado e pronto para uso, caso tenha algum erro durante a configuração não deixe de comentar, dessa forma podemos melhorar nosso artigo incluindo soluções para os erros.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.