Udostępnij za pomocą


Włączanie uwierzytelniania LDAP w usłudze Azure Managed Instance dla bazy danych Apache Cassandra

Wystąpienie zarządzane platformy Azure dla systemu 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 protokołu LDAP (Lightweight Directory Access Protocol) 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. Nie zalecamy obsługi 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 utworzysz prosty serwer LDAP na maszynie wirtualnej na platformie Azure. Jeśli masz już uruchomiony serwer LDAP, możesz przejść do sekcji Włączanie uwierzytelniania LDAP.

  1. Wdrażanie maszyny wirtualnej na platformie Azure przy użyciu systemu Ubuntu Server 18.04 Long-Term Support (LTS). Aby uzyskać szczegółowe instrukcje, zobacz Wdrażanie serwera z systemem Ubuntu.

  2. Nadaj serwerowi nazwę systemu nazw domen (DNS).

    Zrzut ekranu przedstawiający nazwę DNS maszyny wirtualnej w witrynie Azure Portal.

  3. Zainstaluj platformę Docker na maszynie wirtualnej. Aby zapoznać się z samouczkiem, zobacz Instalowanie i używanie platformy Docker w systemie Ubuntu 18.04.

  4. W katalogu głównym skopiuj i wklej następujący tekst, a następnie wybierz Enter. To polecenie tworzy plik zawierający 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. Wróć do katalogu macierzystego.

    cd ..
    
  6. Uruchom następujące polecenie. Zastąp <dnsname> nazwą DNS, którą utworzyłeś wcześniej dla serwera LDAP. To polecenie wdraża serwer LDAP z włączonym protokołem Transport Layer Security (TLS) w kontenerze platformy Docker i kopiuje utworzony wcześniej plik 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. Skopiuj folder certificates z kontenera. Zastąp <dnsname> tą 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 protokołu LDAP. Zastąp <dnsname> tą 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 poprzednią sekcję, ponieważ masz już serwer LDAP, upewnij się, że ma on włączone certyfikaty Secure Sockets Layer 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 kończy się niepowodzeniem.

  1. Obecnie uwierzytelnianie LDAP jest funkcją publicznej wersji zapoznawczej. Uruchom następujące 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ąp <resource group> 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 przetwarzania danych. Zastąp <resource group> i <cluster name> odpowiednimi wartościami. Zastąp <dnsname> tą nazwą DNS utworzoną dla serwera LDAP.

    Następujące 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 przekazałeś plik certyfikatu taki jak ldap.crt na swój dysk w chmurze przy użyciu interfejsu wiersza polecenia 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
    
  4. Po zakończeniu tego polecenia powinno być możliwe użycie protokołu CQLSH 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 poprzednim kroku.

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