การติดตั้ง CAS เพื่อทำ Single Sign-on

การติดตั้ง CAS

Central Authentication Service

1. ชุดติดตั้ง

ก็อปปีชุดติดตั้งมาจาก CDROM ประกอบการสอน วางไว้ที่โฟลเดอร์ c:\cas\setup ซึ่งควรจะมีภาพดังต่อไปนี้

รูปภาพ 1 ก็อปปีชุดติดตั้งที่รับมา วางไว้ที่ c:\cas\setup
สังเกตว่าในโฟลเดอร์ modules จะมีไฟล์ cas.war ที่ถูกสร้างไว้เรียบร้อยแล้ว ซึ่งการสร้างท่านสามารถไปดาวน์โหลดซอร์สโค้ดมาจากเว็บไซต์ http://www.ja-sig.org และใช้คำสั่ง mvn install ซึ่งเป็นของ Apache Maven เพื่อสร้างไฟล์ WAR ตัวนี้ขึ้นมาได้

2. การติดตั้งเซิร์ฟเวอร์

ให้ติดตั้งโปรแกรมที่ทำหน้าที่เป็นเซิร์ฟเวอร์ ดังต่อไปนี้
·      apache-tomcat-6.0.18 ทำหน้าที่เป็น Web Server ทางฝั่ง Java
·      Apache 2.2 ทำหน้าที่เป็น Web Server ทางฝั่ง PHP
·      PHP ทำหน้าที่เป็น PHP Script Runtime
·      Apache Directory Service ทำหน้าที่เป็น LDAP Server
·      Apache Directory Studio ทำหน้าที่เป็นตัวเปิดดูรายการใน LDAP Server
การติดตั้งโปรแกรมเหล่านี้ท่านสามารถไล่ไปได้ตาม Setup Wizard ของโปรแกรมแต่ละตัว ยกเว้นโปรแกรม Tomcat ที่ไม่จำเป็นต้องติดตั้ง ท่านเพียงแต่ก็อปปีโฟลเดอร์ apache-tomcat-6.0.18 จากโฟลเดอร์ setup มาวางไว้ที่ c:\cas\setup เท่านั้น ก็ถือว่าเสร็จเรียบร้อย หลังจากติดตั้งอุปกรณ์เหล่านี้เสร็จแล้ว ท่านอาจจะมีรายการโฟลเดอร์ใน c:\cas ดังนี้

รูปภาพ 2 รายการโฟลเดอร์ของโปรแกรมแต่ละที่จะใช้ในการทดลอง (ยกเว้น Apache Directory Service ที่ติดตั้งไว้ที่อื่น)
ให้เปิดโปรแกรม Apache Directory Studio และเข้าไปสร้าง user ไว้สัก 2 คน ให้มีชื่อว่า user1 และ user2 โดยมีรหัสผ่านเป็น password เช่นเดียวกันทั้ง 2 คน

3. การติดตั้งไฟล์ cas.war

ให้สตาทร์ apache-tomcat-6.0.18 แล้วก็อปปีไฟล์ cas.war จากโฟลเดอร์ c:\cas\setup ไปวางไว้ที่ c:\cas\apache-tomcat-6.0.18\webapps เพื่อ Deploy Web Application หลังจากนั้นสตาทร์ Tomcat ขึ้นมา และตรวจสอบว่าไม่มีข้อผิดพลาดใดเกิดขึ้น
Tomcat จะแตกไฟล์ cas.war ออกเป็นโฟลเดอร์ cas ซึ่งภายในจะมีส่วนประกอบดังนี้

รูปภาพ 3 ไฟล์ที่ประกอบอยู่ในโฟลเดอร์ cas

4. การเปลี่ยนไปใช้ LDAP

ให้ก็อปปีไฟล์ deployerConfigContext.xml จากโฟลเดอร์ c:\cas\setup\conf  มาทับไฟล์ที่อยู่ในโฟลเดอร์ WEB-INF ของ cas และเปิดขึ้นมาตรวจสอบดูค่าคอนฟิก ดังนี้

รูปภาพ 4 ที่ authenticationHandlers ใช้ FastBindLdapAuthenticationHandler
และที่ส่วนท้ายของไฟล์ deployerConfigContext.xml จะพบบีนเพิ่มเติมคือ contextSource ดังนี้

รูปภาพ 5 ใช้ LdapContextSource เพื่อเชื่อมต่อไปที่ LDAP Server
หากท่านนำไปใช้งานจริงในสำนักงานของท่าน ท่านจำเป็นต้องเปลี่ยนค่า urls, userDn และ password ให้ตรงกับ LDAP Server ของท่านด้วยจึงจะใช้งานได้

5. เพิ่มเติมไฟล์ JAR

การเชื่อมต่อกับ LDAP ท่านจำเป็นต้องเพิ่มเติมไฟล์ JAR ลงไปที่ WEB-INF/lib ของ cas อีกดังนี้

รูปภาพ 6 ก็อปปีไฟล์ JAR เหล่านี้เพิ่มเติมเข้าไปใน WEB-INF/lib ของ cas
ก็อปปีไฟล์ JAR ที่อยู่ในโฟลเดอร์ c:\cas\setup\lib ใส่ไว้ใน WEB-INF/lib ของ cas แล้วสตาทร์ Tomcat ขึ้นมาใหม่อีกครั้ง

6. การทดสอบหลังการติดตั้ง

