Så här aktiverar du LDAP-autentisering i Azure Managed Instance för Apache Cassandra
Azure Managed Instance för Apache Cassandra tillhandahåller automatiserade distributions- och skalningsåtgärder för hanterade Apache Cassandra-datacenter med öppen källkod. I den här artikeln beskrivs hur du aktiverar LDAP-autentisering till dina kluster och datacenter.
Viktigt!
LDAP-autentisering finns i offentlig förhandsversion. Den här funktionen tillhandahålls utan ett serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Förutsättningar
- Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
- Ett Azure Managed Instance för Apache Cassandra-kluster. Läs om hur du skapar ett Azure Managed Instance för Apache Cassandra-kluster från Azure-portalen.
Distribuera en LDAP-server i Azure
I det här avsnittet går vi igenom hur du skapar en enkel LDAP-server på en virtuell dator i Azure. Om du redan har en LDAP-server som körs kan du hoppa över det här avsnittet och granska hur du aktiverar LDAP-autentisering.
Distribuera en virtuell dator i Azure med Ubuntu Server 18.04 LTS. Du kan följa anvisningarna här.
Ge servern ett DNS-namn:
Installera Docker på den virtuella datorn. Vi rekommenderar den här självstudien.
I hemkatalogen kopierar och klistrar du in följande text och trycker på Retur. Det här kommandot skapar en fil som innehåller ett LDAP-testanvändarkonto.
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
Gå tillbaka till hemkatalogen
cd ..
Kör kommandot nedan och
<dnsname>
ersätt med dns-namnet som du skapade för LDAP-servern tidigare. Det här kommandot distribuerar en LDAP-server med TLS aktiverat till en Docker-container och kopierar även användarfilen som du skapade tidigare till containern.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
Kopiera nu certifikatmappen från containern (ersätt
<dnsname>
med dns-namnet som du skapade för LDAP-servern):sudo docker cp <dnsname>:/container/service/slapd/assets/certs certs
Kontrollera att dns-namnet är korrekt:
openssl x509 -in certs/ldap.crt -text
ldap.crt
Kopiera filen till clouddrive i Azure CLI för senare användning.Lägg till användaren i ldap (ersätt
<dnsname>
med dns-namnet som du skapade för LDAP-servern):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
Aktivera LDAP-autentisering
Viktigt!
Om du hoppades över avsnittet ovan eftersom du redan har en befintlig LDAP-server kontrollerar du att server-SSL-certifikat är aktiverade. Det subject alternative name (dns name)
angivna certifikatet måste också matcha domänen för den server som LDAP finns på, annars misslyckas autentiseringen.
För närvarande är LDAP-autentisering en offentlig förhandsversionsfunktion. Kör kommandot nedan för att lägga till det nödvändiga Azure CLI-tillägget:
az extension add --upgrade --name cosmosdb-preview
Ange autentiseringsmetod till "Ldap" i klustret och ersätt
<resource group>
och<cluster name>
med lämpliga värden:az managed-cassandra cluster update -g <resource group> -c <cluster name> --authentication-method "Ldap"
Ange nu egenskaper på datacenternivå. Ersätt
<resource group>
och<cluster name>
med lämpliga värden och<dnsname>
med dns-namnet som du skapade för LDAP-servern.Kommentar
Kommandot nedan baseras på LDAP-konfigurationen i det tidigare avsnittet. Om du hoppades över det avsnittet eftersom du redan har en befintlig LDAP-server anger du motsvarande värden för den servern i stället. Se till att du har laddat upp en certifikatfil som
ldap.crt
till din clouddrive i 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
När det här kommandot har slutförts bör du kunna använda CQLSH (se nedan) eller någon Apache Cassandra-klientdrivrutin med öppen källkod för att ansluta till datacentret för den hanterade instansen med användaren som lades till i ovanstående steg:
export SSL_VALIDATE=false cqlsh --debug --ssl <data-node-ip> -u <user> -p <password>