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
- Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
- Een Azure Managed Instance voor Apache Cassandra-cluster. Bekijk hoe u een Azure Managed Instance voor Apache Cassandra-cluster maakt vanuit Azure Portal.
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.
Implementeer een virtuele machine in Azure met Ubuntu Server 18.04 LTS. U kunt hier de instructies volgen.
Geef uw server een DNS-naam:
Installeer Docker op de virtuele machine. We raden deze zelfstudie aan.
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
Ga terug naar de basismap
cd ..
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
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
Controleer of de DNS-naam juist is:
openssl x509 -in certs/ldap.crt -text
Kopieer het
ldap.crt
bestand naar clouddrive in Azure CLI voor later gebruik.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.
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
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"
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
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>