Skip to content
Lang Toggle

دليل تثبيت وكيل بيـم LDAP

وقت القراءة المقدر لهذه المقالة:25 دقائق

تقدم هذه المقالة دليلاً شاملاً لتثبيت وكيل بيـم LDAP، ويعمل الوكيل كجسر آمن بين خدمة LDAP/Active Directory الداخلية لدى الجهة ومنصة بيـم السحابية، مما يسهّل مزامنة الهياكل التنظيمية وبيانات المستخدمين.

متطلبات النظام

1. متطلبات الأجهزة

  • تعتمد الموارد المطلوبة على حجم الدليل (directory) إجمالي عدد المستخدمين.
النطاقعدد السجلاتالمعالجالذاكرةمساحة التخزين
صغير< 10,0002 Cores4 جيجابايت10 جيجابايت
متوسط10,000 - 100,0004 Cores6 جيجابايت20 جيجابايت
كبير> 100,0004 Cores8 جيجابايت أو أكثر50 جيجابايت

2. متطلبات البرمجيات

  • نظام التشغيل: Linux ‏(CentOS 7+‎، Ubuntu 18.04+‎، Debian 10+‎)، أو Windows Server، أو macOS.
  • بيئة تشغيل جافا (JRE): الإصدار 11 أو أحدث (يُنصح باستخدام OpenJDK 11).

3. متطلبات الشبكة

  • يعمل الوكيل بنمط Pull-based (اتصال صادر فقط)، مما يسهّل إعدادات جدار الحماية، ولا يتطلب فتح أي منافذ من الإنترنت.
الاتجاهالبروتوكولالمنفذالوجهةالغرض
صادر (Outbound)HTTPS (TCP)443عنوان خادم Beem (مثل: open.beem.sa)جلب الإعدادات، إرسال إشارات الحالة (heartbeats)، رفع البيانات
داخلي (Internal)LDAP (TCP)389خادم LDAP/AD الخاص بكقراءة بيانات الدليل (بدون تشفير SSL)
داخلي (Internal)LDAPS (TCP)636خادم LDAP/AD الخاص بكقراءة بيانات الدليل باستخدام SSL/TLS الموصى به

WARNING

ملاحظة: إذا كان الخادم لديك يستخدم وكيل (Proxy) للوصول إلى الإنترنت، فتأكد من تهيئة بيئة تشغيل جافا لاستخدامه (عبر ‎-Dhttp.proxyHost‎ و ‎-Dhttp.proxyPort‎).

التثبيت

1. هيكل المجلدات

  • نوصي بإنشاء مجلد مخصص للوكيل (على سبيل المثال: ‎/opt/beem-ldap-agent‎).
/opt/beem-ldap-agent/
├── bw-ldap-agent.jar       # The main application JAR (Fat JAR)
├── conf/
│   └── ldapAgent.yml       # Logic configuration file
├── logs/                   # Application logs (auto-generated)
├── data/                   # application datas (auto-generated)
└── start.sh                # Startup script

2. خطوات النشر

1. إنشاء المجلد:
mkdir -p /opt/beem-ldap-agent/conf
2. نسخ الملفات:
ارفع ملف ‎bw-ldap-agent.jar‎ إلى المجلد.
3. إعداد ملف الإعدادات:
انسخ ملف القالب ‎ldapAgent.yml‎ إلى مجلد ‎conf‎.

الإعدادات

  • يتكوّن إعداد الوكيل من إعدادات محلية (خاصة بالاتصال) وإعدادات بعيدة (قواعد المزامنة، ويتم إدارتها عبر وحدة تحكم إدارة بيم).

الإعدادات المحلية (conf/ldapAgent.yml):

  • قم بتحرير ملف ‎conf/ldapAgent.yml‎ لإعداد الاتصال مع بيـم.
  • برجاء اتباع التنسيق وإضافة روابط الخادم (server URLs) وبيانات الربط (bindDN) وكلمة مرور الربط (bindPassword) واسم النطاق الأساسي (baseDN) كما هو موضح أدناه.
agent_settings:
  # The Beem Server API Endpoint provided by your administrator
  server_url: https://open.beem.sa
  
  # OAuth2 Client Credentials
  client_id: YOUR_CLIENT_ID
  # Oauth2 Client Secret
  client_secret: YOUR_CLIENT_SECRET
  
  # Set to true to enable verbose logging for debugging
  debug: false
  
ldap_config:
  server_urls:
    # your ldap server 
    - ldaps://xxxx:xxx
  # ldap bind dn
  bind_dn: CN=x,OU=y,DC=z,DC=ad
  # ldap bind password
  bind_password: 'xxxx'
  # ldap search basedn 
  base_dn: DC=xxx,DC=ad

تشغيل الوكيل

التشغيل اليدوي (Linux/macOS)

  • استخدم الأمر التالي لتشغيل الوكيل في الخلفية:
#!/bin/bash
# start.sh for Beem LDAP Agent
APP_HOME=$(pwd)
JAR_NAME="bw-ldap-agent.jar"
# 1. Check if JAR exists
if [ ! -f "$APP_HOME/$JAR_NAME" ]; then
    echo "ERROR: $JAR_NAME not found in $APP_HOME"
    exit 1
fi
# 2. Start the application
# Use 'nohup' to run in background.
# Redirect stdout and stderr to a log file or /dev/null as per guide, 
# but for error detection we might want to peek at logs or just rely on PID check.
echo "Starting $JAR_NAME..."
nohup java -jar "$JAR_NAME" > /dev/null 2>&1 &
PID=$!
# 3. Check if it actually started
# Wait a few seconds to see if the process crashes immediately
sleep 2
if ps -p $PID > /dev/null; then
    echo "$PID" > pid
    echo "SUCCESS: Agent started with PID $PID"
    exit 0
else
    echo "FAILURE: Agent failed to start (Process $PID died)."
    echo "Check logs/ for details."
    exit 1
fi

التحقق واستكشاف الأخطاء وإصلاحها

1. التحقق من الاتصال

  • تحقق من السجلات في ‎logs/app.log‎ (أو من مخرجات وحدة التحكم).
  • نجاح: يجب أن ترى رسائل مثل Heartbeat success أو Next sync scheduled at...
  • فشل: ابحث عن رسائل مثل Connection refused، Unknown host، أو 401 Unauthorized.

المشكلات الشائعة

  1. فشل الاتصال بـ LDAP:
  • تأكد من إمكانية الوصول إلى عنوان IP ومنفذ خادم LDAP من جهاز الوكيل(‎telnet <ip> <port>‎).
  • تحقق مما إذا كان SSL مطلوبًا لكنه غير مفعّل في الإعدادات البعيدة.
  1. غير مصرح 401 Unauthorized:
  • تأكد من صحة ‎client_id‎ و ‎client_secret‎.
  • تأكد من أن وقت النظام على جهاز الوكيل متزامن (NTP).
  1. عدم مزامنة أي بيانات:
  • تحقق من أن ‎user_filter‎ في الإعدادات البعيدة (وحدة تحكم إدارة Beem) يطابق المستخدمين لديك.
  • تحقق من صحة قيمة Base DN.