หลังจากสตาทร์ Tomcat และ LDAP Server ไว้แล้วให้เบราซ์ไปที่ http://locahost:8080/cas/login จะได้ผลลัพธ์ดังนี้

รูปภาพ 7 แสดงว่า cas สามารถทำงานได้ตามปกติ
ให้ทดลองล็อกอินด้วย user1 และ password กดปุ่ม LOGIN แล้วจะได้ผลลัพธ์ดังนี้

รูปภาพ 8 หาก Login Successful แสดงว่าเชื่อมต่อกับ LDAP Server สำเร็จ

7. คอนฟิกให้ Tomcat ใช้ SSL

ก็อปปีไฟล์จากโฟลเดอร์ c:\cas\setup\key ไปวางไว้ที่ c:\cas ดังนี้

รูปภาพ 9 ไฟล์ที่จำเป็นต้องใช้เป็น Public และ Private Key เพื่อทำ SSL
แล้วก็อปปีไฟล์ server.xml จากโฟลเดอร์ setup/conf มาวางทับไฟล์ server.xml ใน apache-tomcat-6.0.18/conf ดังนี้

รูปภาพ 10 ก็อปปีไฟล์ server.xml มาทับตัวที่อยู่ใน Tomcat
เมื่อเปิดไฟล์ server.xml ออกมาดูสังเกตการคอนฟิกให้ใช้งาน SSL ดังนี้

รูปภาพ 11 การคอนฟิกให้ Tomcat ใช้งาน SSL
เมื่อรีสตาทร์ Tomcat ขึ้นมาใหม่อีกครั้ง ให้ทดลองเบราซ์ไปที่ https://localhost:8443/cas/login ควรจะปรากฏหน้าเว็บและใช้งานได้ตามปกติ

8. การทดสอบไคลเอ็นต์ PHP

การใช้งานไคลเอ็นต์ที่เป็น PHP ท่านจำเป็นต้องติดตั้ง PHP และ Apache 2.2 ก่อน หลังจากนั้นให้ใช้คำสั่ง go-pear.bat เพื่อติดตั้ง PEAR และ CAS-1.0.1.gz เข้าไปในระบบ PHP หลังจากติดตั้งสำเร็จแล้วสังเกตว่าจะมีไฟล์ CAS.php อยู่ในโฟลเดอร์ PEAR ดังนี้

รูปภาพ 12 ไฟล์ CAS.php สำหรับใช้งาน PHP กับ CAS
ให้รีสตาทร์ Apache แล้วก็อปปีไฟล์ simple.php จากโฟลเดอร์ setup ไปวางไว้ที่โฟลเดอร์ htdocs ดังนี้

รูปภาพ 13 ก็อปปีไฟล์ simple.php มาทดลอง
 เมื่อเปิดไฟล์ simple.php ออกมาดูจะพบการเขียนโปรแกรมเพื่อเชื่อมต่อกับ CAS ไว้ดังนี้

รูปภาพ 14 จุดที่สั่งให้ยิงไปที่ cas เพื่อให้ผ่านหน้าล็อกอินก่อน
เมื่อทดลองเบราซ์ไปที่ http://localhost/simple.php ควรจะถูกสลับอัตโนมัติไปที่หน้าล็อกอินของ cas และเมื่อผ่านการล็อกอินจะสลับกลับมาที่หน้า simple.php ดังนี้

รูปภาพ 15 ปรากฏชื่อ user ที่ล็อกอินผ่านแล้วคือ user1

9. การทดสอบไคลเอ็นต์ Java

สำหรับการทดสอบกับ Java ให้ท่านก็อปปีโฟลเดอร์ app1 จาก setup มาวางไว้ที่ webapps ของ Tomcat

รูปภาพ 16 ก็อปปีโฟลเดอร์ app1 มาวางไว้ที่ Tomcat/webapps
เมื่อรีสตาทร์ Tomcat ใหม่แล้วทดลองเบราซ์ไปที่ URL http://localhost:8080/app1/index.jsp ควรจะถูกสลับหน้าไปที่หน้าล็อกอินของ cas และหลังจากล็อกอินผ่านแล้วควรจะได้ผลลัพธ์ดังนี้

รูปภาพ 17 ผลลัพธ์หลังจากล็อกอินและสลับกลับมาที่หน้า index.jsp แล้ว
สำหรับ Java จำเป็นต้องติดตั้งไฟล์ JAR เพิ่มเติมของ CAS ไว้ที่ lib ดังนี้

รูปภาพ 18 หากท่านต้องการนำไปใช้กับโปรแกรม Java ของท่านจำเป็นต้องมีไฟล์นี้ใน CLASSPATH ด้วย
และหากท่านเปิดไฟล์ web.xml ดูจะพบว่ามีการติดตั้ง Filter ป้องกันไว้ดังนี้

รูปภาพ 19 มีการติดตั้ง Filter ให้สลับไปที่หน้าเว็บล็อกอินของ CAS โดยอัตโนมัติ
สำหรับการดึงข้อมูลผู้ใช้ เราใช้คำสั่ง request.getRemoteUser() ตามปกติ เช่นนี้

รูปภาพ 20 ดึงผู้ใช้ปัจจุบันด้วย request.getRemoteUser() ตามปกติ


ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

การติดตั้ง Shibboleth Single Sign-On
ตอนที่ 12 - การทำ SLO (Single Log-out)

ตัวอย่างการเข้ารหัส AES ด้วย Java และถอดรหัสด้วย C#.NET

การรักษาความปลอดภัยแบบ OWASP