Udostępnij za pośrednictwem


Jak włączyć uwierzytelnianie LDAP w usłudze Azure Managed Instance dla usługi Apache Cassandra

Wystąpienie zarządzane platformy Azure dla usługi Apache Cassandra udostępnia zautomatyzowane operacje wdrażania i skalowania dla zarządzanych centrów danych Apache Cassandra typu open source. W tym artykule omówiono sposób włączania uwierzytelniania LDAP w klastrach i centrach danych.

Ważne

Uwierzytelnianie LDAP jest w publicznej wersji zapoznawczej. Ta funkcja jest udostępniana bez umowy dotyczącej poziomu usług i nie jest zalecana w przypadku obciążeń produkcyjnych. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.

Wymagania wstępne

Wdrażanie serwera LDAP na platformie Azure

W tej sekcji omówimy tworzenie prostego serwera LDAP na maszynie wirtualnej na platformie Azure. Jeśli masz już uruchomiony serwer LDAP, możesz pominąć tę sekcję i przejrzeć sposób włączania uwierzytelniania LDAP.

  1. Wdrażanie maszyny wirtualnej na platformie Azure przy użyciu systemu Ubuntu Server 18.04 LTS. Możesz postępować zgodnie z instrukcjami tutaj.

  2. Nadaj serwerowi nazwę DNS:

    Zrzut ekranu przedstawiający nazwę maszyny wirtualnej d n s w witrynie Azure Portal.

  3. Zainstaluj platformę Docker na maszynie wirtualnej. Zalecamy ten samouczek.

  4. W katalogu głównym skopiuj i wklej następujący tekst i naciśnij Enter. To polecenie spowoduje utworzenie pliku zawierającego testowe konto użytkownika LDAP.

    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. Przejdź z powrotem do katalogu macierzystego

    cd ..
    
  6. Uruchom poniższe polecenie, zastępując <dnsname> ciąg nazwą DNS utworzoną wcześniej dla serwera LDAP. To polecenie spowoduje wdrożenie serwera LDAP z włączonym protokołem TLS w kontenerze platformy Docker, a także skopiowanie utworzonego wcześniej pliku użytkownika do kontenera.

    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. Teraz skopiuj folder certyfikatów z kontenera (zastąp <dnsname> ciąg nazwą DNS utworzoną dla serwera LDAP):

    sudo docker cp <dnsname>:/container/service/slapd/assets/certs certs
    
  8. Sprawdź, czy nazwa DNS jest poprawna:

    openssl x509 -in certs/ldap.crt -text
    

    Zrzut ekranu przedstawiający dane wyjściowe polecenia w celu zweryfikowania certyfikatu.

  9. ldap.crt Skopiuj plik do usługi clouddrive w interfejsie wiersza polecenia platformy Azure, aby użyć go później.

  10. Dodaj użytkownika do ldap (zastąp <dnsname> ciąg nazwą DNS utworzoną dla serwera LDAP):

    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
    

Włączanie uwierzytelniania LDAP

Ważne

Jeśli pominięto powyższe sekcje, ponieważ masz już istniejący serwer LDAP, upewnij się, że ma on włączone certyfikaty SSL serwera. Określony subject alternative name (dns name) dla certyfikatu musi być również zgodny z domeną serwera, na którego jest hostowany protokół LDAP, lub uwierzytelnianie zakończy się niepowodzeniem.

  1. Obecnie uwierzytelnianie LDAP jest funkcją publicznej wersji zapoznawczej. Uruchom poniższe polecenie, aby dodać wymagane rozszerzenie interfejsu wiersza polecenia platformy Azure:

    az extension add --upgrade --name cosmosdb-preview
    
  2. Ustaw metodę uwierzytelniania na "Ldap" w klastrze, zastępując <resource group> element i <cluster name> odpowiednimi wartościami:

    az managed-cassandra cluster update -g <resource group> -c <cluster name> --authentication-method "Ldap"
    
  3. Teraz ustaw właściwości na poziomie centrum danych. Zastąp <resource group> wartości i <cluster name> odpowiednimi wartościami oraz <dnsname> nazwą DNS utworzoną dla serwera LDAP.

    Uwaga

    Poniższe polecenie jest oparte na konfiguracji LDAP we wcześniejszej sekcji. Jeśli pominięto sekcję, ponieważ masz już istniejący serwer LDAP, podaj odpowiednie wartości dla tego serwera. Upewnij się, że przekazano plik certyfikatu podobny ldap.crt do usługi CloudDrive w interfejsie wiersza polecenia platformy Azure.

    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. Po zakończeniu tego polecenia powinno być możliwe użycie protokołu CQLSH (patrz poniżej) lub dowolnego sterownika klienta open source apache Cassandra w celu nawiązania połączenia z centrum danych wystąpienia zarządzanego z użytkownikiem dodanym w powyższym kroku:

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

Następne kroki