كيفية تمكين مصادقة LDAP في Azure Managed Instance ل Apache Cassandra
يوفر مثيل Azure المُدار لـ Apache Cassandra التثبيت الآلي وعمليات التحجيم لمراكز البيانات المدارة ذات المصدر المفتوح لـ Apache Cassandra. تتناول هذه المقالة كيفية تمكين مصادقة LDAP لمجموعاتك ومراكز البيانات.
هام
مصادقة LDAP في المعاينة العامة. يتم توفير هذه الميزة بدون اتفاقية على مستوى الخدمة، ولا يوصى بها لأحمال العمل الخاصة بالإنتاج. لمزيد من المعلومات، راجع شروط الاستخدام التكميلية لمعاينات Microsoft Azure.
المتطلبات الأساسية
- في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
- مثيل مدار من Azure لمجموعة Apache Cassandra. راجع كيفية إنشاء Azure Managed Instance لنظام مجموعة Apache Cassandra من مدخل Microsoft Azure.
نشر خادم LDAP في Azure
في هذا القسم، سنستعرض إنشاء خادم LDAP بسيط على جهاز ظاهري في Azure. إذا كان لديك بالفعل خادم LDAP قيد التشغيل، يمكنك تخطي هذا القسم ومراجعة كيفية تمكين مصادقة LDAP.
نشر جهاز ظاهري في Azure باستخدام Ubuntu Server 18.04 LTS. يمكنك اتباع الإرشادات هنا.
امنح الخادم اسم DNS:
تثبيت Docker على الجهاز الظاهري. نوصي بهذا البرنامج التعليمي.
في الدليل الرئيسي، انسخ والصق النص التالي واضغط على enter. سيقوم هذا الأمر بإنشاء ملف يحتوي على حساب مستخدم 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
الانتقال مرة أخرى إلى الدليل الرئيسي
cd ..
قم بتشغيل الأمر أدناه، مع
<dnsname>
استبدال باسم dns الذي قمت بإنشائه لخادم LDAP الخاص بك في وقت سابق. سينشر هذا الأمر خادم LDAP مع تمكين TLS إلى حاوية Docker، وسينسخ أيضا ملف المستخدم الذي أنشأته سابقا إلى الحاوية.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
الآن انسخ مجلد الشهادات من الحاوية (استبدل
<dnsname>
باسم dns الذي أنشأته لخادم LDAP):sudo docker cp <dnsname>:/container/service/slapd/assets/certs certs
تحقق من صحة اسم dns:
openssl x509 -in certs/ldap.crt -text
انسخ
ldap.crt
الملف إلى clouddrive في Azure CLI للاستخدام لاحقا.أضف المستخدم إلى ldap (استبدل
<dnsname>
باسم dns الذي أنشأته لخادم 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
تمكين مصادقة LDAP
هام
إذا تخطيت القسم أعلاه لأن لديك بالفعل خادم LDAP موجود، فيرجى التأكد من تمكين شهادات SSL للخادم. subject alternative name (dns name)
يجب أن يتطابق المحدد للشهادة أيضا مع مجال الخادم الذي تتم استضافة LDAP عليه، أو ستفشل المصادقة.
حاليا، مصادقة LDAP هي ميزة معاينة عامة. قم بتشغيل الأمر أدناه لإضافة ملحق Azure CLI المطلوب:
az extension add --upgrade --name cosmosdb-preview
تعيين أسلوب المصادقة إلى "Ldap" على نظام المجموعة، واستبدال
<resource group>
و<cluster name>
بالقيم المناسبة:az managed-cassandra cluster update -g <resource group> -c <cluster name> --authentication-method "Ldap"
الآن قم بتعيين الخصائص على مستوى مركز البيانات. استبدل
<resource group>
و<cluster name>
بالقيم المناسبة، و<dnsname>
باسم dns الذي أنشأته لخادم LDAP الخاص بك.إشعار
يستند الأمر أدناه إلى إعداد LDAP في القسم السابق. إذا تخطيت هذا المقطع لأن لديك بالفعل خادم LDAP موجود، فقم بتوفير القيم المقابلة لهذا الخادم بدلا من ذلك. تأكد من تحميل ملف شهادة مثل
ldap.crt
إلى clouddrive الخاص بك في 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
بمجرد اكتمال هذا الأمر، يجب أن تكون قادرا على استخدام CQLSH (انظر أدناه) أو أي برنامج تشغيل عميل Apache Cassandra مفتوح المصدر للاتصال بمركز بيانات المثيل المدار مع المستخدم المضاف في الخطوة أعلاه:
export SSL_VALIDATE=false cqlsh --debug --ssl <data-node-ip> -u <user> -p <password>