Freigeben über


Aktivieren der LDAP-Authentifizierung in azure Managed Instance für Apache Cassandra

Azure Managed Instance for Apache Cassandra verfügt über automatisierte Bereitstellungs- und Skalierungsvorgänge für verwaltete Open-Source-basierte Apache Cassandra-Rechenzentren. In diesem Artikel wird erläutert, wie Sie die LDAP-Authentifizierung (Lightweight Directory Access Protocol) für Ihre Cluster und Rechenzentren aktivieren.

Wichtig

LDAP-Authentifizierung befindet sich in der öffentlichen Vorschau.

Dieses Feature wird ohne Vereinbarung zum Servicelevel bereitgestellt. Sie sollte nicht für Produktionsworkloads verwendet werden. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Voraussetzungen

Bereitstellen eines LDAP-Servers in Azure

In diesem Abschnitt erstellen Sie einen einfachen LDAP-Server auf einem virtuellen Computer in Azure. Wenn bereits ein LDAP-Server ausgeführt wird, können Sie direkt zu LDAP-Authentifizierung aktivieren springen.

  1. Stellen Sie einen virtuellen Computer in Azure mithilfe von Ubuntu Server 18.04 Long-Term Support (LTS) bereit. Ausführliche Anweisungen finden Sie unter Bereitstellen eines Ubuntu-Servers.

  2. Weisen Sie Ihrem Server einen DNS-Namen (Domain Name System) zu.

    Screenshot des DNS-Namens des virtuellen Computers im Azure-Portal.

  3. Installieren Sie Docker auf dem virtuellen Computer. Ein Lernprogramm finden Sie unter Installieren und Verwenden von Docker auf Ubuntu 18.04.

  4. Kopieren Sie im Startverzeichnis den folgenden Text, und 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. Wechseln Sie zurück zum Startverzeichnis.

    cd ..
    
  6. Führen Sie den folgenden Befehl aus. Ersetzen Sie <dnsname> durch den DNS-Namen, den Sie zuvor für Ihren LDAP-Server erstellt haben. Dieser Befehl stellt einen LDAP-Server mit AKTIVIERTem TRANSPORT Layer Security (TLS) in einen Docker-Container bereit und kopiert die Zuvor erstellte Benutzerdatei 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 den Ordner "Zertifikate" aus dem Container. Ersetzen Sie den <dnsname> DNS-Namen, den Sie für Ihren LDAP-Server erstellt haben.

    sudo docker cp <dnsname>:/container/service/slapd/assets/certs certs
    
  8. Stellen Sie sicher, dass der DNS-Name korrekt ist.

    openssl x509 -in certs/ldap.crt -text
    

    Screenshot, der die Ausgabe des Befehls zeigt, um das Zertifikat zu überprüfen.

  9. Kopieren Sie die ldap.crt Datei zur späteren Verwendung in CloudDrive in der Azure CLI.

  10. Fügen Sie den Benutzer zum LDAP hinzu. Ersetzen Sie den <dnsname> 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 vorherigen Abschnitt übersprungen haben, da Sie bereits über einen LDAP-Server verfügen, stellen Sie sicher, dass serversichere Sockets Layer-Zertifikate aktiviert sind. Das subject alternative name (dns name) für das Zertifikat angegebene Muss auch mit der Domäne des Servers übereinstimmen, auf dem LDAP gehostet wird, oder die Authentifizierung schlägt 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 Ldap auf den Cluster fest. Ersetzen Sie <resource group> und <cluster name> durch die entsprechenden Werte.

    az managed-cassandra cluster update -g <resource group> -c <cluster name> --authentication-method "Ldap"
    
  3. Legen Sie nun Eigenschaften auf Rechenzentrumsebene fest. Ersetzen Sie <resource group> und <cluster name> durch die entsprechenden Werte. Ersetzen Sie den <dnsname> DNS-Namen, den Sie für Ihren LDAP-Server erstellt haben.

    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 auf Ihr Cloudlaufwerk in die 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. Nach Abschluss dieses Befehls sollten Sie CQLSH oder einen beliebigen Apache Cassandra Open-Source-Clienttreiber verwenden können, um eine Verbindung mit Ihrem verwalteten Instanzdatencenter herzustellen, wobei der Benutzer im vorherigen Schritt hinzugefügt wurde.

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