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

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.

  1. Stellen Sie einen virtuellen Computer in Azure mit Ubuntu Server 18.04 LTS bereit. Sie können den Anweisungen hier folgen.

  2. Geben Sie Ihrem Server einen DNS-Namen:

    Screenshot of virtual machine d n s name in Azure portal.

  3. Installieren Sie Docker auf dem virtuellen Computer. Wir empfehlen dieses Tutorial.

  4. 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 
    
  5. Gehen Sie zurück zum Startverzeichnis

    cd ..
    
  6. 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
    
  7. 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
    
  8. Überprüfen Sie, ob der DNS-Name richtig ist:

    openssl x509 -in certs/ldap.crt -text
    

    Screenshot of output from command to verify certificate.

  9. Kopieren Sie die ldap.crt Datei auf clouddrive in Azure CLI, um sie später zu verwenden.

  10. 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.

  1. 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
    
  2. 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"
    
  3. 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
    
  4. 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>
    

Nächste Schritte