Bagikan melalui


Cara mengaktifkan autentikasi LDAP di Azure Managed Instance for Apache Cassandra

Azure Managed Instance for Apache Cassandra menyediakan operasi penyebaran dan penskalaan otomatis untuk pusat data Apache Cassandra sumber terbuka yang dikelola. Artikel ini membahas cara mengaktifkan autentikasi LDAP ke kluster dan pusat data Anda.

Penting

Autentikasi LDAP berada dalam pratinjau publik. Fitur ini disediakan tanpa perjanjian tingkat layanan, dan tidak disarankan untuk beban kerja produksi. Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Prasyarat

Menyebarkan Server LDAP di Azure

Di bagian ini, kita akan menelusuri pembuatan server LDAP sederhana pada Komputer Virtual di Azure. Jika Anda sudah memiliki server LDAP yang berjalan, Anda dapat melewati bagian ini dan meninjau cara mengaktifkan autentikasi LDAP.

  1. Sebarkan Komputer Virtual di Azure menggunakan Ubuntu Server 18.04 LTS. Anda dapat mengikuti instruksi di sini.

  2. Beri nama DNS pada server Anda:

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

  3. Instal Docker pada komputer virtual. Kami merekomendasikan tutorial ini .

  4. Di direktori beranda, salin dan tempel teks berikut dan tekan enter. Perintah ini akan membuat file yang berisi akun pengguna LDAP pengujian.

    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. Menavigasi kembali ke direktori beranda

    cd ..
    
  6. Jalankan perintah di bawah ini, ganti <dnsname> dengan nama dns yang Anda buat untuk server LDAP Anda sebelumnya. Perintah ini akan menyebarkan server LDAP dengan TLS diaktifkan ke kontainer Docker, dan juga akan menyalin file pengguna yang Anda buat sebelumnya ke kontainer.

    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. Sekarang salin folder sertifikat dari kontainer (ganti <dnsname> dengan nama dns yang Anda buat untuk server LDAP Anda):

    sudo docker cp <dnsname>:/container/service/slapd/assets/certs certs
    
  8. Verifikasi bahwa nama dns sudah benar:

    openssl x509 -in certs/ldap.crt -text
    

    Screenshot of output from command to verify certificate.

  9. Salin file ke ldap.crtclouddrive di Azure CLI untuk digunakan nanti.

  10. Tambahkan pengguna ke ldap (ganti <dnsname> dengan nama dns yang Anda buat untuk server LDAP Anda):

    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
    

Mengaktifkan autentikasi LDAP

Penting

Jika Anda melewatkan bagian di atas karena Anda sudah memiliki server LDAP yang ada, pastikan sertifikat SSL server diaktifkan. Yang subject alternative name (dns name) ditentukan untuk sertifikat juga harus cocok dengan domain server tempat LDAP dihosting, atau autentikasi akan gagal.

  1. Saat ini, autentikasi LDAP adalah fitur pratinjau publik. Jalankan perintah di bawah ini untuk menambahkan ekstensi Azure CLI yang diperlukan:

    az extension add --upgrade --name cosmosdb-preview
    
  2. Atur metode autentikasi ke "Ldap" pada kluster, ganti <resource group> dan <cluster name> dengan nilai yang sesuai:

    az managed-cassandra cluster update -g <resource group> -c <cluster name> --authentication-method "Ldap"
    
  3. Sekarang atur properti di tingkat pusat data. Ganti <resource group> dan <cluster name> dengan nilai yang sesuai, dan <dnsname> dengan nama dns yang Anda buat untuk server LDAP Anda.

    Catatan

    Perintah di bawah ini didasarkan pada penyiapan LDAP di bagian sebelumnya. Jika Anda melewati bagian tersebut karena Anda sudah memiliki server LDAP yang ada, berikan nilai yang sesuai untuk server tersebut sebagai gantinya. Pastikan Anda telah mengunggah file sertifikat seperti ldap.crt ke clouddrive Anda di 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. Setelah perintah ini selesai, Anda harus dapat menggunakan CQLSH (lihat di bawah) atau driver klien sumber terbuka Apache Cassandra untuk terhubung ke pusat data instans terkelola Anda dengan pengguna ditambahkan pada langkah di atas:

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

Langkah berikutnya