مشاركة عبر


تمكين مصادقة LDAP في مثيل Azure المدار ل Apache Cassandra

يوفر Azure Managed Instance لـ Apache Cassandra عمليات التوزيع والتوسيع الآلية لمراكز بيانات Apache Cassandra المُدارة مفتوحة المصدر. تتناول هذه المقالة كيفية تمكين مصادقة البروتوكول الخفيف لتغيير بيانات الدليل (LDAP) إلى المجموعات ومراكز البيانات.

هام

مصادقة LDAP في المعاينة العامة. LDAP لا يدعم Cassandra v5.0، وهو قيد التطوير حاليا، يمكنك تقديم اهتمامك عن طريق إنشاء تذكرة دعم Technical Azure. يتم توفير هذه الميزة دون اتفاقية على مستوى الخدمة. لا نوصي به لأحمال عمل الإنتاج. لمزيد من المعلومات، راجع ⁧⁩شروط الاستخدام التكميلية لمعاينات Microsoft Azure⁧⁩.

المتطلبات الأساسية

نشر خادم LDAP في Azure

في هذا القسم، يمكنك إنشاء خادم LDAP بسيط على جهاز ظاهري في Azure. إذا كان لديك بالفعل خادم LDAP قيد التشغيل، يمكنك التخطي إلى تمكين مصادقة LDAP.

  1. نشر جهاز ظاهري في Azure باستخدام Ubuntu Server 18.04 Long-Term Support (LTS). للحصول على إرشادات مفصلة، راجع نشر خادم Ubuntu.

  2. امنح الخادم اسم نظام أسماء المجالات (DNS).

    لقطة شاشة تعرض اسم DNS للجهاز الظاهري في مدخل Microsoft Azure.

  3. تثبيت Docker على الجهاز الظاهري. للحصول على برنامج تعليمي، راجع تثبيت Docker واستخدامه على Ubuntu 18.04.

  4. في الدليل الرئيسي، انسخ النص التالي والصقه وحدد 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 
    
  5. ارجع إلى الدليل الرئيسي.

    cd ..
    
  6. قم بتشغيل الأمر التالي. استبدل <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
    
  7. انسخ مجلد الشهادات من الحاوية. استبدل <dnsname> باسم DNS الذي قمت بإنشائه لخادم LDAP.

    sudo docker cp <dnsname>:/container/service/slapd/assets/certs certs
    
  8. تحقق من صحة اسم DNS.

    openssl x509 -in certs/ldap.crt -text
    

    لقطة شاشة تعرض الإخراج من الأمر للتحقق من الشهادة.

  9. انسخ ldap.crt الملف إلى clouddrive في Azure CLI للاستخدام لاحقا.

  10. أضف المستخدم إلى 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، فتأكد من تمكين شهادات طبقة مآخذ التوصيل الآمنة للخادم. subject alternative name (dns name) يجب أن يتطابق المحدد للشهادة أيضا مع مجال الخادم الذي تتم استضافة LDAP عليه، أو تفشل المصادقة.

  1. حاليا، مصادقة LDAP هي ميزة معاينة عامة. قم بتشغيل الأمر التالي لإضافة ملحق Azure CLI المطلوب:

    az extension add --upgrade --name cosmosdb-preview
    
  2. تعيين أسلوب المصادقة إلى Ldap على نظام المجموعة. استبدل <resource group> و <cluster name> بالقيم المناسبة.

    az managed-cassandra cluster update -g <resource group> -c <cluster name> --authentication-method "Ldap"
    
  3. الآن قم بتعيين الخصائص على مستوى مركز البيانات. استبدل <resource group> و <cluster name> بالقيم المناسبة. استبدل <dnsname> باسم DNS الذي قمت بإنشائه لخادم LDAP.

    يستند الأمر التالي إلى إعداد LDAP في القسم السابق. إذا تخطيت هذا المقطع لأن لديك بالفعل خادم LDAP موجود، فقم بتوفير القيم المقابلة لهذا الخادم بدلا من ذلك. تأكد من تحميل ملف شهادة مثل ldap.crtإلى محرك الأقراص السحابي في 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. بعد انتهاء هذا الأمر، يجب أن تكون قادرا على استخدام CQLSH أو أي برنامج تشغيل عميل مفتوح المصدر Apache Cassandra للاتصال بمركز بيانات المثيل المدار مع المستخدم المضاف في الخطوة السابقة.

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