Partilhar via


Como 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 data centers Apache Cassandra de código aberto gerenciados. Este artigo descreve como habilitar a autenticação LDAP para seus clusters e data centers.

Importante

A autenticação LDAP está em visualização pública.

Este recurso é fornecido sem um contrato de nível de serviço. Não recomendamos para cargas de trabalho de produção. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Pré-requisitos

Implantar um servidor LDAP no Azure

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

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

  2. Dê ao seu servidor um nome DNS:

    Captura de ecrã do nome DNS da máquina virtual no portal do Azure.

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

  4. No diretório inicial, copie e cole o seguinte texto e selecione Enter. Este comando cria um arquivo contendo 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. Navegue de volta para o diretório inicial

    cd ..
    
  6. Execute o seguinte comando. Substitua <dnsname> pelo nome dns que você criou para o servidor LDAP anteriormente. Este comando implanta um servidor LDAP com TLS habilitado em 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 criado 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 da 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
    

Ativar autenticação LDAP

Importante

Se você ignorou a seção anterior porque já tem um servidor LDAP, certifique-se de que ele tenha certificados SSL de 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 falhará.

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

    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> com os 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 data center. Substitua <resource group> e <cluster name> com os valores apropriados e <dnsname> com o nome dns que você criou para seu servidor LDAP.

    Nota

    O comando a seguir é baseado na configuração LDAP na seção anterior. Se você ignorou essa seção porque já tem um servidor LDAP existente, forneça os valores correspondentes para esse servidor. Certifique-se de que carregou um ficheiro de certificado como ldap.crt no seu clouddrive 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 terminar, você poderá usar CQLSH ou qualquer driver de cliente de código aberto Apache Cassandra para se conectar ao data center 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>
    

Próximos passos