การติดตั้ง Shibboleth Single Sign-On
ตอนที่ 12 - การทำ SLO (Single Log-out)
19. การติดตั้ง Shibboleth แบบไม่ใช้ SSL
ปัญหาที่เราจะพบในการใช้ SSL คือ ปัจจุบันเราใช้ Self
Certificate X509 v3 ในการเข้ารหัสเพื่อทำ SSL ระหว่างตัว SP และ IdP แต่หากนำไปใช้งานกับ
Internet Explorer จะพบข้อความแจ้งเตือนทุกครั้งก่อนที่เข้าถึงหน้าจอล็อกอิน
เนื่องจาก Internet Explorer ตรวจสอบพบว่า Self
Certificate ที่เราใช้งานนี้ไม่ได้รับรองโดย CA (Certificate
Authority) ซึ่งหากเราต้องการเลี่ยงข้อความแจ้งเตือนดังกล่าวนี้
เราสามารถทำได้ 2 วิธีคือ
1. ขอซื้อ
Certificate X509 v3 ที่ถูกต้องและได้รับการรับรองจาก CA
ที่มีได้รับการเชื่อถือ (Trust) ทางตรง หรือ
ทางอ้อมจาก Internet Explorer (ดูที่รายการ Trust
Root Certificate ในหน้าต่างปรับแต่งค่า Security ของ Internet Explorer)
2. ไม่ใช้
SSL ของ Tomcat ทางพอร์ต 8443 และใช้พอร์ต HTTP ปกติที่หมายเลข 8080 แทน
ในที่นี้จะแสดงวิธีการปรับแต่งไฟล์
idp-metadata.xml และ shibboleth2.xml
แบบที่เลี่ยงการใช้งาน SSL และใช้พอร์ต HTTP
8080 ตามปกติของ Tomcat
19.1 แก้ไขไฟล์ idp-metadata.xml
ไปที่โฟลเดอร์ c:\sso\shibboleth-idp\metadata แล้วแก้ไขไฟล์ idp-metadata.xml
โดยทำดังนี้
·
ค้นหาคำว่า "https://" และเปลี่ยนให้เป็นคำว่า "http://"
ให้หมด
·
ค้นหาคำว่า ":8443" และเปลี่ยนให้เป็นคำว่า ":8080"
ให้หมด
เมื่อเปลี่ยนแปลง http และ 8080 แล้ว
ให้ตรวจทานเนื้อหาไฟล์ idp-metadata.xml โดยเฉพาะบรรทัดที่เกี่ยวกับการ
Redirect จาก SP ไปที่ IdP ดังนี้
บันทึกไฟล์ idp-metadata.xml ไว้แล้วก็อปปีไปวางที่โฟลเดอร์
etc ของ SP ด้วยให้ตรงกัน
19.2 แก้ไขไฟล์ shibboleth2.xml
เปิดไฟล์ shibboleth2.xml ที่โฟลเดอร์ etc ของตัว SP แล้วแก้ไขดังนี้
เสร็จแล้วบันทึกไฟล์ไว้
แก้ไขต่อไปดังนี้
บันทึกไฟล์ shibboleth2.xml ไว้แล้วรีสตาทร์ทั้ง Apache,
Shibboleth และ Tomcat ใหม่อีกครั้ง
ทดลองเข้าไปที่ http://127.0.0.1/app1 จะปรากฏหน้าต่างล็อกอิน
โดยที่ไม่ผ่าน SSL และไม่มีข้อความแจ้งเตือนจาก Internet
Explorer ดังนี้
20. การทำ Single Logout
(SLO)
ในขั้นตอนนี้เราจะปรับแต่งให้
Shibboleth สามารถทำ Single Logout โดยให้ผู้ใช้คลิกที่ลิงค์
แล้ว Logout ออกจากระบบได้
20.1 แก้ไขไฟล์ handler.xml ที่ IdP
เปิดไฟล์
handler.xml ที่ IdP ขึ้นมาเพื่อใส่คอมเมนต์บริเวณ
<LoginHandler xsi:type="PreviousSession"> ดังนี้
บันทึกไฟล์ handler.xml ไว้
แล้วดำเนินการที่ขั้นตอนต่อไป
20.2 ปิดการทำงานของ SAML2 Logout ที่ไฟล์ shibboleth2.xml
เปิดไฟล์
shibboleth2.xml จากโฟลเดอร์ etc ของ SP
แล้วแก้ไขโดยใส่คอมเมนต์ให้กับ <LogoutInitiator> ดังนี้
เหตุผลที่เราไม่ใช้
SAML2 Logout กับ IdP เนื่องจากปัจจุบัน
IdP ของเราไม่สนับสนุน SLO (Single Logout) ตามโปรโตคอล SAML2 แต่อย่างไรก็ตามเราไม่มีความจำเป็นต้องแจ้งให้
IdP ดำเนินการ Logout ก็ได้
เนื่องจากว่าเราไม่ได้เก็บเซสชัน (session) ไว้ที่ IdP
สำหรับ
LogoutInitiator ที่เราต้องใช้คือ type="Local"
ซึ่งหมายถึงให้เคลียร์ค่าที่เก็บไว้ในเซสชัน (session) ฝั่ง SP ทิ้งให้หมด
และหลังจากนั้นให้สลับหน้าเว็บไปที่ตำแหน่ง URL ตามค่าพารามิเตอร์
return ที่ส่งมากับ URL
20.3 สร้างลิงค์สำหรับ Logout ออกจากระบบ
เปิดไฟล์
index.php ใน app1 แล้วเติม <a
href> เข้าไปดังนี้
บันทึกไฟล์ index.php ไว้
ให้สังเกตว่าเราจะส่งพารามิเตอร์ return=http://127.0.0.1/app1 ซึ่งหมายความว่า หลังจาก SP ล้างค่าเซสชันของผู้ใช้
เสร็จสิ้นการ Logout เรียบร้อยแล้ว ให้ SP ช่วยสลับหน้าไปที่หน้าเว็บ http://127.0.0.1/app1 อีกครั้ง
20.4 ทดสอบกระบวนการ Logout
ให้รีสตาทร์ Apache Web Server,
Shibboleth และ Tomcat ใหม่อีกครั้ง
หลังจากนั้นเบราซ์ไปที่ตำแหน่ง http://127.0.0.1/app1 เมื่อปรากฏหน้าต่างล็อกอิน
ให้ใส่ username และ password เมื่อเข้าไปที่หน้า
index.php แล้วจะปรากฏลิงค์สำหรับ Logout อยู่ด้านล่างดังนี้
เมื่อผู้ใช้คลิกที่ลิงค์ Logout จะมีรีเควสต์ไปที่ /Shibboleth.sso/Logout และหลังจากเคลียร์เซสชันทิ้งไปแล้ว
SP จะพยายามเข้าไปที่หน้า http://127.0.0.1/app1 ซึ่งตรงตามพารามิเตอร์ return ที่เรากำหนดไว้
แต่เนื่องจาก http://127.0.0.1/app1 เองเป็นบริเวณที่ถูกควบคุมโดย
Shibboleth จึงถูกส่งต่อไปที่ IdP และปรากฏหน้าล็อกอินใหม่อีกครั้งดังนี้
เมื่อเสร็จสิ้นขั้นตอนนี้เราจะได้ระบบที่สามารถทำ
Single Logout ได้ตามต้องการ
1xbet korean review & overview, sports betting & sportsbook
ตอบลบ1xbet 메리트카지노 korean review & overview, sports betting & sportsbook. 1xbet korean 1xbet korean review & overview, 샌즈카지노 sports betting & sportsbook. 1xbet korean review & overview,