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
Desbravando o OpenTofu: Parte 01 – Introdução e Fundamentos
Olá pessoal, hoje no blog, vamos falar de uma ferramenta em potencial de Infra as Code chamada OpenTofu. Bora lá Como surgiu o OpenTofu Em 10 de agosto de 2023,
Transforme sua empresa com soluções open source para alta demanda
Conheça nossa solução baseada 100% em software open source. Estamos vivendo um momento ímpar. De repente, as empresas foram obrigadas a se reinventar. O negócio foi afetado e como a
Conhecendo o kernel Linux pelo /proc (parte 4) – comportamentos da memória virtual
No post anterior vimos como o kernel mantem os mapeamentos de memória virtual para memória física e como essa tradução é realizada em tempo de execução pela MMU. Neste post