استكشاف مشاكل OpenLDAP وإصلاحها

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

يوفر هذا القسم معلومات وإرشادات حول استكشاف مشكلات OpenLDAP وإصلاحها.

تم إيقاف SMTP ويحتاج المستخدمون إلى إعادة ضبط كلمة المرور.

المشكلة

عند عدم إعداد SMTP على واجهة مستخدم Edge، يحتاج المستخدمون الجدد الذين تتم إضافتهم إلى Edge إلى طريقة لضبط كلمة مرور.

رسائل الخطأ

Unknown username and password combination.

الأسباب المحتملة

لا يمكن للمستخدمين الجدد تلقّي رسالة إلكترونية من الرابط "هل نسيت كلمة المرور؟" لضبط كلمة مرور بسبب عدم إعداد بروتوكول SMTP.

درجة الدقّة

يمكنك معالجة هذه المشكلة بإحدى الطرق التالية:

الحل 1: ضبط خادم SMTP

يمكنك ضبط خادم SMTP لضبط كلمة مرور جديدة للمستخدم باستخدام التعليمات الواردة في المستندات.

الحل الثاني: استخدام بروتوكول LDAP

إذا لم تتمكن من إعداد خادم SMTP، استخدِم أوامر LDAP أدناه لضبط كلمة المرور الجديدة لمستخدم:

  1. يحتاج أحد مشرفي المؤسسة الحاليين إلى إضافة المستخدم المحدّد عبر واجهة مستخدم Edge كما هو موضح أدناه:

  2. استخدِم الأمر ldapsearch للعثور على الاسم المميز للمستخدم (dn) وإعادة توجيه الناتج إلى ملف:
    ldapsearch -w Secret123 -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h localhost -p 10389 > ldap.txt
    

    إليك مثال على إدخال نظام أسماء النطاقات لأحد المستخدمين، إلى جانب السمات الخاصة بالمستخدم:

    dn:uid=f7a4a4a5-7c43-4168-a47e-6e9a1417cc29,ou=users,ou=global,dc=apigee,dc=com
    mail: apigee_validator@apigee.com
    userPassword:: e1NTSEF9b0FrMFFXVmFjbWRxM1BVaFZzMnllWGZMdkNvNjMwNTJlUDZYN3c9PQ=
     =
    uid: f7a4a4a5-7c43-4168-a47e-6e9a1417cc29
    objectClass: inetOrgPerson
    sn: Validator
    cn: apigee
    
  3. افتح الملف ldap.txt وابحث عن اسم المستخدم الجديد الذي تمت إضافته استنادًا إلى سمة البريد الإلكتروني للمستخدم الجديد.
  4. نفِّذ الأمر ldappassword لإضافة كلمة مرور للمستخدم الجديد باستخدام الاسم المميز. في هذا المثال، يتم ضبط كلمة مرور المستخدم على Apigee123:
    ldappasswd -h localhost -p 10389 -D "cn=manager,dc=apigee,dc=com" -W -s Apigee123
    "uid=f7a4a4a5-7c43-4168-a47e-6e9a1417cc29,ou=users,ou=global,dc=apigee,dc=com"
    
  5. سجّل الدخول إلى واجهة مستخدم Edge كمستخدم جديد باستخدام كلمة المرور المحددة في الخطوة السابقة. يمكن للمستخدم ضبط كلمة مرور جديدة بعد تسجيل الدخول إلى واجهة المستخدم.

لا يتم إنشاء نسخة طبق الأصل من LDAP

المشكلة

تشتمل العديد من عمليات تثبيت Edge على مراكز بيانات متعددة، على سبيل المثال DC-1 وDC-2. وعند تسجيل الدخول إلى واجهة مستخدم Edge في DC-1 كمشرف مؤسسة، يمكنك عرض قائمة المستخدمين، ولكن لا تظهر قائمة المستخدمين نفسها في واجهة مستخدم Edge في DC-2.

رسائل الخطأ

