นโยบายการจัดการความรู้ มหาวิทยาลัยสงขลานครินทร์ 1.ให้ใช้เครื่องมือการจัดการความรู้ผลักดัน คุณภาพคน และกระบวนทำงาน 2.ส่งเสริมการแลกเปลี่ยนประสบการณ์การทำงาน จากหน้างาน 3.ส่งเสริมให้มีเวทีเรียนรู้ร่วมกัน
อ่าน: 3127
ความเห็น: 4

PSU Auto Login ธันวาคม 2554

Script สำหรับการยืนยันตัวแบบอัตโนมัติ สำหรับระบบยืนยันตัวตนในการใช้งาน internet ของมหาวิทยาลัยสงขลานครินทร์

นับตั้งแต่ผมเขียน script ตัวแรก [1] เพื่อใช้ในการแก้ปัญหาการใช้งาน "ระบบพิสูจน์ตัวตนในการใช้เครือข่าย" ตามที่ได้เขียนเอาไว้ในบันทึก

[2] ยืนยันตัวตนกับ PSU login โดยการใช้ shell script

และมีการแก้ไขเพิ่มเติม/ปรับปรุง script อีก 4-5 ครั้งตามที่ได้เขียน (และแก้ไข) ไว้ใน

[3] PSU login อีกที

[4] PSU Web Login แบบไม่ดูโฆษณา

[5] PSU Auto Login พค. 54

ครั้งหลังๆ ตัว script จะเปลี่ยนแปลงไปน้อยมาก ... แต่จำเป็นจะต้องเปลี่ยน เพราะถ้าไม่เปลี่ยนก็ใช้งานไม่ได้
สาเหตุที่ต้องเปลี่ยนก็ดูเหมือนเพราะว่าจะเป็นผลของการ upgrade OS ของตัว captive portal ซึ่งนอกจากจะเปลี่ยนการทำงานภายใหน ให้ "ดีขึ้น" ไปกว่าเดิมแล้ว ยังมีการเปลี่ยนแปลงในส่วนของ frontend บางส่วนด้วย ซึ่งผลของการเปลี่ยนแปลงส่วนนี้ จะไม่กระทบกับผู้ใช้งานที่ใช้ web browser เปิดใช้งาน และ login ที่หน้า web portal เพราะกระบวนการทั้งหมดจะถูกจัดการโดย web browser โดยอัตโนมัติ (หมายถึงว่า browser ตัวนั้น support โดยตัว PAN OS รุ่นนั้นด้วยนะ) แต่มันจะมีปัญหากับ script ที่ผมเขียนและใช้งานอยู่ เพราะ URL สำหรับกระบวนการต่างๆ จะถูกกำหนดไว้แบบตายตัวในตัว script เอง

ในขณะที่บางเรื่องในการเปลี่ยนแปลงนั้น อาจจะดูสมเหตุผล แต่บางเรื่อง ในฐานะคนเขียน script ก็ต้องนั่งถามตัวเองว่า "เอ่อ ... ไม่ทราบพี่จะเปลี่ยนไปทำไมครับ?" เพราะดูเหมือนไม่มีคำอธิบายใดๆที่พอจะสนับสนุน ในเรื่องของการเปลี่ยนแปลง frontend อันนั้น

จะอย่างไรก็แล้วแต่ ล่าสุด ทั้งการ upgrade PANOS เอง และการกำหนด URL สำหรับตัว captive portal ใหม่ และ (ถ้าจะนับรวมไปด้วย) bug หรือ จะเรียกว่า feature ก็แล้วแต่ที่ทำให้ตัว captive portal ไม่ยอม redirect หน้า webpage หลังจากการ login เสร็จสิ้นและสมบูรณ์แล้วให้ เมื่อใช้กับ web browser หลายๆตัว ... script ที่ผมเขียนก็ตกอยู่ในกลุ่มที่ "ไม่รองรับ" ในการใช้งานกับ PANOS เวอร์ชันล่าสุด ซึ่ง ... ถ้าอยากใช้ ก็หาทางแก้เอาเอง

