Bagikan melalui


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 terkelola. Artikel ini membahas cara mengaktifkan autentikasi Lightweight Directory Access Protocol (LDAP) ke kluster dan pusat data Anda.

Penting

Autentikasi LDAP berada dalam pratinjau publik.

Fitur ini disediakan tanpa perjanjian tingkat layanan. Kami tidak merekomendasikannya 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, Anda membuat server LDAP sederhana pada komputer virtual di Azure. Jika Anda sudah memiliki server LDAP yang berjalan, Anda dapat melompat ke depan untuk Mengaktifkan autentikasi LDAP.

  1. Sebarkan komputer virtual di Azure dengan menggunakan Ubuntu Server 18.04 Long-Term Support (LTS). Untuk instruksi mendetail, lihat Menyebarkan server Ubuntu.

  2. Beri nama Sistem Nama Domain (DNS) pada server Anda.

    Cuplikan layar yang memperlihatkan nama DNS komputer virtual di portal Microsoft Azure.

  3. Instal Docker pada komputer virtual. Untuk tutorial, lihat Menginstal dan menggunakan Docker di Ubuntu 18.04.

  4. Di direktori beranda, salin dan tempel teks berikut dan pilih Enter. Perintah ini 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. Kembali ke direktori beranda.

    cd ..
    
  6. Jalankan perintah berikut. Ganti <dnsname> dengan nama DNS yang Anda buat untuk server LDAP Anda sebelumnya. Perintah ini menyebarkan server LDAP dengan Keamanan Lapisan Transportasi (TLS) yang diaktifkan ke kontainer Docker dan 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. 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
    

    Cuplikan layar yang memperlihatkan output dari perintah untuk memverifikasi sertifikat.

  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 melewati bagian sebelumnya karena Anda sudah memiliki server LDAP, pastikan bahwa server memiliki sertifikat Secure Sockets Layer server yang diaktifkan. Yang subject alternative name (dns name) ditentukan untuk sertifikat juga harus cocok dengan domain server tempat LDAP dihosting, atau autentikasi gagal.

  1. Saat ini, autentikasi LDAP adalah fitur pratinjau publik. Jalankan perintah berikut 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. Ganti <dnsname> dengan nama DNS yang Anda buat untuk server LDAP Anda.

    Perintah berikut 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 mengunggah file sertifikat seperti ldap.crt ke drive cloud 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 atau driver klien sumber terbuka Apache Cassandra untuk terhubung ke pusat data instans terkelola Anda dengan pengguna yang ditambahkan pada langkah sebelumnya.

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