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.
version: '3'
services:
mysql:
image: mysql:5.7
container_name: mysql
volumes:
- /var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: keycloak
MYSQL_USER: keycloak
MYSQL_PASSWORD: password
keycloak:
image: quay.io/keycloak/keycloak:latest
container_name: keycloak
environment:
DB_VENDOR: MYSQL
DB_ADDR: mysql
DB_DATABASE: keycloak
DB_USER: keycloak
DB_PASSWORD: password
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: Pa55w0rd
ports:
- 8080:8080
depends_on:
- mysql
openldap:
image: osixia/openldap:1.5.0
container_name: openldap
environment:
LDAP_ORGANISATION: "Dexter currier"
LDAP_DOMAIN: "dexter.org"
LDAP_BASE_DN: "cn=admin,dc=dexter,dc=org"
LDAP_ADMIN_PASSWORD: "admin"
LDAP_CONFIG_PASSWORD: "config"
KEEP_EXISTING_CONFIG: "false"
LDAP_REMOVE_CONFIG_AFTER_SETUP: "true"
volumes:
- /var/lib/ldap
- /etc/ldap/slapd.d
- /container/service/slapd/assets/certs/
ports:
- "389:389"
- "636:636"
phpldapadmin:
image: osixia/phpldapadmin:latest
container_name: phpldapadmin
environment:
PHPLDAPADMIN_LDAP_HOSTS: "openldap"
PHPLDAPADMIN_HTTPS: "false"
ports:
- "9090:80"
depends_on:
- openldap
salve-o e execute o comando:
docker-compose up -d
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:
About author
Você pode gostar também
Guia Prático: Como Instalar e Configurar um Proxy Reverso no NGINX
Neste Post você aprenderá como instalar o nginx e configurar um proxy reverso. Vamos começar com a instalação do NGINX. No meu caso, estou utilizando um CentOs 7, primeiramente
Teste sua infraestrutura com InSpec: auditoria automatizada e eficiente
Você conhece a ferramenta da Chef, o InSpec? Vamos realizar um teste básico de infraestrutura utilizando InSpec! Muita das vezes quando trabalhamos com integração continua não temos a certeza que
Descubra o Apache Guacamole: a solução para acessos remotos na sua empresa
Neste post falo sobre uma ferramenta bastante interessante do projeto Apache chamado Guacamole que irá resolver problemas de acessos remotos a servidores em sua empresa. É uma mão na roda.




















