WordPress MU กับ Active Directory

นานมาแล้ว ผมได้เขียนบทความเกี่ยวกับการใช้งาน WordPress กับ Active Directory ซึ่งมีหลายท่านได้นำไปใช้ และก็สอบถามถึงเรื่องการใช้งานร่วมกับ WPMU ซึ่งจริง ๆ แล้วมันก็สามารถใช้งานได้ดีระดับหนึ่ง แต่อย่างว่าแหละครับ บางอย่างมันก็ทำไม่ได้ เช่น ต้องการให้มันสร้าง Site ให้เองโดยอัตนโนมัติ ปลั๊กอินตัวเดิมมันก็ทำไม่ได้ (คงเพราะมันเอา username เป็น username@domain.local) เลยต้องมองหาตัวใหม่ นั่นก็คือ WPMU-LDAP นั่นเอง

ระบบที่ทำการทดสอบ

1. CentOS release 5.5 (Final)  amd 64

2. wpmu 3.0.5  ทำการติดตั้งลักษณะของ sub domain

3. wpmu-ldap plugin

เริ่มทำการทดสอน

1. ดาวน์โหลดปลั๊กอินจากที่นี่ครับ http://sourceforge.net/projects/wpmu-ldap/files/wpmu-ldap/ เลือกเวอร์ชั่นล่าสุด หรือเวอร์ชั่นที่สามารถใช้งานกับ wpmu ของเราได้ ณ ตอนนี้ผมเลือกปลั๊กอินเวอร์ชั่น 3.0 ครับ

2. ทำการแตกไฟล์ของปลั๊กอินจะพบไฟล์และโฟลเดอร์ อย่างละ 1 อันดังนี้

ldap  ldap_auth.php

3. ทำการก๊อปปี้ไฟล์และโฟลเดอร์ดังกล่าว ไปไว้ใน /var/www/html/wp-content/mu-plugins (สมมุติว่า /var/www/html เป็น DocumentRoot นะครับ)

4. ล็อกอินเข้า wpmu ด้วย admin หรือ user ที่มีสิทธิเทียบเท่า admin จากนั้นจะพบส่วนจัดการ ในกลุ่มของ Super Admin ที่บอกว่า LDAP Options โดยตั้งค่าออปชั่นต่าง ๆ ให้เป็นดังนี้

LDAP-Authentication : enable

Server Encryption: none หรือเลือกตามการตั้งค่าของเซิร์ฟเวอร์นะครับ

Server Address : university.local ให้ใส่ตามชื่อ domain ตามจริง

Server Port : 389

Search DN: dc=university,dc=local ตำแหน่งที่ต้องการให้ค้นหารายชื่อ
Search User DN: cn=noreply,cn=users,dc=university,dc=local ชื่อที่มีสิทธิในการค้นหา และต้องมีรายชื่อนี้อยู่จริง
Search User Password : xxxxxxxxxx รหัสผ่านของ user noreply ที่ทำการกรอกไว้ด้านบน
LDAP Type: windows
Test Connection: yes แค่การทดสอบครั้งแรกครับ ถ้าผ่านแล้ว ก็ไม่จำเป็นต้องทดสอบอีก

5. จากนั้นให้คลิ๊กที่ Save Optins เพื่อบันทึกและทดสอบการเชื่อมต่อไปยัง AD ตามที่ระบุไว้

6. หากการเชื่อมต่อสำเร็จจะปรากฏข้อความดังต่อไปนี้ (หากไม่สำเร็จต้องกลับมาดูการคอนฟิกอีกครั้งครับ ส่วนใหญ่น่าจะเกิดจาก user ที่ระบุครับ บางครั้งไม่ตรงตามความเป็นจริง จำพวก cn,dc ประมาณนั้นครับ)

LDAP Connection Test: Successful!
Saved Options!

7. ในส่วนของ General Settings ให้ตั้งค่าดังนี้

Use Single Sign-On?    : no
Auto-Create WPMU Accounts? : yes
Auto-Create WPMU Blogs? : yes
Create local users?: no
Allow blog admins to add users?: yes
Allow blog admins to bulk add?: no
Disable Public Signup?: no

ที่เหลือเลือกตามใจชอบได้เลยครับ

8. Attribute Mapping ให้ใช้ตามค่ามาตรฐานที่ตั้งไว้ครับ

9. Group Settings จะปล่อยว่างก็ได้ครับ ซึ่งจะทำให้ทุกคนใน AD สามารถล็อกอินได้ทั้งหมด แต่ถ้าเราจะกำหนดสิทธิให้ใช้งานได้เฉพาะกลุ่มก็สามารถทำได้ โดยมีตัวเลือกให้ 2 แบบคือ

9.1 Allow Login:   คือ ยอมรับเฉพาะกลุ่มที่ทำการระบุ

9.2 Deny Login: คือ ไม่ยอมรับกลุ่มที่ทำการระบุ

การระบุนั้นสามารถระบุได้หลายกลุ่ม โดยกำหนดกลุ่มละบรรทัด ในที่นี้ผมกำหนดให้ยอมรับเฉพาะกร๊ป administrators โดยเอาใส่ในที่ Allow Login ดังนี้

cn=administrators,cn=builtin,dc=university,dc=local

10. จากนั้นทำการ Save Groups แล้วลองทดสอบโดยการ ล็อกอินครับ

11. เมื่อทุกอย่างผ่านไปด้วยดี ระบบจะทำการสร้าง Site ให้โดยอัตโนมัติครับ

12. ทดสอบเข้าไซต์ของเราเองครับ โดยจะเป็น http://username.domainname.xx.xx