Saltar para o conteúdo principal
Versão 3.0

Segurança — CloudBeaver

ChartVersion3.0.1TypeapplicationAppVersion25.3.0
CompatibilidadeKubernetes1.32+OpenShift4.19+Rancher2.10.x+
Suporte a recursosLDAPsuportado

Configure a autenticação LDAP para o CloudBeaver Community, permitindo que os usuários se autentiquem contra o seu servidor LDAP corporativo em vez de usar contas locais.

Siga as boas práticas de não commitar palavras-passe em ficheiros versionados e utilizar Kubernetes Secrets ou operadores de gestão de secrets.

Pré-requisitos

  • Servidor LDAP acessível a partir do cluster (ex.: ldap.empresa.local:389)
  • DN de bind com permissão para pesquisar usuários no directório
  • Credenciais de bind (usuário e palavra-passe)
  • Base DN onde os usuários estão localizados
  • Filtro LDAP para localizar usuários por ID

Credenciais e Secrets

Terminal input
kubectl -n <NAMESPACE> create secret generic tdp-cloudbeaver-ldap-bind \
--from-literal=password='<LDAP_BIND_PASSWORD>'

Este Secret armazena a palavra-passe de bind de forma segura, referenciada pelos valores do chart.

Configuração LDAP

A configuração LDAP utiliza os blocos ldap.server, ldap.bind, ldap.userSearch e ldap.extraEnvVars para injectar CLOUDBEAVER_AUTH_LDAP_BIND_PASSWORD via secretKeyRef.

O chart gera automaticamente o ficheiro cloudbeaver.conf com o bloco authConfigurations a partir destes campos — não é necessário fornecer JSON manualmente.

tdp-cloudbeaver:
ldap:
enabled: true
server:
host: "<LDAP_HOST>"
port: 389
useSSL: false
useTLS: false
insecureSkipVerify: true
bind:
dn: "<LDAP_BIND_DN>"
passwordSecretName: "tdp-cloudbeaver-ldap-bind"
passwordSecretKey: "password"
userSearch:
baseDN: "<LDAP_USER_BASE_DN>"
filter: "(objectClass=person)"
userIdAttribute: "uid"
extraEnvVars: |
- name: CLOUDBEAVER_AUTH_LDAP_BIND_PASSWORD
valueFrom:
secretKeyRef:
name: tdp-cloudbeaver-ldap-bind
key: password
Configuração gerada automaticamente pelo chart

O chart gera o ficheiro cloudbeaver.conf com o bloco authConfigurations automaticamente, a partir dos campos ldap.server.*, ldap.bind.* e ldap.userSearch.*. Não é necessário definir settings manualmente nos valores. O campo ldap.extraEnvVars injeta a palavra-passe de bind em tempo de execução via secretKeyRef.

Placeholders a substituir:

  • <LDAP_HOST>: hostname ou IP do servidor LDAP
  • <LDAP_BIND_DN>: DN completo do usuário de bind (ex.: cn=admin,dc=empresa,dc=local)
  • <LDAP_USER_BASE_DN>: Base DN onde os usuários estão (ex.: ou=pessoas,dc=empresa,dc=local)

Instalação ou actualização

Terminal input
helm upgrade --install <RELEASE_NAME> \
oci://registry.tecnisys.com.br/tdp/charts/tdp-cloudbeaver \
-n <NAMESPACE> --create-namespace \
-f <VALUES_FILE>

Parâmetros

ÁreaUsoExemplo
ldap.server.*Host, porta, SSL/TLShost: "ldap.empresa.local"
ldap.bind.*DN de bind + nome do Secret com palavra-passedn: "cn=admin,dc=empresa,dc=local"
ldap.userSearch.*Base DN, filtro, atributo de loginbaseDN: "ou=pessoas,dc=empresa,dc=local"
ldap.extraEnvVarsInjecção da palavra-passe de bind via secretKeyRefIncluir sempre CLOUDBEAVER_AUTH_LDAP_BIND_PASSWORD

Solução de problemas

Opção LDAP não aparece no login

Verificação 1: confirmar se LDAP está activado

tdp-cloudbeaver:
ldap:
enabled: true

Verificação 2: validar a secção authConfigurations no ConfigMap gerado

Terminal input
kubectl get configmap tdp-cloudbeaver-auto-config -n <NAMESPACE> -o yaml | grep -A 20 "authConfigurations"

Verificação 3: verificar logs do pod

Terminal input
kubectl logs -n <NAMESPACE> -l app.kubernetes.io/name=tdp-cloudbeaver | grep -i ldap

Falha de autenticação LDAP

Verificação 1: testar conectividade ao servidor LDAP

Terminal input
kubectl exec -it -n <NAMESPACE> <POD_NAME> -- nc -zv <LDAP_HOST> 389

Verificação 2: verificar credenciais de bind

Terminal input
ldapwhoami -x -H ldap://<LDAP_HOST>:389 \
-D "<LDAP_BIND_DN>" \
-w '<LDAP_BIND_PASSWORD>'

Verificação 3: validar filtro e base DN

Terminal input
ldapsearch -x -H ldap://<LDAP_HOST>:389 \
-D "<LDAP_BIND_DN>" \
-w '<LDAP_BIND_PASSWORD>' \
-b "<LDAP_USER_BASE_DN>" \
"<LDAP_FILTER>"

Verificação 4: verificar atributo de ID do usuário

Terminal input
ldapsearch -x -H ldap://<LDAP_HOST>:389 \
-D "<LDAP_BIND_DN>" \
-w '<LDAP_BIND_PASSWORD>' \
-b "<LDAP_USER_BASE_DN>" \
"uid=<USERNAME>"

Fluxo de autenticação LDAP

  1. O usuário selecciona "LDAP" no ecrã de login do CloudBeaver.
  2. O CloudBeaver realiza um bind ao servidor LDAP usando as credenciais configuradas em ldap.bind.
  3. Pesquisa o usuário com o filtro definido em ldap.userSearch.filter e o atributo userIdAttribute.
  4. Autentica o usuário com a palavra-passe introduzida no login.
  5. Cria ou actualiza o perfil do usuário no CloudBeaver com os atributos LDAP.

Considerações de segurança

  • Use LDAPS em produção: habilite ldap.server.useSSL: true para encriptar o tráfego LDAP.
  • Usuário de bind dedicado: use um usuário de bind com permissões mínimas (apenas leitura no directório).
  • Segurança de rede: o servidor LDAP deve ser acessível apenas a partir de redes autorizadas.
  • Gestão de palavras-passe: nunca commite palavras-passe em Git; use Kubernetes Secrets com Sealed Secrets, External Secrets Operator ou HashiCorp Vault em produção.
  • insecureSkipVerify: defina como false em produção para validar o certificado TLS do servidor LDAP.

LDAP vs autenticação local

O CloudBeaver suporta autenticação local e LDAP simultaneamente:

TipoUsuáriosQuando usar
LocalUsuários criados directamente no CloudBeaver (ex.: admin)Sempre disponível; necessário para administração inicial
LDAPUsuários do directório corporativoAmbientes com SSO ou autenticação centralizada
Usuário administrador local

O usuário administrador local (configurado via initialData.adminName) permanece disponível independentemente do LDAP. Mantenha-o como contingência para acesso administrativo caso o LDAP fique indisponível.