Compartilhar via


Habilitar a autenticação LDAP na Instância Gerenciada do Azure para Apache Cassandra

A Instância Gerenciada do Azure para Apache Cassandra fornece operações automatizadas de implantação e dimensionamento para datacenters Apache Cassandra de software livre gerenciados. Este artigo discute como habilitar a autenticação LDAP (Lightweight Directory Access Protocol) para seus clusters e datacenters.

Importante

A autenticação LDAP está em versão prévia pública.

O recurso é fornecido sem um Contrato de Nível de Serviço. Não o recomendamos para carga de trabalho de produção. Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.

Pré-requisitos

Implantar um servidor LDAP no Azure

Nesta seção, você criará um servidor LDAP simples em uma máquina virtual no Azure. Se você já tiver um servidor LDAP em execução, poderá pular para habilitar a autenticação LDAP.

  1. Implante uma máquina virtual no Azure usando o Ubuntu Server 18.04 Long-Term Support (LTS). Para obter instruções detalhadas, consulte Implantar um servidor Ubuntu.

  2. Dê ao servidor um nome DNS (Sistema de Nomes de Domínio).

    Captura de tela que mostra o nome DNS da máquina virtual no portal do Azure.

  3. Instale o Docker na máquina virtual. Para obter um tutorial, consulte Instalar e usar o Docker no Ubuntu 18.04.

  4. No diretório inicial, copie e cole o texto a seguir e selecione Enter. Esse comando cria um arquivo que contém uma conta de usuário LDAP de teste.

    mkdir ldap-user && cd ldap-user && cat >> user.ldif <<EOL
    dn: uid=admin,dc=example,dc=org
    uid: admin
    cn: admin
    sn: 3
    objectClass: top
    objectClass: posixAccount
    objectClass: inetOrgPerson
    loginShell: /bin/bash
    homeDirectory: /home/admin
    uidNumber: 14583102
    gidNumber: 14564100
    userPassword: admin
    mail: admin@example.com
    gecos: admin
    EOL 
    
  5. Volte para o diretório base.

    cd ..
    
  6. Execute o comando a seguir. Substitua <dnsname> pelo nome DNS que você criou para o servidor LDAP anteriormente. Esse comando implanta um servidor LDAP com TLS (Transport Layer Security) habilitado para um contêiner do Docker e copia o arquivo de usuário criado anteriormente para o contêiner.

    sudo docker run --hostname <dnsname>.uksouth.cloudapp.azure.com --name <dnsname> -v $(pwd)/ldap-user:/container/service/slapd/assets/test --detach osixia/openldap:1.5.0
    
  7. Copie a pasta de certificados do contêiner. Substitua <dnsname> pelo nome DNS que você criou para o servidor LDAP.

    sudo docker cp <dnsname>:/container/service/slapd/assets/certs certs
    
  8. Verifique se o nome DNS está correto.

    openssl x509 -in certs/ldap.crt -text
    

    Captura de tela que mostra a saída do comando para verificar o certificado.

  9. Copie o ldap.crt arquivo para o clouddrive na CLI do Azure para uso posterior.

  10. Adicione o usuário ao LDAP. Substitua <dnsname> pelo nome DNS que você criou para o servidor LDAP.

    sudo docker container exec <dnsname> ldapadd -H ldap://<dnsname>.uksouth.cloudapp.azure.com -D "cn=admin,dc=example,dc=org" -w admin -f /container/service/slapd/assets/test/user.ldif
    

Habilitar autenticação LDAP

Importante

Se você ignorou a seção anterior porque já tem um servidor LDAP, certifique-se de que ele tenha certificados de camada de soquetes seguros do servidor habilitados. O subject alternative name (dns name) especificado para o certificado também deve corresponder ao domínio do servidor no qual o LDAP está hospedado ou a autenticação falha.

  1. A autenticação LDAP atualmente é um recurso de visualização pública. Execute o seguinte comando para adicionar a extensão da CLI do Azure necessária:

    az extension add --upgrade --name cosmosdb-preview
    
  2. Defina o método de autenticação como Ldap no cluster. Substitua <resource group> e <cluster name> pelos valores apropriados.

    az managed-cassandra cluster update -g <resource group> -c <cluster name> --authentication-method "Ldap"
    
  3. Agora, defina as propriedades no nível do datacenter. Substitua <resource group> e <cluster name> pelos valores apropriados. Substitua <dnsname> pelo nome DNS que você criou para o servidor LDAP.

    O comando a seguir baseia-se na configuração do LDAP na seção anterior. Se você ignorou essa seção porque já tem um servidor LDAP, forneça os valores correspondentes para esse servidor. Verifique se você carregou um arquivo de certificado como ldap.crt para sua unidade de nuvem na CLI do Azure.

    ldap_search_base_distinguished_name='dc=example,dc=org'
    ldap_server_certificates='/usr/csuser/clouddrive/ldap.crt'
    ldap_server_hostname='<dnsname>.uksouth.cloudapp.azure.com'
    ldap_service_user_distinguished_name='cn=admin,dc=example,dc=org'
    ldap_service_user_password='admin'
    
    az managed-cassandra datacenter update -g `<resource group>` -c `<cluster name>` -d datacenter-1 \
      --ldap-search-base-dn $ldap_search_base_distinguished_name \
      --ldap-server-certs $ldap_server_certificates \
      --ldap-server-hostname $ldap_server_hostname \
      --ldap-service-user-dn $ldap_service_user_distinguished_name \
      --ldap-svc-user-pwd $ldap_service_user_password
    
  4. Depois que esse comando for concluído, você poderá usar o CQLSH ou qualquer driver de cliente de software livre do Apache Cassandra para se conectar ao datacenter da instância gerenciada com o usuário adicionado na etapa anterior.

    export SSL_VALIDATE=false
    cqlsh --debug --ssl <data-node-ip> -u <user> -p <password>