Delen via


LDAP-verificatie inschakelen in Azure Managed Instance voor Apache Cassandra

Azure Managed Instance voor Apache Cassandra biedt geautomatiseerde implementatie- en schaalbewerkingen voor beheerde opensource Apache Cassandra-datacenters. In dit artikel wordt beschreven hoe u LDAP-verificatie inschakelt voor uw clusters en datacenters.

Belangrijk

LDAP-verificatie bevindt zich in openbare preview. Deze functie wordt geleverd zonder service level agreement en wordt niet aanbevolen voor productieworkloads. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.

Vereisten

Een LDAP-server implementeren in Azure

In deze sectie wordt stapsgewijs uitgelegd hoe u een eenvoudige LDAP-server maakt op een virtuele machine in Azure. Als er al een LDAP-server wordt uitgevoerd, kunt u deze sectie overslaan en controleren hoe u LDAP-verificatie inschakelt.

  1. Implementeer een virtuele machine in Azure met Ubuntu Server 18.04 LTS. U kunt hier de instructies volgen.

  2. Geef uw server een DNS-naam:

    Schermopname van de naam van de virtuele machine d n s in Azure Portal.

  3. Installeer Docker op de virtuele machine. We raden deze zelfstudie aan.

  4. Kopieer en plak de volgende tekst in de basismap en druk op Enter. Met deze opdracht maakt u een bestand met een TEST LDAP-gebruikersaccount.

    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. Ga terug naar de basismap

    cd ..
    
  6. Voer de onderstaande opdracht uit en vervang deze door <dnsname> de DNS-naam die u eerder hebt gemaakt voor uw LDAP-server. Met deze opdracht wordt een LDAP-server geïmplementeerd waarvoor TLS is ingeschakeld voor een Docker-container en wordt ook het gebruikersbestand gekopieerd dat u eerder hebt gemaakt naar de container.

    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. Kopieer nu de map certificaten uit de container (vervang door <dnsname> de DNS-naam die u voor uw LDAP-server hebt gemaakt):

    sudo docker cp <dnsname>:/container/service/slapd/assets/certs certs
    
  8. Controleer of de DNS-naam juist is:

    openssl x509 -in certs/ldap.crt -text
    

    Schermopname van uitvoer van opdracht om het certificaat te verifiëren.

  9. Kopieer het ldap.crt bestand naar clouddrive in Azure CLI voor later gebruik.

  10. Voeg de gebruiker toe aan de LDAP (vervang <dnsname> door de DNS-naam die u voor uw LDAP-server hebt gemaakt):

    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
    

LDAP-verificatie inschakelen

Belangrijk

Als u de bovenstaande sectie hebt overgeslagen omdat u al een bestaande LDAP-server hebt, moet u ervoor zorgen dat server-SSL-certificaten zijn ingeschakeld. De subject alternative name (dns name) opgegeven voor het certificaat moet ook overeenkomen met het domein van de server waarop LDAP wordt gehost, of verificatie mislukt.

  1. Momenteel is LDAP-verificatie een openbare preview-functie. Voer de onderstaande opdracht uit om de vereiste Azure CLI-extensie toe te voegen:

    az extension add --upgrade --name cosmosdb-preview
    
  2. Stel de verificatiemethode in op Ldap in het cluster en vervang <resource group> deze door <cluster name> de juiste waarden:

    az managed-cassandra cluster update -g <resource group> -c <cluster name> --authentication-method "Ldap"
    
  3. Stel nu eigenschappen in op datacentrumniveau. Vervang <resource group> en <cluster name> door de juiste waarden en <dnsname> door de DNS-naam die u voor uw LDAP-server hebt gemaakt.

    Notitie

    De onderstaande opdracht is gebaseerd op de LDAP-installatie in de eerdere sectie. Als u die sectie hebt overgeslagen omdat u al een bestaande LDAP-server hebt, geeft u in plaats daarvan de bijbehorende waarden voor die server op. Zorg ervoor dat u een certificaatbestand hebt geüpload naar ldap.crt uw clouddrive in Azure CLI.

    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. Zodra deze opdracht is voltooid, moet u CQLSH (zie hieronder) of een opensource-clientstuurprogramma van Apache Cassandra kunnen gebruiken om verbinding te maken met het datacenter van uw beheerde exemplaar met de gebruiker die in de bovenstaande stap is toegevoegd:

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

Volgende stappen