لا تظهر أي أخطاء، فواجهة مستخدم Edge لا تعرض ببساطة قائمة المستخدمين الذين كان من المفترض أن يتم نسخهم عبر جميع خوادم OpenLDAP.

الأسباب المحتملة

عادةً ما يكون سبب هذه المشكلة هو ضبط النسخ المتماثل لـ OpenLDAP الذي تم إعداده بشكلٍ غير صحيح، وليس التثبيت نفسه. وقد ينقطع النسخ المتماثل إذا كانت الشبكة بين خوادم OpenLDAP لا تسمح بحركة المرور على المنفذ 10389.

التشخيص

اتّبِع الخطوات التالية لتشخيص المشكلة:

  1. تحقَّق مما إذا كان ldapsearch يعرض البيانات من كل خادم OpenLDAP:
    ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h <host-ip> -p 10389
    
  2. تحقَّق من إمكانية الاتصال بكل عقدة OpenLDAP من عُقد OpenLDAP الأخرى على المنفذ 10389. في حال تثبيت telnet، استخدم الأمر التالي:
    telnet <OpenLDAP_Peer_IP> 10389
    
  3. إذا لم يكن telnet متاحًا، فاستخدم netcat للتحقق من الاتصال على النحو التالي:

    nc -vz <OpenLDAP_Peer_IP> 10389
    
  4. تحقَّق من إعدادات النسخ المتماثل في الملف التالي:
    /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    

    يجب أن يحتوي الملف على إعدادات على النحو التالي:

    olcSyncRepl: rid=001
      provider=ldap://__OTHER_LDAP_SERVER__/
      binddn="cn=manager,dc=apigee,dc=com"
      bindmethod=simple
      credentials=__LDAP_PASSWORD__
      searchbase="dc=apigee,dc=com"
      attrs="*,+"
      type=refreshAndPersist
      retry="60 1 300 12 7200 +"
      timeout=1
    
  5. تحقَّق أيضًا من الملف نفسه لقيمة السمة olcMirrorMode. يجب ضبطها على القيمة TRUE:
    grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    
  6. تحقَّق من قواعد برنامج تضمين iptables وtcp. يُرجى إزالة أي قواعد لا تسمح لخوادم OpenLDAP النظيرة بالاتصال بعضها ببعض. عليك التعاون مع مشرف الشبكة لضبط القواعد بشكل مناسب.
  7. تأكَّد من أن كلمة مرور نظام OpenLDAP هي نفسها في كل عقدة OpenLDAP.
  8. تحقق من عدم وجود أحرف مخفية في ملفات إعداد ldif التي يتم استخدامها لإعداد النسخ المماثل لـ N-Way OpenLDAP عن طريق تشغيل dos2unix مقابل ملفات ldif التي تم إنشاؤها لتعديل التهيئة. وعادةً ما يتسبب ملف ldif الذي يحتوي على حروف غير صالحة في تعذُّر تشغيل الأمر ldapmodify، وبالتالي قد لا يتم إعداد النسخ المتماثل. أزِل أي أحرف غير صالحة واحفظ ملفات الإعداد.

في حال استمرار المشكلة، يُرجى التواصل مع فريق دعم Apigee للحصول على مساعدة في إعداد النسخ المماثل لـ N-Way OpenLDAP.

تعذُّر بدء OpenLDAP

المشكلة

لا يبدأ OpenLDAP.

رسائل الخطأ

SLAPD Dead But Pid File Exists

الأسباب المحتملة

تحدث هذه المشكلة عادةً بسبب وجود ملف قفل يتم تركه على نظام الملفات ويجب إزالته.

التشخيص

