So aktivieren Sie die LDAP-Authentifizierung in Azure Managed Instance for Apache Cassandra
Azure Managed Instance for Apache Cassandra bietet automatisierte Bereitstellungs- und Skalierungsvorgänge für verwaltete Open-Source-basierte Apache Cassandra-Rechenzentren. In diesem Artikel erfahren Sie, wie Sie die LDAP-Authentifizierung in Ihren Clustern und Rechenzentren aktivieren.
Wichtig
LDAP-Authentifizierung befindet sich in der öffentlichen Vorschau. Dieses Feature wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
Voraussetzungen
- Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
- Ein Azure Managed Instance for Apache Cassandra-Cluster. Erfahren Sie, wie Sie einen Azure Managed Instance for Apache Cassandra-Cluster über das Azure-Portal erstellen.
Bereitstellen eines LDAP-Servers in Azure
In diesem Abschnitt wird erläutert, wie Sie einen einfachen LDAP-Server auf einem virtuellen Computer in Azure erstellen. Wenn Sie bereits einen LDAP-Server betreiben, können Sie diesen Abschnitt überspringen und sich ansehen, wie Sie die LDAP-Authentifizierung aktivieren.
Stellen Sie einen virtuellen Computer in Azure mit Ubuntu Server 18.04 LTS bereit. Sie können den Anweisungen hier folgen.
Geben Sie Ihrem Server einen DNS-Namen:
Installieren Sie Docker auf dem virtuellen Computer. Wir empfehlen dieses Tutorial.
Kopieren Sie im Startverzeichnis den folgenden Text, fügen Sie ihn ein und drücken Sie die Eingabetaste. Mit diesem Befehl wird eine Datei erstellt, die ein LDAP-Testbenutzerkonto enthält.
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
Gehen Sie zurück zum Startverzeichnis
cd ..
Führen Sie den folgenden Befehl aus, indem Sie
<dnsname>
mit dem dns-Namen ersetzen, den Sie zuvor für Ihren LDAP-Server erstellt haben. Dieser Befehl stellt einen LDAP-Server mit aktiviertem TLS in einem Docker-Container bereit und kopiert außerdem die Benutzerdatei, die Sie zuvor erstellt haben, in den 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
Kopieren Sie nun den Zertifikatordner aus dem Container (ersetzen Sie
<dnsname>
durch den DNS-Namen, den Sie für Ihren LDAP-Server erstellt haben):sudo docker cp <dnsname>:/container/service/slapd/assets/certs certs
Überprüfen Sie, ob der DNS-Name richtig ist:
openssl x509 -in certs/ldap.crt -text
Kopieren Sie die
ldap.crt
Datei auf clouddrive in Azure CLI, um sie später zu verwenden.Fügen Sie dem LDAP den Benutzer hinzu (ersetzen Sie
<dnsname>
mit dem DNS-Namen, den Sie für Ihren LDAP-Server erstellt haben):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-Authentifizierung aktivieren
Wichtig
Wenn Sie den obigen Abschnitt übersprungen haben, weil Sie bereits über einen LDAP-Server verfügen, stellen Sie bitte sicher, dass dieser über aktivierte SSL-Serverzertifikate verfügt. Das für das Zertifikat angegebene subject alternative name (dns name)
muss auch mit der Domäne des Servers übereinstimmen, auf dem LDAP gehostet wird, sonst schlägt die Authentifizierung fehl.
Derzeit ist die LDAP-Authentifizierung ein öffentliches Vorschaufeature. Führen Sie den folgenden Befehl aus, um die erforderliche Azure CLI-Erweiterung hinzuzufügen:
az extension add --upgrade --name cosmosdb-preview
Legen Sie die Authentifizierungsmethode auf "LDAP" im Cluster fest, ersetzen Sie
<resource group>
und<cluster name>
mit den entsprechenden Werten:az managed-cassandra cluster update -g <resource group> -c <cluster name> --authentication-method "Ldap"
Legen Sie jetzt Eigenschaften auf Rechenzentrumsebene fest. Ersetzen Sie
<resource group>
und<cluster name>
mit den entsprechenden Werten und<dnsname>
mit dem DNS-Namen, den Sie für Ihren LDAP-Server erstellt haben.Hinweis
Der folgende Befehl basiert auf dem LDAP-Setup im vorherigen Abschnitt. Wenn Sie diesen Abschnitt übersprungen haben, da Sie bereits über einen vorhandenen LDAP-Server verfügen, geben Sie stattdessen die entsprechenden Werte für diesen Server ein. Stellen Sie sicher, dass Sie eine Zertifikatdatei wie
ldap.crt
in Ihr clouddrive in Azure CLI hochgeladen haben.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
Sobald dieser Befehl ausgeführt wurde, sollten Sie in der Lage sein, CQLSH (siehe unten) oder einen beliebigen Open-Source-Clienttreiber für Apache Cassandra zu verwenden, um sich mit dem im obigen Schritt hinzugefügten Benutzer mit Ihrem verwalteten Instanz-Rechenzentrum zu verbinden:
export SSL_VALIDATE=false cqlsh --debug --ssl <data-node-ip> -u <user> -p <password>