เอาก็เอา ... หลังจากกลับไปเริ่มกระบวนการใหม่ในการตรวจสอบ sequence ของการ authentication และ login กับ captive portal ใหม่อีกรอบ และดัดแปลง script บางส่วน ผมคิดว่าผมได้วิธีการที่ดีขึ้นไปกว่าเดิม ที่จะใช้สำหรับการ ตอบสนองต่อ html header ที่ captive portal ส่งมา ใน version เดิมๆ จะใช้วิธีการกำหนดแบบตายตัว ซึ่งทำให้เมื่อมีการเปลี่ยนหมายเลข port หรือเปลี่ยนชื่อตัว captive portal ก็จะต้องมาเปลี่ยนแปลง script แต่ใน version ล่าสุด ไม่มีความจำเป็นจะต้องทำอย่างนั้น ซึ่งน่าจะทำให้ script ตัวล่าสุดนี้ใช้งานได้นานขึ้นกว่าเดิม

ตัว script เขียนโดยใช้ bourn shell และใช้ความสามารถของ curl เป็นหลักในการติดต่อกับ captive portal รายละเอียด สำหรับคนที่สนใจก็ดูจาก source เองนะครับ

วิธีการใช้งาน ผมเขียนไว้แล้วในบันทึกแรกสุดของชุดนี้ "ยืนยันตัวตนกับ PSU login โดยการใช้ shell script" [2] เพราะฉะนั้น อ่านได้จากที่นั่นนะครับ ขี้เกียจเขียนซ้ำ ส่วน code download ได้จาก ที่นี่ ครับ

สวัสดีครับ

หมวดหมู่บันทึก: เรื่องทั่วไป
สัญญาอนุญาต: ซีซี: แสดงที่มา Cc-by
สร้าง: 13 ธันวาคม 2554 15:14 แก้ไข: 13 ธันวาคม 2554 15:20 [ แจ้งไม่เหมาะสม ]
ดอกไม้
สมาชิกที่ให้กำลังใจ: Ico24 Our Shangri-La, Ico24 nagarindkx, และ 3 คนอื่น.
สมาชิกที่ให้กำลังใจ
 
Facebook
Twitter
Google

บันทึกอื่นๆ

ความเห็น

คุณสงกรานต์ post ข้อความนี้ใน facebook

ขอบคุณครับหลายๆ ท่านที่ช่วยเสนอแนวทางแก้ปัญหาเข้ามา สรุปตามนี้ได้ไหมครับว่า

1.สำหรับผู้ใช้ Linux แนะนำให้ใช้ script จาก http://fivedots.coe.psu.ac.th/~cj/scripts/psuautosigned.txt ตามที่ท่าน Chatchai Jantaraprim แนะนำ

2.สำหรับผู้ใช้ Windows XP, Windows 7 แนะนำให้ติดตั้ง โปรแกรม Login จาก

http://fivedots.coe.psu.ac.th/~suthon/pupa/psu-login.exe ตามที่น้อง Microbird Coe แนะนำ

3.สำหรับผู้ใช้ Mac OS อาจแก้ใช้ในแนวทาง Linux ตามข้อ 1. แต่ตอนนี้ยังไม่มีวิธีการ

4.สำหรับผู้ใช้ระบบอื่นๆ นอกจากนี้ก็แจ้งปัญหาเข้ามา เพื่อหาทางแก้ไข

-------------------------------

แต่การใช้งานทั้ง 1 และ 2 ข้อสงสัยคือ มีการจัดการเก็บข้อมูลและรหัสผ่าน ซึ่งเป็น PSU Passport ไว้อย่างไร? มีการสำเนาเก็บไว้บนเครื่องหรือไม่?