اتّبِع الخطوات التالية لتشخيص هذه المشكلة:

  1. تحقَّق من وجود قفل عملية تم فرضها OpenLDAP أو ملف PID في المكان التالي:
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
    
  2. احذف القفل وملف pid، إن تم العثور عليهما، وحاوِل إعادة تشغيل openldap.
    rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    Rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
    
  3. في حال بدء عملية حظر OpenLDAP، تخطَّ الخطوات التالية.
  4. في حال لم تبدأ عملية صفعات OpenLDAP، حاوِل تنفيذ الصفعات في وضع تصحيح الأخطاء وابحث عن أي أخطاء:
    slapd -h ldap://:10389/ -u apigee -F /opt/apigee/data/apigee-openldap/slapd.d -d 255
    
  5. قد تشير الأخطاء إلى مشاكل في الموارد. تحقق من استخدام الذاكرة ووحدة المعالجة المركزية على النظام.
  6. تحقَّق من إصدار OpenLDAP، وأجرِ الترقية إذا كان قديمًا. تحقَّق من توفُّر الإصدارات المتوافقة من بروتوكول OpenLDAP في مستند البرامج المتوافقة.
    slapd -V
    
  7. يمكنك استخدام strace لتحديد مشاكل عملية الرفض وحلّها، وتقديم مخرجات متابعة إلى دعم Apigee:
    strace -tt -T -f -F -i -v -e read=all -s 8192 -e write=all -o /tmp/strace.out -p <pid>
    

تلف بيانات OpenLDAP

المشكلة

لم يعد بإمكان المستخدمين إجراء استدعاءات الإدارة أو تسجيل الدخول إلى واجهة مستخدم Edge. قد يشير استخدام أداة ldapsearch لطلب البحث إلى المستخدمين إلى توفُّر المستخدم في مخزن بيانات LDAP أو تحديد المستخدمين أو الأدوار المفقودة المُحتمَلة.

رسائل الخطأ

Unknown username and password combination.

الأسباب المحتملة

قد تحدث هذه المشكلة عادةً بسبب تلف بيانات OpenLDAP. ولا تتلف بيانات OpenLDAP عادةً. ولكن في بعض الحالات النادرة التي يحدث فيها ذلك، قد يكون سبب التلف هو تعطُّل قرص النظام أو مشاكل في مساحة القرص.

التشخيص

  1. تحقَّق من مساحة القرص في النظام الذي تم تثبيت OpenLDAP بها باستخدام الأمر التالي:
    du -m /opt
    
  2. إذا رأيت أنّ مساحة القرص المستخدَمة قريبة جدًا من نسبة 100%، يشير ذلك إلى أنّ سبب هذه المشكلة هو نفاد مساحة القرص في النظام.

درجة الدقّة

إذا نفدت مساحة القرص على النظام أو أوشكت مساحة القرص على النفاد، ننصحك بإضافة المزيد من مساحة القرص لضمان وجود مساحة كافية على القرص.

بعد توفّر مساحة كافية على القرص، يمكنك استخدام أحد الحلول أدناه لمعالجة مشكلة تلف بيانات LDAP:

  1. استعادة بيانات OpenLDAP من النسخة الاحتياطية.
  2. قم بتنظيف قاعدة بيانات OpenLDAP.

الحل الأول: استعادة بيانات LDAP من النسخة الاحتياطية

احتفظ بنسخة احتياطية في عقدة OpenLDAP صالحة. يجب إجراء النسخ الاحتياطي بانتظام. يمكنك الاطّلاع على دليل عمليات السحابة الإلكترونية الخاصة في Apigee للتعرُّف على أفضل الممارسات بشأن النُسخ الاحتياطية:

slapcat -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif

