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

يوفر مثيل Azure المُدار لـ Apache Cassandra التثبيت الآلي وعمليات التحجيم لمراكز البيانات المدارة ذات المصدر المفتوح لـ Apache Cassandra. تتناول هذه المقالة كيفية تمكين مصادقة LDAP لمجموعاتك ومراكز البيانات.

هام

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

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

نشر خادم LDAP في Azure

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

  1. نشر جهاز ظاهري في Azure باستخدام Ubuntu Server 18.04 LTS. يمكنك اتباع الإرشادات هنا.

  2. امنح الخادم اسم DNS:

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

  3. تثبيت Docker على الجهاز الظاهري. نوصي بهذا البرنامج التعليمي.

  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
    

    Screenshot of output from command to verify certificate.

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

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

الخطوات التالية