Sdílet prostřednictvím


Povolení ověřování LDAP ve službě Azure Managed Instance pro Apache Cassandra

Spravovaná instance Azure pro Apache Cassandra poskytuje automatizované operace nasazení a škálování pro spravovaná opensourcová datacentra Apache Cassandra. Tento článek popisuje, jak povolit ověřování protokolu LDAP (Lightweight Directory Access Protocol) pro clustery a datová centra.

Důležité

Ověřování LDAP je ve verzi Public Preview.

Tato funkce je poskytována bez smlouvy o úrovni služeb. Nedoporučujeme ho pro produkční úlohy. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Požadavky

Nasazení serveru LDAP v Azure

V této části vytvoříte na virtuálním počítači v Azure jednoduchý server LDAP. Pokud už máte spuštěný server LDAP, můžete přeskočit k povolení ověřování LDAP.

  1. Nasadit virtuální stroj v Azure pomocí Ubuntu Server 18.04 LTS Long-Term Support. Podrobné pokyny najdete v tématu Nasazení serveru Ubuntu.

  2. Dejte serveru název DNS (Domain Name System).

    Snímek obrazovky znázorňující název DNS virtuálního počítače na webu Azure Portal

  3. Nainstalujte Docker na virtuální počítač. Kurz najdete v tématu Instalace a použití Dockeru na Ubuntu 18.04.

  4. V domovském adresáři zkopírujte a vložte následující text a vyberte Enter. Tento příkaz vytvoří soubor, který obsahuje testovací uživatelský účet 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. Vraťte se do domovského adresáře.

    cd ..
    
  6. Spusťte následující příkaz. Nahraďte <dnsname> názvem DNS, který jste vytvořili pro server LDAP dříve. Tento příkaz nasadí server LDAP s povoleným protokolem TLS (Transport Layer Security) do kontejneru Dockeru a zkopíruje soubor uživatele, který jste vytvořili dříve do kontejneru.

    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. Zkopírujte složku certifikátů z kontejneru. Nahraďte <dnsname> názvem DNS, který jste vytvořili pro server LDAP.

    sudo docker cp <dnsname>:/container/service/slapd/assets/certs certs
    
  8. Ověřte správnost názvu DNS.

    openssl x509 -in certs/ldap.crt -text
    

    Snímek obrazovky znázorňující výstup příkazu k ověření certifikátu

  9. ldap.crt Zkopírujte soubor na clouddrive v Azure CLI pro pozdější použití.

  10. Přidejte uživatele do protokolu LDAP. Nahraďte <dnsname> názvem DNS, který jste vytvořili pro server 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
    

Povolení ověřování LDAP

Důležité

Pokud jste předchozí část přeskočili, protože už máte server LDAP, ujistěte se, že má povolené certifikáty Secure Sockets Layer serveru. Zadané subject alternative name (dns name) pro certifikát musí také odpovídat doméně serveru, na který je protokol LDAP hostovaný, nebo ověřování selže.

  1. V současné době je ověřování LDAP funkcí Public Preview. Spuštěním následujícího příkazu přidejte požadované rozšíření Azure CLI:

    az extension add --upgrade --name cosmosdb-preview
    
  2. Na clusteru nastavte metodu ověřování na Ldap. Nahraďte <resource group> a <cluster name> příslušnými hodnotami.

    az managed-cassandra cluster update -g <resource group> -c <cluster name> --authentication-method "Ldap"
    
  3. Teď nastavte vlastnosti na úrovni datacentra. Nahraďte <resource group> a <cluster name> příslušnými hodnotami. Nahraďte <dnsname> názvem DNS, který jste vytvořili pro server LDAP.

    Následující příkaz je založený na nastavení PROTOKOLU LDAP v předchozí části. Pokud jste tento oddíl přeskočili, protože už máte existující server LDAP, zadejte odpovídající hodnoty pro tento server. Ujistěte se, že jste v Azure CLI nahráli soubor certifikátu, například ldap.crt, na svou cloudovou jednotku.

    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 dokončení tohoto příkazu byste měli být schopni použít CQLSH nebo jakýkoli opensourcový ovladač klienta Apache Cassandra pro připojení k datovému centru spravované instance s uživatelem přidaným v předchozím kroku.

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