PWM هو تطبيق خدمة ذاتية مفتوح المصدر لكلمة المرور لأدلة LDAP.
صفحة المشروع الرسمية موجودة على https://github.com/pwm-project/pwm/.
PWM هو تطبيق قائم على Java Servlet، ويتم حزمه كملف JAR فردي قابل للتنفيذ Java وملف Servlet "WAR" تقليدي وصورة عامل إرساء.
الحد الأدنى من المتطلبات لتطبيق PWM.
نسخة بوم | جافا [^1] | بريمج | القط [^2] |
---|---|---|---|
v2.1.x | 17+ | 3.0 | 9 |
v2.0.x | 11+ | 3.0 | 8-9 |
v1.9.x (موسوعة الحياة) | 8-11 | 3.0 | 7-9 |
[^1] لا توجد متطلبات لتطبيق Java محدد، تستخدم إصدارات PWM Adoptium.
[^2] لا يعد Tomcat متطلبًا صريحًا، ولكنه الحاوية الأكثر شيوعًا المستخدمة مع PWM، والحاوية المستخدمة لبناء عامل الإرساء وonejar.
يتم توزيع PWM في العناصر التالية، ويمكنك استخدام أيهما أكثر ملاءمة.
قطعة أثرية | وصف |
---|---|
جافا قابل للتنفيذ | تطبيق Java JAR القابل للتنفيذ لسطر الأوامر، يتضمن Tomcat. |
حرب | نموذج نشر تطبيق Java WAR (أرشيف الويب) القياسي، يجب أن يكون لديك تكوين Java & Tomcat عامل على الخادم الخاص بك. |
عامل ميناء | تتضمن صورة Docker Java وTomcat. |
بالنسبة لجميع أنواع النشر، سيحتاج كل مثيل PWM إلى دليل applicationPath المحدد على الخادم المحلي الخاص بك لتكوين PWM، وسجله، وملفات وقت التشغيل. بمجرد تكوين PWM، ستطالب واجهة مستخدم الويب الأولية المسؤول بـ LDAP وإعدادات التكوين الأخرى.
تحتوي قطعة أثرية 'onejar' التي تم إصدارها مع PWM على مثيل Tomcat مضمن، لذلك لا تحتاج إلى تثبيت Tomcat لاستخدام هذا الإصدار. إنها مثالية لاختبار وتقييم PWM. ستكون مسؤولاً عن تشغيله كخدمة (إذا رغبت في ذلك).
متطلبات:
يساعد:
java -version
للتأكد من توفر Java 11 أو أفضل منهjava -jar pwm-onejar-2.0.0.jar
للمساعدة في سطر الأوامرمثال لتشغيل برنامج onejar القابل للتنفيذ (مع كون /pwm-applicationPath هو موقع دليل applicationPath الخاص بك):
java -jar pwm-onejar-2.0.0.jar -applicationPath /pwm-applicationPath
افتراضيًا، سيظل الملف القابل للتنفيذ مرتبطًا بوحدة التحكم ويستمع إلى اتصالات HTTPS على المنفذ 8443.
خطوات:
تتضمن صورة عامل الإرساء PWM Java وTomcat. يستمع باستخدام https على المنفذ 8443، ويحتوي على وحدة تخزين مكشوفة كـ /config
. ستحتاج إلى تعيين وحدة التخزين /config
إلى نوع ما من وحدات تخزين الإرساء المستمرة حتى يتمكن PWM من الاحتفاظ بالتكوين.
متطلبات:
خطوات:
docker load --input=pwm-docker-image-v2.0.0.tar
docker create --name mypwm -p '8443:8443' --mount 'type=bind,source=/home/user/pwm-config,destination=/config' pwm/pwm-webapp
docker start mypwm
قبل تكوين PWM، يجب عليك استخدام متصفح/محرر LDAP لضمان الأداء الوظيفي المتوقع لبيئة LDAP الخاصة بك. تعود معظم الصعوبات التي تمت مواجهتها في تكوين PWM إلى مشكلات في إعداد LDAP أو عدم الإلمام بـ LDAP. هناك العديد من متصفحات LDAP المتاحة، والمتصفح الشائع هو Apache Directrory Studio. استخدم المتصفح للتنقل في بيئة LDAP الخاصة بك، والتعرف على بنية الدليل، والتحقق من السلوك المتوقع.
على وجه الخصوص، قد يكون Active Directory LDAP مشكلة لأنه غالبًا ما يتم تكوينه بشكل خاطئ ويعمل بطرق غير معتادة مقارنة بأدلة LDAP الأخرى. على وجه التحديد، يستخدم AD LDAP إحالات لإعادة توجيه عميل LDAP (PWM في هذه الحالة) إلى الخوادم التي يختارها، وبالتالي يجب أن يكون PWM قادرًا على الاتصال بجميع مثيلات خادم وحدة تحكم المجال في بيئة AD باستخدام اسم DNS الذي تم تكوينه بواسطة AD. يجب أيضًا تكوين AD LDAP لاستخدام شهادات SSL حتى تعمل تعديلات كلمة المرور. ومع ذلك، إذا تم تكوين بيئة AD بشكل جيد، فستعمل PWM بشكل جيد معها.
يتضمن PWM محرر تكوين قائم على الويب. عندما يبدأ PWM بدون تكوين، سيطالب دليل التكوين المستند إلى الويب المسؤول بمعلومات التكوين الأساسية. يتم تخزين كافة معلومات التكوين في ملف PwmConfiguration.xml ، الذي سيتم إنشاؤه في دليل مسار التطبيق. يتم استخدام مسار التطبيق أيضًا لملفات أخرى، بما في ذلك قاعدة البيانات المحلية ( LocalDB ) (تُستخدم بشكل أساسي كذاكرة تخزين مؤقت أو لبيئات الاختبار)، وملفات السجل، والملفات المؤقتة. إذا تم استخدام عدة خوادم PWM بالتوازي، فيجب أن يحتوي كل خادم على ملفات PwmConfiguration.xml متطابقة.
يستخدم PWM كلمة مرور التكوين لحماية أي تعديلات على التكوين. تتطلب المصادقة على PWM تسجيل دخول مدعومًا بـ LDAP إلى حساب إداري تم تكوينه. في الإعداد المبكر أو في حالات حدوث مشكلات في دليل LDAP، قد يكون من الضروري الوصول إلى التكوين عندما لا يكون LDAP متاحًا وظيفيًا. ولهذا الغرض، يحتوي PWM على "وضع التكوين" الذي يسمح بتحرير التكوين باستخدام كلمة مرور التكوين، ولكنه يعطل كافة وظائف المستخدم النهائي الأخرى. يمكن تمكين/تعطيل وضع التكوين عن طريق تحرير ملف PwmConfiguration.xml وتغيير خاصية configIsEditable
بالقرب من الجزء العلوي من الملف، ويمكن أيضًا تغييره في واجهة مستخدم الويب.
يمكن تكوين PWM اختياريًا باستخدام RDBMS (المعروف أيضًا باسم خادم قاعدة بيانات SQL). عند تكوينها لاستخدام قاعدة بيانات، سيتم تخزين البيانات الوصفية لمستخدم PWM مثل إجابات التحدي/الاستجابة ورموز TOTP وسجلات الاستخدام والبيانات الأخرى في قاعدة البيانات. عندما لا يتم تكوينها لاستخدام قاعدة بيانات، سيتم تخزين البيانات التعريفية لمستخدم PWM في دليل LDAP. ليس أي منهما أفضل أو أسوأ، أيهما تستخدمه يعتمد على بيئتك.
يجب أن يعمل أي خادم SQL يحتوي على برنامج تشغيل JDBC مدعوم من Java، وسيقوم PWM بإنشاء مخططه الخاص عند الاتصال الأول.
بناء المتطلبات المسبقة:
خطوات البناء:
مثال لينكس:
export JAVA_HOME="/home/vm/JavaJDKDirectory"
git clone https://github.com/pwm-project/pwm
cd pwm
./mvnw clean verify
مثال ويندوز:
set JAVA_HOME="c:JavaJDKDirectory"
git clone https://github.com/pwm-project/pwm
cd pwm
mvnw.cmd clean verify
في نظام التشغيل Windows، نوصي باستخدام مسارات بدون مسافات لكل من دليل PWM وJDK.
التحف التي تم إنشاؤها:
شكل | دليل |
---|---|
حرب | webapp/الهدف |
قابل للتنفيذ | onejar/الهدف |
عامل ميناء | عامل ميناء/الهدف |