จะยืนยัน หรือมีการตรวจสอบได้อย่างไร? ทั้งนี้เพื่อให้มั่นใจว่า PSU Passport ของผู้ใช้โปรแกรมช่วยเหล่านี้ยังคงมีการรักษาความปลอดภัยไว้อย่างดี

โปรดช่วยให้ข้อมูลด้วยครับ ก่อนที่จะได้ประชาสัมพันธ์ให้ผู้ใช้ทราบต่อไป

(^_^) สงกรานต์

ผมขอยกคำตอบ ที่ตอบไว้ใน facebook เอามาแปะไว้ที่นี่ด้วยแล้วกันครับ

ผมขอตอบสำหรับ script ในข้อ 1 นะครับ สำหรับข้อ 2 ต้องรอ อ. Suthon Sae-wong ครับ

psuautosigned เป็น shell script ธรรมดา เป็น text file เพราะฉะนั้นคนที่คุ้นเคยกับระบบ Unix เคยใช้ command line ถึงแม้จะไม่เคยเขียน shell script ก็น่าจะพอเดาได้พอสมควรว่ามันทำอะไรบ้าง

script ที่เขียนขึ้น ทำงานได้ 2 แบบ แบบแรกก็คือรับ login/password จากผู้ใช้โดยตรง แล้วเอา login/password นั้นส่งให้กับ captive portal โดยไม่มีการเก็บ login/password เอาไว้ในในที่อื่นใด ยกเว้นใน memory นั่นคือ ถ้าหากว่า script ถูก terminate/stop โดยการกด Control-C ก็จะไม่มี login/password ของผู้ใช้หลงเหลืออยู่บนเครื่องนั้น ส่วนสาเหตุที่ยังต้องเก็บใน memory และจะต้องรอจนกด Control-C เพื่อ terminate script ก่อน ก็เพราะว่า script โดยปกติจะทำงานแบบวน loop ไปเรื่อยๆ ส่ง request มา login ทุกๆ 1 ชม. เพื่อไม่ให้ ผู้ใช้งานจะต้องมา login ใหม่เมื่อเกิด timeout แต่ถ้าต้องการที่จะ login ครั้งเดียวแล้วให้โปรแกรม terminate ไปเลย ก็สามารถทำได้ โดยการใช้ 'noloop' เป็น parameter ตามหลังชื่อ script ตัว script ก็จะ run เพียงครั้งเดียวจบ

ส่วนในแบบที่ 2 ผู้ใช้ที่ไม่ต้องการใส่ login/password ทุกครั้งที่ต้องการ ใช้งาน internet หรือ อาจจะไม่สะดวกที่จะทำอย่างนั้น ในกรณีที่เครื่องนั้นๆ อาจจะต้องการทำงานแบบอัตโนมัติ ก็จะสามารถใช้วิธีการสร้างไฟล์ config ที่ชื่อว่า .psuautosigned.conf ไว้ใน homedirectory ของตนเอง โดยกำหนด login/password ในบรรทัด

user=

passwd=

ซึ่งไฟล์นี้อยู่ใน home directory ของผู้ใช้ และผู้ใช้จะต้องสร้างขึ้นมาเอง ตัว script จะไม่สร้างขึ้นมาให้

และโดยลักษณะของการใช้งานโดยทั่วไปแล้ว การ authentication นี้จะใช้สำหรับเครื่องคอมพิวเตอร์ของผู้ใช้ที่เป็นเครื่องส่วนตัว เพราะฉะนั้น ก็ควรที่จะอยู่ในความรับผิดชอบของผู้ใช้งานที่จะไม่ปล่อยให้ผู้อื่น เข้ามาอ่านไฟล์ใดๆ ที่อยู่บนเครื่องของตัวเอง

ในกรณีที่ไม่สามารถมั่นใจได้ว่าไฟล์ที่เก็บอยู่บนเครื่องส่วนตัว อาจจะมีใครเข้ามาอ่านข้อมูลได้ ก็คงต้องขอแนะนำให้ใช้ script นี้ในแบบแรกแทนครับ คือป้อน login/password ทุกครั้งที่ต้องการใช้งานครับ

