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

Azure Managed Instance for Apache Cassandra poskytuje automatizované operace nasazení a škálování pro spravovaná opensourcová datová centra Apache Cassandra. Tento článek popisuje, jak povolit ověřování LDAP v clusterech a datových centrech.

Důležité

Ověřování LDAP je ve verzi Public Preview. Tato funkce je poskytována bez smlouvy o úrovni služeb a nedoporučuje se pro produkční úlohy. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Předpoklady

Nasazení serveru LDAP v Azure

V této části si projdeme vytvoření jednoduchého serveru LDAP na virtuálním počítači v Azure. Pokud už máte spuštěný server LDAP, můžete tuto část přeskočit a zkontrolovat , jak povolit ověřování LDAP.

  1. Nasaďte virtuální počítač v Azure pomocí Ubuntu Serveru 18.04 LTS. Tady můžete postupovat podle pokynů.

  2. Dejte serveru název DNS:

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

  3. Nainstalujte Docker na virtuální počítač. Doporučujeme tento kurz.

  4. V domovském adresáři zkopírujte a vložte následující text a stiskněte enter. Tento příkaz vytvoří soubor obsahující 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. Přechod zpět do domovského adresáře

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

    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. Teď 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
    

    Screenshot of output from command to verify certificate.

  9. ldap.crt Zkopírujte soubor na clouddrive v Azure CLI, abyste ho mohli použít později.

  10. Přidejte uživatele do ldapu (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 výše uvedenou část přeskočili, protože už máte existující server LDAP, ujistěte se, že má povolené certifikáty SSL 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. Nastavte metodu ověřování na Ldap v clusteru a <cluster name> nahraďte <resource group> ji odpovídajícími hodnotami:

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

    Poznámka:

    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, jako ldap.crt je clouddrive.

    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 (viz níže) 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>
    

Další kroky