عربي (AR)
Englishتقدم هذه المقالة دليلاً شاملاً لتثبيت وكيل بيـم LDAP، ويعمل الوكيل كجسر آمن بين خدمة LDAP/Active Directory الداخلية لدى الجهة ومنصة بيـم السحابية، مما يسهّل مزامنة الهياكل التنظيمية وبيانات المستخدمين.
متطلبات النظام
1. متطلبات الأجهزة
- تعتمد الموارد المطلوبة على حجم الدليل (directory) إجمالي عدد المستخدمين.
| النطاق | عدد السجلات | المعالج | الذاكرة | مساحة التخزين |
|---|---|---|---|---|
| صغير | < 10,000 | 2 Cores | 4 جيجابايت | 10 جيجابايت |
| متوسط | 10,000 - 100,000 | 4 Cores | 6 جيجابايت | 20 جيجابايت |
| كبير | > 100,000 | 4 Cores | 8 جيجابايت أو أكثر | 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 script2. خطوات النشر
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.
المشكلات الشائعة
- فشل الاتصال بـ LDAP:
- تأكد من إمكانية الوصول إلى عنوان IP ومنفذ خادم LDAP من جهاز الوكيل(telnet <ip> <port>).
- تحقق مما إذا كان SSL مطلوبًا لكنه غير مفعّل في الإعدادات البعيدة.
- غير مصرح 401 Unauthorized:
- تأكد من صحة client_id و client_secret.
- تأكد من أن وقت النظام على جهاز الوكيل متزامن (NTP).
- عدم مزامنة أي بيانات:
- تحقق من أن user_filter في الإعدادات البعيدة (وحدة تحكم إدارة Beem) يطابق المستخدمين لديك.
- تحقق من صحة قيمة Base DN.

