- แบบปกติโดยใช้ OLAT component
- แบบ Shibboleth authentication
- แบบ LDAP authentication
Function ของ LDAP ใน OLAT
- import User ได้ที่ละหลายๆรายการจาก LDAP ในครั้งเดียว
- สร้าง User ใหม่ใน OLAT เมื่อ loging ครั้งแรก โดยนำข้อมูลมาจาก LDAP
- กำหนดให้ตรวจสอบ username และ password แบบ real time / offline ได้ โดยถ้าเป็นแบบ real time จะทำการตรวจสอบ username และ password ไปที่ LDAP ทุกครั้ง แต่แบบ offline จะตรวจสอบจาก username และ password ที่เก็บอยู่ใน OLAT
- สามารถกำหนดให้มี cache สำหรับเก็บ LDAP password ในกรณีที่ไม่สามารถติดต่อกับ LDAP ได้
- สามารถกำหนดให้นำรายชื่อจาก LDAP มาแทนด้วยรายชื่อเดิม
- สามารถ map attribute ของ LDAP ให้ตรงกับ user properties ของ OLAT
- สามารถกำหนดให้รองรับ multiple base หรือกลุ่มใน LDAP ได้หลายกลุ่ม
- รองรับ LDAP server ได้หลากหลายเช่น Apache DA, OpenLDAP, Microsoft Active Directory
- รองรับ SSL
- ldap.enable=true
- ldap.ldapUrl=ldap://localhost:10389
กำหนด url/port ของ LDAP server
- ldap.ldapSystemDN=uid=admin,ou=system
กำหนด DN หรือ user ที่มีสิทธิ login เข้า LDAP server
- ldap.ldapSystemPW=secret
กำหนด password ของ DN หรือ user ที่มีสิทธิ login เข้า LDAP server
- ldap.ldapBases=ou=users,ou=system
กำหนด base ที่เก็บรายชื่อผู้ใช้ที่ต้องการนำเข้า OLAT
- ldap.cacheLDAPPwdAsOLATPwdOnLogin=true
กำหนดให้ OLAT เก็บ password ของ LDAP แบบเข้ารหัสไว้ด้วยเพื่อใช้เวลาที่ไม่สามารถติดต่อกับ LDAP ได้ (ถ้ากำหนดให้เป็น true ต้องกำหนด password.change.allowed=false แต่ถุ้ากำหนดเป็น false ต้องแน่ใจว่า LDAP server online ตลอดเวลาระหว่างใช้ OLAT)
- ldap.convertExistingLocalUsersToLDAPUsers=true
กำหนดให้ OLAT เปลี่ยน LDAP user ที่มีอยู่แล้วใน OLAT (แต่ยังไม่ได้ถูกกำหนดให้เป็น LDAP user) มาเป็น LDAP user (ถ้ากำหนดให้เป็น ture ไม่ควรจะมี user ชื่อ administrator อยู่ใน LDAP base)
- ldap.deleteRemovedLDAPUsersOnSync=true
กำหนดให้ทำการลบผู้ใช้ใน OLAT (ที่ถูกสร้างผ่าน LDAP sync) เมื่อไม่พบผู้ใช้ใน LDAP โดยอัตโนมัติ
- ldap.deleteRemovedLDAPUsersPercentage=50
กำหนดจำนวนเปอร์เซ็นของการลบผู้ใช้ (ldap.deleteRemovedLDAPUsersOnSync=true) ว่าถ้าจำนวนผู้ใช้ที่หาไม่พบใน LDAP server เกินจากจำนวนเปอร์เซ็นที่กำหนด ให้ถือว่าไม่ต้องทำการลบผู้ใช้เนื่องจากอาจเป็นข้อผิดพลาดที่อาจเกิดขึ้นเมื่อ LDAP server ใช้งานไม่ได้ชั่วขณะ (กำหนด 0 = ไม่ทำการลบทุกกรณี / กำหนด 100 = ลบทุกกรณี)
- ldap.ldapSyncOnStartup=true
กำหนดให้ทำการ Sync เพื่อสร้าง user โดยอัตโนมัติ (ถ้ากำหนดเป็น false ทำให้ user จะถูกสร้างเมื่อ login)
- ldap.ldapSyncCronSync=true
กำหนดให้ใช้ CronTrigger ระบุตารางเวลาการ Sync
- ldap.ldapSyncCronSyncExpression=0 0 * * * ?
ระบุตารางเวลาการ Sync เช่น ทุกๆ ชั่วโมง (วิธีการกำหนด CronTrigger)
- ldap.ldapUserObjectClass=person
กำหนด user attribute ของ LDAP
- ldap.attributename.useridentifyer=uid
กำหนดการ map username ของ OLAT กับ attribute ของ LDAP
- ldap.attributename.email=mail
กำหนดการ map email ของ OLAT กับ attribute ของ LDAP
- ldap.attributename.firstName=givenName
กำหนดการ map firstName ของ OLAT กับ attribute ของ LDAP
- ldap.attributename.lastName=sn
กำหนดการ map lastName ของ OLAT กับ attribute ของ LDAP
- olatprovider.enable=false
กำหนดไม่ให้ login ด้วย OLAT (ถ้าเป็น false ต้องกำหนด default.auth.provider = LDAP แต่ถ้าเป็น true จะสามารถสลับหน้า login ไปมาได้ โดยสามารถกำหนด default.auth.provider = OLAT หรือ LDAP เพื่อให้เริ่มเป็นหน้าแรก)
- default.auth.provider=OLAT
กำหนดหน้าที่ใช้ login เริ่มต้น สามารถเปลียนได้ระหว่าง OLAT (local logins) / Shib (เมื่อใช้ Shibboleth) /LDAP (เมื่อใช้ LDAP)
- เมื่อแก้ไขทุกอย่างเสร็จก็ใช้คำสั่ง ant config-all
- Start LDAP server
- เพิ่มรายการผู้ใช้ลงไปใน LDAP ที่ ou=users,ou=system (ต้องตรงกับที่กำหนดไว้ใน build.properties > ldap.ldapBases) ตามตัวอย่างจะมี admin,yod1498,yod2,yoda, it>yod1, marketing>yim
- Start Tomcat แล้ว OLAT จะ Sync ข้อมูล user โดยอัตโนมัติตามที่กำหนดไว้ใน build.properties > ldap.ldapSyncOnStartup=true ลองตรวจสอบข้อมูลผู้ใช้ได้โดย login ด้วย admin แล้วไปที่ User management > User search จะเห็นรายชื่อพร้อมด้วย Properties ทั้งหมด จาก LDAP ได้ถูก copy มาไว้ใน OLAT โดย user ที่ copy มาจะรวมถึงในโฟลเดอร์ย่อยด้วย (it>yod1, marketing>yim)
- ลอง login ด้วย user ที่เพิ่งถูก Sync มา หน้าจอจะขึ้นว่า OLAT login via LDAP แสดงว่าเรากำลังใช้ LDAP อยู่ (ถ้ากำหนด ldap.cacheLDAPPwdAsOLATPwdOnLogin=false ข้อมูล password จะถูกตรวจสอบไปที่ LDAP server โดยตรง)
- ถ้าได้ติดตั้งระบบ Chat เมื่อดูข้อมูล Users > User Summary ก็จะเห็นว่าข้อมูลผู้ใช้ได้ทำการ Sync มาที่ Openfire เช่นเดียวกัน
- กำหนดแบบอัตโนมัติ ให้ Sync ตามเงื่อนไขที่กำหนดไว้ใน build.properties
ldap.ldapSyncOnStartup=true กำหนดให้ทำการ Sync เพื่อสร้าง user โดยอัตโนมัติ (ถ้ากำหนดเป็น false ทำให้ user จะถูกสร้างเมื่อ login)
ldap.ldapSyncCronSync=true กำหนดให้ใช้ CronTrigger ระบุตารางเวลาการ Sync
ldap.ldapSyncCronSyncExpression=0 0 * * * ? ระบุตารางเวลาการ Sync เช่น ทุกๆ ชั่วโมง (วิธีการกำหนด CronTrigger) - กำหนดแบบ manual ให้ลบข้อมูลผู้ที่ไม่มีใน LDAP ออกจาก OLAT และ sync รายชื่อผู้ใช้ ที่ Administration > LDAP
ในไฟล์ build.propreties > ldap.attributename สามารถกำหนด attribute สำหรับการ Sync ได้เพียง 4 ตัวเท่านั้นคือ useridentifyer, email, firstName, lastName และยังไม่สามารถกำหนด attribute ที่จำเป็น (required) ในการ Sync โดยถ้าต้องการปรับเปลี่ยนข้อมูลเหล่าสามารถทำได้ที่ WEB-INF/src/serviceconfig/org/olat/ldap/_spring/olatextconfig.xml
- property name="reqAttrs" กำหนด attribute ที่จำเป็น (required) ในการ Sync เช่น กำหนดให้ต้องมี useridentifyer และ email
entry key='${ldap.attributename.useridentifyer}' value='userID'
entry key='${ldap.attributename.email}' value='email' - property name="staticUserProperties" กำหนดค่าเริ่มต้นให้กับ attribute ที่ต้องการ เช่นกำหนดให้ institutionalName มีค่าเป็น MyInstitution
entry key='institutionalName' value='MyInstitution'
- property name="userAttributeMapper" กำหนด attribute สำหรับการ Sync เช่นกำหนดให้ Sync ข้อมูล useridentifyer, email, firstName, lastName, employeeType, businessCategory
entry key='${ldap.attributename.useridentifyer}' value='userID'
entry key='${ldap.attributename.email}' value='email
entry key='${ldap.attributename.firstName}' value='firstName'
entry key='${ldap.attributename.lastName}' value='lastName'
entry key='employeeType' value='orgUnit'
entry key='businessCategory' value='institutionalName'
ตัวอย่างกำหนด Attribute ในการ Sync ข้อมูลจาก LDAP
ไปยัง OLAT
การใช้ LDAP สามารถกำหนดรูปแบบการ Login ได้ 3 แบบ โดยกำหนดได้จาก build.properties > olatprovider.enable และ default.auth.provider
- กำหนดให้ Login ด้วย LDAP เท่านั้น (olatprovider.enable=false และ default.auth.provider=LDAP)
- กำหนดให้ Login ได้ทั้ง LDAP และ OLAT โดยเริ่มจากหน้า OLAT แล้วสามารถปรับไปเป็นหน้า LDAP ได้ (olatprovider.enable=true และ default.auth.provider=OLAT)
- กำหนดให้ Login ได้ทั้ง LDAP และ OLAT โดยเริ่มจากหน้า LDAP แล้วสามารถปรับไปเป็นหน้า OLAT ได้ (olatprovider.enable=true และ default.auth.provider=LDAP)
0 ความคิดเห็น on "การใช้ LDAP ร่วมกับ OLAT"
แสดงความคิดเห็น