يمكن استخدام الخطوات التالية لاستعادة بيانات OpenLDAP من نسخة احتياطية جيدة.

  1. أوقِف عقدة OpenLDAP التي يجب استعادة البيانات لها:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. غيِّر الدليل إلى دليل بيانات OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
    
  3. احتفظ بنسخة احتياطية من بيانات OpenLDAP الحالية باستخدام الأمر Move:
    mv ldap ldap_orig
    
  4. التبديل إلى مستخدم واجهة برمجة التطبيقات:
    su apigee
    
  5. من الدليل /opt/apigee/data/apigee-openldap، أنشِئ دليل بيانات OpenLDAP جديد بالاسم الأصلي:
    mkdir ldap
    
  6. احذِف النسخة الاحتياطية من الدليل الفرعي ldap_orig/DB_CONFIG من الخطوة 3 وانسخها إلى الدليل openldap.
    cp ldap_orig/DB_CONFIG ldap
    
  7. لاستعادة البيانات من النسخة الاحتياطية التي تم التقاطها باستخدام slapcat، يمكنك استخدام slapadd لاستيراد المعرّف الذي يحتوي على بيانات جيدة:
    slapadd -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
    
  8. ابدأ عملية OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    

الحل الثاني: تنظيف قاعدة بيانات LDAP

تؤدي الخطوات التالية إلى محو قاعدة بيانات OpenLDAP لتوفير بداية جديدة. ويمكن استخدام هذا الحل في حال عدم توفُّر نسخة احتياطية من البيانات للحالة الأخيرة التي كانت تعمل فيها بيانات OpenLDAP.

  1. أوقِف خدمة OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. غيِّر الدليل إلى دليل بيانات OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
    
  3. احتفظ بنسخة احتياطية من بيانات OpenLDAP الحالية باستخدام الأمر Move:
    mv ldap ldap_orig
    
  4. التبديل إلى مستخدم واجهة برمجة التطبيقات:
    su apigee
    
  5. أنشئ دليل بيانات OpenLDAP جديد بالاسم الأصلي:
    mkdir ldap
    
  6. احتفِظ بالدليل الفرعي الاحتياطي ldap_orig/DB_CONFIG من الخطوة 3 وانسخه إلى الدليل openldap:
    cp ldap_orig/DB_CONFIG ldap
    
  7. أعِد تشغيل عملية OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    
  8. أعِد تشغيل "خادم الإدارة" لفرض إعادة تحميل الاتصالات بخدمة OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    

الحل رقم 3 إعادة ضبط OpenLDAP على تثبيت أساسي

إذا لم يحل الحل رقم 2 المشكلة، يمكنك إعادة ضبط OpenLDAP على عملية تثبيت أساسية، كما هو موضَّح في هذا القسم.

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

لإعادة تعيين بروتوكول OpenLDAP، يلزمك توفر المتطلبات الأساسية التالية:

  • إمكانية تنفيذ عملية الإعداد باستخدام مشرف النظام وبيانات اعتماد الجذر لبروتوكول النفاذ إلى الدليل البسيط.
  • إمكانية الوصول إلى برنامج خدمات "ldapadd"
  • ملف الإعداد الأصلي المحفوظ الصامت لعقدة LDAP/الإدارة.

