อาทิตย์, กุมภาพันธ์ 05, 2555
   
Text Size
ป้ายโฆษณา

Joomla! 1.5 Authentication with Active Directory

( 2 Votes )

วันนี้ขอจั่วหัวข้อเป็นภาษาอังกฤษหน่อยแล้วกันนะครับ เพราะว่าไม่รู้จะแปลเป็นไทยยังไงดี แต่้เอาเป็นว่าวันนี้ผู้เขียนขอนำเสนอการ Authen หรือการตรวจสอบผู้ใช้โดยใช้ Microsoft Active Directory แทนที่จะใช้ฐานข้อมูลบน Joomla! สาเหตุที่ใช้การ Authen แบบนี้ก็มีหลายเหตุผลด้วยกัน แต่เหตุผลหนึ่งก็คือ การที่ผู้ใช้สามารถใช้ username/password ชุดเดียวสำหรับการเข้าใช้ application หลายๆ ตัวโดยไม่ต้องมาเสียเวลาจำหลายๆ ตัว โดยเฉพาะการใช้งานใน Intranet ซึ่ง application หลายๆ ตัวรองรับการใช้ username/password บน Active Directory อยู่แล้ว เช่น WLAN Authentication หรือ Squid Proxy เป็นต้น นอกจากนี้แล้วการใช้ username/password บน Active Directory ทำให้เราสามารถกำหนดความซับซ้อนของ password ได้อีกด้วย

สาเหตุที่ผู้เขียนเขียนถึงเรื่องนี้ก็เป็นเพราะว่าที่ผ่านมาได้มีการใช้งาน LDAP หรือ Active Directory บน Intranet อยู่แล้วโดยใช้ Joomla 1.0 แต่ในช่วงนี้อยู่ระหว่างการวางแผนในการ Migrate ระบบเป็น Joomla 1.5 จึงจำเป็นต้องทดสอบส่วนประกอบต่างๆ ว่ารองรับสำหรับการใช้งานบน Joomla 1.5 ดังนั้น Active Directory Authentication ก็เป็นส่วนหนึ่งที่ต้องทำการทดสอบ

ในตอนที่ทำการ Setup บน Joomla 1.0 นั้นด้วยความไม่รู้เลยใช้วิธีการ hack code เอาดื้อๆ เพราะว่า Active Directory นั้นใช้ username ที่อยู่ในรูปแบบ อีเมลนี้จะถูกป้องกันจากสแปมบอท แต่คุณต้องเปิดการใช้งานจาวาสคริปก่อน ในกรณีนี้สมมุติว่า domain ของเราคือ mydomain.com จะเห็นว่าถ้าเป็นอย่างนี้แสดงว่า username ของ Joomla กับ Active Directory ก็เป็นคนละตัวกัน ดังนั้นผู้เขียนจึงใช้วิธีการ hardcode โดยการเพิ่ม suffix คือ mydomain.com เข้าไปในส่วนของ LDAP plugin แต่เพิ่งจะมาเข้าใจก็ต่อเมื่อได้มาลองใช้ JDiagnostic ในการแก้ปัญหาว่าทำไมมันถึง connect ไม่สำเร็จ ซึ่งถ้าคุณทำตามที่ JDiagnostic แนะนำผมมั่นใจว่าจะต้องสามารถ config ตัว plugin ได้อย่างไม่มีปัญหาแน่นอน

JDiagnostic Component

ใน JDiagnostic มีส่วนของ tools ซึ่งใช้ในการช่วย Config ตัว LDAP plugin รวมทั้งการทดสอบ โดยเมื่อเราทำการ run และการใส่ค่า parameter ตามขั้นตอนแล้ว ตัว component จะทำการ config ตัว LDAP plugin ให้โดยอัฒนโนมัติ ซึ่งคุณสามารถ download ตัว JDiagnostic ได้ที่ Passmio's Project at JoomlaCode สำหรับในบทความนี้ผมขอสรุปเอาผลลัพธ์สุดท้ายสำหรับการ config ตัว LDAP plugin เลยแล้วกันนะครับ สำหรับตัว LDAP plugin นี้คุณสามารถเปิดใช้งานพร้อมกับระบบ Joomla User Authentication ได้นะครับ โดยระบบจะทำการตรวจสอบผู้ใช้ตามลำดับของ plugin สำหรับค่า parameters ต่างๆ สำหรับ LDAP plugin ในกรณีของการ Authentication กับ Microsoft Active Directory มีดังรูปด้านล่างครับ (ผู้เขียนใช้ Microsoft Windows Server 2003 R2)