ขอบคุณมากครับที่ท่าน Suthon Sae-wong ได้ช่วยให้ข้อมูลเพื่อให้ผู้ใช้เลือกตัดสินใจ

ยังคงมี 2 ประเด็นที่ต้องหาทางออกก่อนที่ศูนย์คอมพิวเตอร์จะประชาสัมพันธ์เรื่อง script และโปรแกรม psu-login ออกไปดังนี้

1.การทำงานของเครื่องพะโล้ที่ "ปกติ" เมื่อผ่านหน้าเวปรูปกราฟฟิกพระบิดาที่รอให้ใส่ PSU Passport จะมี session cookie ส่งไปที่ Web Browser ของผู้ใช้ ซึ่งหากผู้ใช้ยังเปิด Web Browser นี้อยู่เครื่องพะโล้จะเห็น session cookie นี้เองโดยไม่ต้องมีการแก้ปัญหาชั่วคราวด้วยวิธี

1.1.เปิดการใช้งาน http ใดๆ ค้างไว้เพื่อไม่ให้ timeout 15 นาที เช่นเปิดหน้า login.psu.ac.th ทิ้งไว้ ตามคำแนะนำในกรอบพื้นเหลืองหน้าเวปรูปกราฟฟิกพระบิดาที่รอให้ใส่ PSU Passport

1.2.ใช้ script และโปรแกรม psu-login ตามที่ท่านได้ช่วยหาทางแก้ปัญหา

1.3.แต่ในเมื่อตอนนี้ session cookie ไม่ทำงาน และขณะนี้ทางบริษัทผู้ผลิตยังให้กำหนดวันที่จะออก patch หรือ version ใหม่มาเมื่อใด (ซึ่งในอดีตมักจะออกเป็น 2-4 สัปดาห์ เพราะรวมๆ แก้หลายๆ bug และขึ้นกับความรุนแรงของปัญหา) คิดว่า script และโปรแกรม psu-login จะช่วยได้ จากการที่ผู้ใช้ใน CoE ได้ใช้งานอยู่แล้ว

2.เมื่อใช้ script และโปรแกรม psu-login แล้วผู้ใช้จะไม่ได้เห็นหน้าเวปรูปกราฟฟิกพระบิดาที่รอให้ใส่ PSU Passport ซึ่งหน้านี้จะถูกใช้เป็นช่องทางแจ้งข่าวด่วน คำแนะนำ หรือสถานะปัญหาการบริการที่เกี่ยวกับอินเทอร์เน็ต

2.1.ซึ่งอาจแก้โดยให้ script และโปรแกรม psu-login มาตรวจสอบข้อความไปแสดงให้ผู้ใช้เห็นจาก http://server-dev.psu.ac.th/banner.php

หรือท่านทั้งหลายมีข้อเสนอแนะอย่างไรบ้างครับ (^_^) สงกรานต์

ประเด็นที่ 1 ... อันนี้ผมไม่แน่ใจเพราะถ้าใช้ script psuautosigned ผมยังได้รับ cookie อยู่ ถึงแม้ว่าจะมีปัญหากับการ redirect ... แต่ไม่ว่าจะมี cookie หรือไม่ตัว psuautosiged ก็จะวน loop พยายาม login ใหม่ให้ครับ

ประเด็นที่ 2 เรื่องของ news feed ใช้ตัวนี้ได้ครับสำหรับการอ่านจาก command line

http://fivedots.coe.psu.ac.th/~cj/scripts/getccnewsfeed.txt

ฉัตรชัย

ร่วมแสดงความเห็นในหน้านี้

ชื่อ:
อีเมล:
IP แอดเดรส: 3.84.139.101
ข้อความ:  
เรียกเครื่องมือจัดการข้อความ
   
ยกเลิก หรือ