لإعادة تعيين بروتوكول OpenLDAP، نفذ الخطوات التالية:

  1. أعِد تثبيت OpenLDAP وخادم الإدارة.
    1. إيقاف خادم openldap:
      apigee-service apigee-openldap stop
    2. احذف مجلد بيانات openldap التالف:
      rm -rf /opt/apigee/data/apigee-openldap
    3. إلغاء تثبيت المكوِّن openldap:
      apigee-service apigee-openldap uninstall
    4. أعِد تثبيت المكوِّن openldap باستخدام ملف الإعداد نفسه الذي تم استخدامه في عملية التثبيت الأوليّة:
      /opt/apigee/apigee-setup/bin/setup.sh -p ld -f configfile
      حيث يشير configfile إلى اسم ملف الإعداد.
    5. أعِد تثبيت خادم الإدارة باستخدام ملف الإعداد الأصلي:
      /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configfile

    After doing these steps, Management API calls should work again using the sysadmin account only. However, it will not be possible to log into the Edge UI, and Management API calls with any other users will not work.

  2. Add missing openldap entries for orgs that existed prior to the corruption.

    After the above step is completed, openldap will be missing entries for orgs that existed when the corruption occurred. The majority of the actual org data such as proxy bundles is stored in Cassandra or Zookeeper is not lost. However, running the setup-org script will not automatically add the openldap data for the orgs that already exist in Cassandra, and Zookeeper. This data has to be added manually for every org that existed prior to the corruption using the following steps:

    1. Create an ldif file called missingLDAP.ldif with the following content:
      # orgname, organizations, apigee.com
      dn: o=orgname,ou=organizations,dc=apigee,dc=com
      objectClass: organization
      O: orgname
      
      # userroles, orgname, organizations, apigee.com
      dn: ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com
      ou: userroles
      objectClass: organizationalUnit
      
      # orgadmin, userroles, orgname, organizations, apigee.com
      dn: cn=orgadmin,ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com
      objectClass: organizationalRole
      cn: orgadmin
      roleOccupant: uid=admin,ou=users,ou=global,dc=apigee,dc=com
      
      # resources, orgadmin, userroles, orgname, organizations, apigee.com
      dn: ou=resources,cn=orgadmin,ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com
      ou: resources
      objectClass: organizationalUnit
      
      # @@@, resources, orgadmin, userroles, orgname, organizations, apigee.com
      dn: cn=@@@,ou=resources,cn=orgadmin,ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com
      roleOccupant: ou=delete,ou=permissions,dc=apigee,dc=com
      roleOccupant: ou=get,ou=permissions,dc=apigee,dc=com
      roleOccupant: ou=put,ou=permissions,dc=apigee,dc=com
      labeledURI: /
      objectClass: organizationalRole
      objectClass: labeledURIObject
      cn: @@@

      حيث orgname هي المؤسسة التي تحاول إعادة إنشائها.

    2. أضِف كيانات LDAP غير المتوفّرة باستخدام الأمر التالي:
      ldapadd -x -w  -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -f missingLDAP.ldif

    ستؤدي الخطوات أعلاه إلى إنشاء الإدخالات غير المتوفرة لمؤسسة حالية وأذونات orgadmin لتلك المؤسسة. كرِّر الخطوات لكل مؤسسة تحتاج إلى إعادة إنشائها. في هذه المرحلة، يمكنك إضافة orgadmin مستخدم إلى مؤسسة، إلا أن الأدوار التلقائية الأخرى غير موجودة بعد، لذا يجب إضافتهم من خلال الخطوة التالية.

  3. إضافة الأدوار والأذونات التلقائية المفقودة إلى مؤسسة حالية

    باستخدام ملف الإعداد نفسه الذي تم استخدامه في البداية لإعداد أي من المؤسسات الحالية، يمكنك تشغيل الأمر التالي:

    /opt/apigee/apigee-service/bin/apigee-service apigee-provision create-roles -f configfile
  4. بعد اتباع هذا الإجراء، ستحتاج إلى إجراء ما يلي يدويًا:

    • أضف أي أدوار مخصصة كانت موجودة قبل التلف باستخدام واجهة المستخدم أو واجهة برمجة تطبيقات الإدارة،
    • أضِف أي مستخدمين إلى أدوار المستخدمين ذات الصلة.
  5. (اختياري) أعد إنشاء تهيئة المصادقة الخارجية على الإدارة.

    استعِد /opt/apigee/customer/application/management-server.properties في حال عدم تغيير الإعدادات. نظرًا لعدم إعادة تثبيت واجهة المستخدم، يجب أن تظل /opt/apigee/customer/application/ui.properties كما هي نظرًا لاستعادة بيانات اعتماد مسؤول إدارة النظم من خلال التثبيت الجديد للإدارة.

  6. (اختياري) أعِد تثبيت Apigee mTLS في عقدة الإدارة.

    إذا سبق أن تم تثبيت Apigee mTLS، اتّبِع دليل تثبيت Apigee mTLS لإعادة تثبيته على عقدة خادم الإدارة.

في حال استمرار المشكلة، يُرجى التواصل مع فريق دعم Apigee للحصول على مزيد من المساعدة.