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
- Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
- Kluster Azure Managed Instance for Apache Cassandra. Tinjau cara membuat kluster Azure Managed Instance for Apache Cassandra dari portal Azure.
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.
Sebarkan Komputer Virtual di Azure menggunakan Ubuntu Server 18.04 LTS. Anda dapat mengikuti instruksi di sini.
Beri nama DNS pada server Anda:
Instal Docker pada komputer virtual. Kami merekomendasikan tutorial ini .
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
Menavigasi kembali ke direktori beranda
cd ..
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
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
Verifikasi bahwa nama dns sudah benar:
openssl x509 -in certs/ldap.crt -text
Salin file ke
ldap.crt
clouddrive di Azure CLI untuk digunakan nanti.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.
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
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"
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
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>