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 |
เวอร์ชัน 2.0.x | 11+ | 3.0 | 8-9 |
v1.9.x (EOL) | 8-11 | 3.0 | 7-9 |
[^1] ไม่มีข้อกำหนดสำหรับการนำ Java ไปใช้โดยเฉพาะ การสร้าง PWM ใช้ Adoptium
[^2] Tomcat ไม่ใช่ข้อกำหนดที่ชัดเจน แต่เป็นคอนเทนเนอร์ทั่วไปที่ใช้กับ PWM และเป็นคอนเทนเนอร์ที่ใช้สำหรับ docker และ onejar builds
PWM มีการกระจายในสิ่งประดิษฐ์ต่อไปนี้ คุณสามารถใช้อันไหนก็ได้ที่สะดวกที่สุด
สิ่งประดิษฐ์ | คำอธิบาย |
---|---|
Java ปฏิบัติการได้ | แอปพลิเคชัน Java JAR ที่รันบรรทัดคำสั่งได้ รวมถึง Tomcat |
สงคราม | โมเดลการใช้งานแอปพลิเคชัน Java WAR (Web Archive) มาตรฐาน คุณต้องมีการกำหนดค่า java & tomcat ที่ใช้งานได้บนเซิร์ฟเวอร์ของคุณ |
นักเทียบท่า | อิมเมจนักเทียบท่าประกอบด้วย Java และ Tomcat |
สำหรับการปรับใช้ทุกประเภท แต่ละอินสแตนซ์ PWM จะต้องมีไดเร็กทอรี applicationPath ที่กำหนดไว้บนเซิร์ฟเวอร์ภายในเครื่องของคุณสำหรับไฟล์การกำหนดค่า บันทึก และรันไทม์ของ PWM เมื่อกำหนดค่า PWM แล้ว UI เว็บเริ่มต้นจะแจ้งให้ผู้ดูแลระบบทราบ 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 Directory 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
ใกล้กับด้านบนของไฟล์ และยังสามารถเปลี่ยนได้ใน UI ของเว็บด้วย
คุณสามารถเลือกกำหนดค่า 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
สิ่งประดิษฐ์ที่สร้างขึ้น:
รูปแบบ | ไดเรกทอรี |
---|---|
สงคราม | เว็บแอป/เป้าหมาย |
ดำเนินการได้ | หนึ่งขวด/เป้าหมาย |
นักเทียบท่า | นักเทียบท่า/เป้าหมาย |