การติดตั้ง Shibboleth Single Sign-On
ตอนที่ 9 - ติดตั้ง LDAP และต่อกับ LDAP
13. ติดตั้ง Apache Directory
Service (LDAP)
เพื่อใช้งาน LDAP ให้ติดตั้ง Apache DS โดยไปดับเบิลคลิกไฟล์ apacheds-1.5.4-setup.exe
คลิกปุ่ม Next > ไปจนถึงหน้าที่ให้กำหนดตำแหน่งโฟลเดอร์
คลิกปุ่ม Next > ไปถึงหน้าที่ให้กำหนดตำแหน่งที่วาง JDK
คลิกปุ่ม Install เพื่อดำเนินการติดตั้ง จนกระทั่งถึงขั้นตอนสุดท้ายคลิกปุ่ม
Finish สิ้นสุดการติดตั้ง
13.1 ติดตั้ง Apache
Directory Studio
เพื่อให้เราสามารถเปิดดูข้อมูลที่เก็บอยู่ใน
LDAP ได้ ให้ติดตั้งโปรแกรม Apache
Directory Studio โดยดับเบิลคลิกที่ไฟล์ ApacheDirectoryStudio-win32-1.3.0.v20081020.exe
เมื่อปรากฏ Setup Wizard ที่หน้าระบุตำแหน่งที่วาง
ให้ติดตั้งไว้ที่โฟลเดอร์ c:\sso\Apache Directory Studio ดังนี้
คลิกปุ่ม Install และรอจนกระทั่ง Finish แล้วไปสตาทร์โปรแกรม Apache Directory Studio โดยดับเบิลคลิกไฟล์
Apache Directory Studio.exe ที่ตำแหน่ง c:\sso\Apache
Directory Studio จะปรากฏหน้าต่างโปรแกรมขึ้นมาดังนี้
13.2 เชื่อมต่อ LDAP ตรวจสอบข้อมูล
ที่โปรแกรม Apache Directory Studio ไปที่เมนู LDAP
เลือกคำสั่ง New Connection ...
ระบุ Connection name: เป็น 127.0.0.1 และ Hostname: เป็น 127.0.0.1 และ
Port: เป็น 10389 คลิกปุ่ม Next
>
เมื่อกดปุ่มตกลงจะเชื่อมต่อไปที่
ApacheDS และปรากฏข้อมูลดังนี้
สังเกตที่โหนด ou=users ภายใต้โหนด ou=system ภายใต้ Root DSE เป็นโหนดเป้าหมายที่เราจะสร้างรายชื่อผู้ใช้ใส่เข้าไป
ต่อไปนี้เราจะอ้างอิงพาธ (Path) ตามวิธีการของ LDAP เช่น ถ้าอ้างถึงพาธ ou=users จะเรียกว่า ou=users,ou=system
ตามลำดับชั้นของโหนดโดยใช้เครื่องหมายคอมมาคั่น
13.3 สร้างผู้ใช้ user1 และ user2 ไว้ทดสอบ
ให้คลิกขวาที่โหนด ou=users,ou=system แล้วสั่ง New Entry
... ดังนี้
เมื่อปรากฏไดอะล็อกซ์ New Entry ให้เลือกออปชันเป็น Create
entry from scratch ดังนี้
คลิกปุ่ม Next > ไปที่หน้าถัดไป
ที่หน้า Object Classes ให้เลือก inetOrgPerson แล้วกดปุ่ม Add เพื่อเลือกไว้ที่ด้านขวามือ คลิกปุ่ม
Next > ด้านล่างไปที่หน้าถัดไป
ที่หน้า Distinguished Name ใส่ RDN : ชื่อ uid มีค่าเป็น user1 คลิกปุ่ม
Next > ไปที่หน้าถัดไป
ที่หน้าถัดมาใส่ cn=user1 และ sn=user1 คลิกปุ่ม
Finish จะได้โหนด uid=user1 ปรากฏออกมาดังนี้
ให้คลิกขวาที่บริเวณกรอบ Attribute ของ uid=user1 แล้วเลือกคำสั่ง
New Attribute...
เลือก Attribute type: เป็น userPassword
คลิกที่ปุ่ม Finish ด้านล่าง จะปรากฏหน้าต่างไดอะล็อกซ์ Password
Editor ให้ใส่รหัสผ่านเป็นคำว่า password
จะได้แอททริบิวท์ userPassword เป็นข้อมูลเพิ่มเติมให้กับ user1
ให้กดคีย์ CTRL + C ที่โหนด uid=user1 และไปกดคีย์ CTRL + V ที่โหนด ou=users เพื่อก็อปปี uid=user1 ออกมาเป็นโหนดใหม่
คลิกปุ่ม OK จะได้โหนด user2 ดังนี้
เลือกที่ uid=user2 และเปลี่ยน cn=user2,
sn=user2 ดังนี้
เมื่อเสร็จขั้นตอนนี้ถือว่าเราได้จัดเตรียม
user ไว้แล้ว 2 คนคือ user1 และ user2 เราจะนำไปใช้ทดสอบล็อกอินที่
IdP ว่าสามารถเชื่อมต่อกับระบบ LDAP ได้หรือไม่
14. ทำให้ IdP ใช้งาน
LDAP LoginModule
เปิดไฟล์ login.config จากโฟลเดอร์ c:\sso\shibboleth-idp
ขึ้นมาแก้ไขดังนี้
บันทึกไฟล์ login.config ไว้แล้วดำเนินการที่ขั้นตอนต่อไป
14.1 ทดสอบการเชื่อมต่อ IdP กับ LDAP
รีสตาทร์ทั้ง 3 ตัวคือ Shibboleth 2.0 Daemon, Apache
Web Server และ Tomcat ใหม่อีกครั้ง
แล้วทดลองเบราซ์ไปที่ http://127.0.0.1/secure เมื่อปรากฏหน้าเว็บสำหรับล็อกอินให้ใส่ชื่อผู้ใช้เป็น
user1 และรหัสผ่านเป็น password แล้วกดปุ่ม
Login
หลังจากกดปุ่ม Login ไปแล้วจะเกิดข้อผิดพลาดดังนี้
สังเกตว่าแม้ว่าจะมีข้อผิดพลาดบางอย่างเกิดขึ้นแต่
IdP ได้ผ่านการตรวจสอบผู้ใช้และส่งต่อกลับไปที่
SP แล้ว
ส่วนข้อผิดพลาดที่เกิดขึ้นให้เปิดดูรายละเอียดที่ไฟล์ shibd.log ที่โฟลเดอร์ c:\sso\shibboleth-sp\var\log\shibboleth เมื่อเปิดขึ้นมาดูจะพบรายละเอียดข้อผิดพลาดเกี่ยวกับ
Issuer ดังนี้
เราจะแก้ไขข้อผิดพลาดนี้ในขั้นตอนต่อไป
14.2 ตั้งชื่อของ provider ใน relying-party.xml ให้ตรงกับ idp-metadata.xml
ข้อผิดพลาดที่เกิดขึ้นในขั้นตอนที่แล้วเนื่องมาจากชื่อของ
provider ที่กำหนดไว้ใน <RelyingParty>
ไม่ตรงกับที่กำหนดไว้ในไฟล์ idp-metadata.xml ดังนั้นให้เปิดไฟล์
relying-party.xml จากโฟลเดอร์ c:\sso\shibboleth-idp\conf
ขึ้นมาแก้ไขดังนี้
ให้แก้ไขชื่อ provider เป็น urn:federation:idp ดังนี้
รูปภาพ 78 แก้ไขชื่อของ IdP Provider เป็น urn:federation:idp เพื่อให้ตรงกับชื่อ IdP ที่อยู่ในไฟล์ idp-metadata.xml
บันทึกไฟล์ relying-party.xml ไว้ แล้วรีสตาทร์ Tomcat
ใหม่อีกครั้ง เบราซ์ไปที่ http://127.0.0.1/secure ควรจะปรากฏดังนี้
รูปภาพ 79 แม้ว่าจะเกิดข้อผิดพลาดแต่ IdP
ได้ส่งมาที่ SP แล้วเพียงแต่
http://127.0.0.1/secure เป็นตำแหน่งที่ไม่มีอยู่จริง
แม้ว่าจะเกิดข้อผิดพลาด HTTP 404 แต่ได้แสดงให้เห็นว่า IdP ส่งต่อการทำงานมาที่ SP แล้ว และ SP พยายามจะสลับไปที่หน้า http://127.0.0.1/secure ซึ่งเป็นตำแหน่งที่ไม่อยู่จริงใน
Apache Web Server
14.3 ตั้งโฟลเดอร์ชื่อว่า secure
เพื่อให้เวลาที่ IdP ส่งกลับมาที่ http://127.0.0.1/secure
มีโฟลเดอร์ชื่อนี้อยู่จริง
เราสามารถทดลองแบบง่ายก่อนได้โดยไปสร้างโฟลเดอร์ชื่อว่า secure ใส่ไว้ที่ c:\sso\Apache2.2\htdocs ดังนี้
ให้ก็อปปีไฟล์ index.html จากโฟลเดอร์ htdocs ไปใส่ไว้ในโฟลเดอร์ secure ที่พึ่งจะสร้างขึ้นมาใหม่
ดังนี้
ให้ทดสอบใหม่โดยปิดหน้าต่างเบราเซอร์ปัจจุบันไป
และเปิดใหม่ให้เบราซ์ไปที่ http://127.0.0.1/secure
เมื่อใส่ชื่อผู้ใช้และรหัสผ่านแล้วกดปุ่ม Login ควรจะสลับไปที่หน้าเว็บดังนี้
ความคิดเห็น
แสดงความคิดเห็น