LDAP Server
ระบบต่างๆ เช่น Nexus
รองรับการตรวจสอบสิทธิ์ด้วย LDAP Casdoor ยังได้ทำการพัฒนา LDAP server แบบง่ายๆ ที่รองรับการทำงานของ bind และ search
เอกสารนี้อธิบายวิธีการเชื่อมต่อกับ LDAP server ใน Casdoor และการทำการตรวจสอบสิทธิ์การเข้าสู่ระบบแบบง่ายๆ
LDAP Server Port
LDAP server ฟังที่พอร์ต 389
โดยค่าเริ่มต้น คุณสามารถเปลี่ยนพอร์ตเริ่มต้นได้โดยการแก้ไขค่า ldapServerPort
ใน conf/app.conf
วิธีการทำงาน
คล้ายกับ LDAP client ใน Casdoor, ผู้ใช้ใน LDAP server ล้วนเป็น subclasses ของ posixAccount
เมื่อ server ได้รับชุดข้อมูลที่ถูกส่งมาโดย LDAP, มันจะทำการวิเคราะห์ cn
และ ou
, ที่ cn
หมายถึงชื่อผู้ใช้ และ ou
หมายถึงชื่อองค์กร dc
ไม่สำคัญ
หากเป็นการทำงานของ bind, server จะใช้ Casdoor เพื่อตรวจสอบชื่อผู้ใช้และรหัสผ่าน และให้สิทธิ์ผู้ใช้ใน Casdoor
หากเป็นการทำงานของ search, server จะตรวจสอบว่าการทำงานของ search นั้นถูกต้องตามกฎหมายหรือไม่, ตามสิทธิ์ที่ได้รับจากการทำงานของ bind, และส่งคำตอบกลับ
เราเพียงแค่รองรับ Simple Authentication
วิธีการ Bind
ใน Casdoor LDAP server, เราเพียงแค่รู้จัก DN
ที่มีรูปแบบคล้ายกับนี้: cn=admin,ou=built-in,dc=example,dc=com
กรุณาตั้งค่า DN
ของผู้ดูแลระบบให้มีรูปแบบดังกล่าวข้างต้น จากนั้น, คุณสามารถใช้ DN
นี้เพื่อ bind กับ LDAP server ด้วยรหัสผ่านของผู้ใช้เพื่อเข้าสู่ระบบ Casdoor เพื่อการตรวจสอบ หากการตรวจสอบของ server ประสบความสำเร็จ, ผู้ใช้จะได้รับสิทธิ์ใน Casdoor
วิธีการ Search
เมื่อการทำงานของ bind สำเร็จ, คุณสามารถทำการ search มีความแตกต่างบางอย่างระหว่างการทำงานของ search และ bind
- เพื่อค้นหาผู้ใช้บางคน, เช่น
Alice
ภายใต้องค์กรbuilt-in
, คุณควรใช้DN
แบบนี้:ou=built-in,dc=example,dc=com
, และเพิ่มcn=Alice
ในฟิลด์ Filter - เพื่อค้นหาผู้ใช้ทั้งหมดภายใต้องค์กรหนึ่ง, เช่น ผู้ใช้ทั้งหมดใน
built-in
, คุณควรใช้DN
แบบนี้:ou=built-in,dc=example,dc=com
, และเพิ่มcn=*
ในฟิลด์ Filter - เพื่อค้นหาผู้ใช้ทั้งหมดในทุกองค์กร (โดยสมมติว่าผู้ใช้มีสิทธิ์เพียงพอ), คุณควรใช้
DN
แบบนี้:ou=*,dc=example,dc=com
, และเพิ่มcn=*
ในฟิลด์ Filter - To search for all users in a specific group, you should use a filter query like this:
(memberOf=organization_name/group_name)
in the Filter field.