Como criar uma federação de usuários com Keycloak e LDAP: um tutorial passo a passo
Na primeira parte dessa série de posts, vimos de maneira geral o funcionamento do Keycloak. Nessa segunda parte veremos como criar um user federation para importar usuários da nossa base de usuários contida no ldap.
Para a execução desse tutorial, subiremos um novo docker-compose que contém o Keycloak e o MySQL da aplicação, o openldap e o PhpLdapAdmin que nos ajudarão na manipulação do ldap.
Começaremos criando um arquivo docker-compose.yaml e adicionando o conteúdo a seguir dentro dele.
10 | MYSQL_ROOT_PASSWORD: root |
11 | MYSQL_DATABASE: keycloak |
13 | MYSQL_PASSWORD: password |
15 | image: quay.io/keycloak/keycloak:latest |
16 | container_name: keycloak |
24 | KEYCLOAK_PASSWORD: Pa55w0rd |
30 | image: osixia/openldap:1.5.0 |
31 | container_name: openldap |
33 | LDAP_ORGANISATION: "Dexter currier" |
34 | LDAP_DOMAIN: "dexter.org" |
35 | LDAP_BASE_DN: "cn=admin,dc=dexter,dc=org" |
36 | LDAP_ADMIN_PASSWORD: "admin" |
37 | LDAP_CONFIG_PASSWORD: "config" |
38 | KEEP_EXISTING_CONFIG: "false" |
39 | LDAP_REMOVE_CONFIG_AFTER_SETUP: "true" |
43 | - /container/service/slapd/assets/certs/ |
48 | image: osixia/phpldapadmin:latest |
49 | container_name: phpldapadmin |
51 | PHPLDAPADMIN_LDAP_HOSTS: "openldap" |
52 | PHPLDAPADMIN_HTTPS: "false" |
salve-o e execute o comando:
Após a execução do docker-compose, podemos acessar o PhpLdapAdmin na porta 9090 do nosso host e o Keycloak na porta 8080. Na primeira parte desse lab criaremos um grupo e um usuário que será importado para o Keycloak.
Utilize o LDAP_BASE_DN e LDAP_ADMIN_PASSWORD definidos no nosso docker-compose para acessar o PhpLdapAdmin na localhost:9090.

Após o login no sistema, criaremos um grupo e um usuário na árvore de diretórios.
Selecione a sua árvore de diretórios.

Vá até a opção Create a child entry e crie um Generic: Posix Group. Esse passo é necessário para conseguir adicionar novos usuários.


Dê um nome ao seu grupo e salve-o.

Em seguida, crie um usuário dentro do ldap.


Agora iremos criar a federação no keycloak e iremos fazer a importação do usuário.
Para acessar o keycloak, acesse localhost:8080 com o usuário e senha que foram definidas no docker-compose.yaml.

Em seguida crie um novo realm.

Dentro desse realm navegue até a opção User Federation e crie um novo provider ldap com as seguintes configurações:

Deixaremos a opção Custom User LDAP Filter em branco, já que essa opção é interessante para importar apenas usuários de um determinado grupo.
Preencha o connection URL com o IP do host que está rodando o ldap.
Após salvar, o Keycloak sincronizará os usuários através da opção abaixo.

A imagem abaixo mostra o resultado após realizar todos os passos corretamente.

Ao selecionar a opção users > view all users, haverá uma confirmação de que os usuários do ldap foram importados para o Keycloak.

Nesse post vimos como importar usuários do nosso ldap para o Keycloak. No próximo post da série usaremos o Keycloak para gerenciar acessos à uma conta da AWS, fazendo uma ponte com o nosso ldap, o que facilitará a administração de usuários e permissões dentro da plataforma da Amazon.
Até lá.
Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:
CURSOSCONSULTORIA