LDAP authentication Plugin (With MSAD)

  • Host เป็นชื่อหรือ IP Address ของ Active Directory Server
  • Port เป็น port ของ Server โดยปกติใช้ 389
  • LDAP v3 ตัว Active Directory รองรับ Version 3 หรือไม่ (yes)
  • Negotiate TLS ไม่ใช้การ Encryption (no)
  • Follow Refferals ไม่มีการส่งต่อการ Authen
  • Authorisation Method อันนี้เป็นวิธีการในการตรวจสอบผู้ใช้เราใช้ Bind directly as user
  • Base DN เป็นตัวฐานของ Tree ในการค้นหาผู้ใช้ โดยทั่วไปเราถ้า domain เราคือ mydomain.com เราจะใช้ dc=mydomain, dc=com จากรูปผู้เขียนระบุ Organization Unit (OU) ของบริษัทเท่านั้นที่สามารใช้่งานได้ เนื่องจากใน Active Directory ในบาง OU จะเป็นผู้ใช้ของบริษัทอื่นๆด้วย
  • Search String ตัวนี้สำคัญครับใช้สำหรับค้นหาข้อมูลของผู้ใช้ ให้ใช้ userPrincipalName=[search]@mydomain.com อย่าลืมเปลี่ยน mydomain.com เป็น domain ของคุณนะครับ
  • User 's DN สำหรับวิธีการ Bind directly ตัว plugin จะใช้ค่านี้แทน  username ในการ bind กับ Active Directory ครับ ก็อยู่ในรูปแบบ [username]@mydomain.com โดยตัว [username] จะถูกแทนค่าด้วย login name ที่เรา input เข้าไป
  • Connect username ตัวนี้ไม่ใช้สำหรับวิธีการนี้ครัีบ
  • Connect password ตัวนี้ไม่ใช้สำหรับวิธีการนี้ครัีบ
  • Map Fullname ใช้ displayName เป็น field ใน Active Directory ที่จะ map กับ Fullname ใน Joomla
  • Map E-mail ใช้ mail เป็น field ใน Active Directory ที่จะ map กับ E-mail ใน Joomla
  • Map User ID ใช้ sAMAccountName เป็น field ใน Active Directory ที่จะ map กับ User ID ใน Joomla

สำหรับสามตัวสุดท้ายอย่า key ผิดนะครับ ตัวใหญ่ตัวเล็กก็ให้ถูกต้องตามที่บอกนะครับ

คิดว่าถ้าื่ท่านได้ลองทำตามนี้เชื่อว่าท่านจะสามารถใช้ Microsoft Active Directory สำหรับการตรวจสอบผู้ใช้ได้อย่างแน่นอน อย่างไรก็ตามถ้าท่านมีปัญหาก็ลองใช้ JDiagnostic ในส่วนของตัวช่วย Config ตัว LDAP ให้ใช้งานกับ Microsoft Active Directory ก็ได้นะครับ พยายามทำตามคำแนะนำของ component รับรองว่าท่านจะัสามารถใช้งานได้อย่งไม่ยากเย็นแน่ครับ สำหรับการใช้งานตัว LDAP หรือ Active Directory Authentication นี้มีข้อดีอีกอย่างครับคือข้อมูลของผู้ใช้ไม่จำเป็นต้องสร้างไว้ก่อนบน Joomla! ครับ เพราะว่าถ้าตัว plugin ให้ข้อมูลกลับมาครบ คือ username, e-mail และ fullname ตัว Joomla! จะทำการสร้าง user ให้เองและกำหนดกลุ่มให้เป็น Registered ครับ โดยตัวนี้จะใช้งาน plugin กลุ่ม user ของ Joomla! ซึ่งโดย default จะเปิดไว้ ถ้าเราไม่ต้องการให้สร้าง user อัฒโนมัติก็ให้ disable plugin หรือแก้ config ครับ วิธีการให้เข้าไปที่ Extensions->Plugin Manager  หลังจากนั้นเลือก plugin ในกลุ่ม User และ คลิ๊กที่ User - Joomla! เลือก Auto-create Users เป็น No ครับ

JoomlaWatch Stats 1.2.8b_12-dev by Matej Koval
Restore Default Settings