+ All Categories
Home > Documents > A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 ·...

A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 ·...

Date post: 13-Feb-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
96
การพิสูจน์ตัวตนผู ้ใช้ จุดเดียวผ่านเว็บโดยปราศจากการปรับเปลี่ยนเครื่องผู ้ใช้บริการ Server-Side Web Single Sign-on without Client Enhancement พงศพัฒน์ หังสพฤกษ์ Pongspat Hungsapruek วิทยานิพนธ์นี้เป็นส่วนหนึ่งของการศึกษาตามหลักสูตรปริญญาวิทยาศาสตรมหาบัณฑิต สาขาวิชาการจัดการเทคโนโลยีสารสนเทศ มหาวิทยาลัยสงขลานครินทร์ A Thesis Submitted in Partial Fulfillment of the Requirements for the Degree of Master of Science in Management Information Technology Prince of Songkla University 2551 ลิขสิทธิ ์ของมหาวิทยาลัยสงขลานครินทร (1)
Transcript
Page 1: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

การพสจนตวตนผใช ณ จดเดยวผานเวบโดยปราศจากการปรบเปลยนเครองผใชบรการ

Server-Side Web Single Sign-on without Client Enhancement

พงศพฒน หงสพฤกษ Pongspat Hungsapruek

วทยานพนธนเปนสวนหนงของการศกษาตามหลกสตรปรญญาวทยาศาสตรมหาบณฑต สาขาวชาการจดการเทคโนโลยสารสนเทศ

มหาวทยาลยสงขลานครนทร A Thesis Submitted in Partial Fulfillment of the Requirements for the Degree of

Master of Science in Management Information Technology Prince of Songkla University

2551 ลขสทธของมหาวทยาลยสงขลานครนทร

(1)

Page 2: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

ชอวทยานพนธ การพสจนตวตนผใช ณ จดเดยวผานเวบโดยปราศจากการปรบเปลยนเครอง ผใชบรการ

ผเขยน นายพงศพฒน หงสพฤกษ สาขาวชา การจดการเทคโนโลยสารสนเทศ   

อาจารยทปรกษาวทยานพนธหลก คณะกรรมการสอบ

(2)

…………………………........................... (ดร.นษฐดา เอลซ)

…………………………ประธานกรรมการ (รองศาสตราจารย ดร.พลพงษ บญพราหมณ)

อาจารยทปรกษาวทยานพนธรวม

…………………………………กรรมการ (ดร.นษฐดา เอลซ)

……………………………..…............ (

…………………………………กรรมการ รองศาสตราจารย ดร.เกรกชย ทองหน) (รองศาสตราจารย ดร.เกรกชย ทองหน)

……………………………..…............ (

…………………………………กรรมการ (ผชวยศาสตราจารย ดร.ศกดชย ปรชาวรกล) ผชวยศาสตราจารย ดร.ศกดชย ปรชาวรกล)

บณฑตวทยาลย มหาวทยาลยสงขลานครนทร อนมตใหนบวทยานพนธฉบบนเปน

สวนหนงของการศกษา ตามหลกสตรปรญญาวทยาศาสตรมหาบณฑต สาขาวชาการจดการเทคโนโลยสารสนเทศ

..……………………………………….

(รองศาสตราจารย ดร.เกรกชย ทองหน) คณบดบณฑตวทยาลย

Page 3: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

ชอวทยานพนธ การพสจนตวตนผใช ณ จดเดยวผานเวบโดยปราศจากการปรบเปลยน

เครองผใชบรการ ผเขยน นายพงศพฒน หงสพฤกษ สาขาวชา การจดการเทคโนโลยสารสนเทศ   ปการศกษา 2551 

บทคดยอ

ในปจจบนระบบสารสนเทศนบเปนปจจยสาคญในการใหบรการขอมลขาวสาร

การบรหารจดการองคกร ซงระบบสารสนเทศทนามาใชงานสวนใหญทางานอยบน 2 ระบบปฏบตการ คอ ระบบปฏบตการ Windows และ ระบบปฏบตการ Linux ซงแตละ platform มระบบบรหารจดการขอมลบญชผใชและพสจนตวตนบน platform ตนเอง แมวาผใชสามารถใชบญชผใชชอเดยวกนในการเขาใชงานระบบสารสนเทศตางๆ แตผใชงานกยงตองทาการพสจนตวตนกอนเขาใชงานทกครงทเปลยนการใชงานไปสอกระบบหนง งานวจยนไดศกษา พฒนาระบบพสจนตวตนผใชใหมความสามารถในการทาการพสจนตวตน ณ จดเดยวทสามารถนาไปใชไดทงสอง platform โดยเลอกระบบพสจนตวตนผใช Kerberos และเลอกใชบรการ Lightweight Directory Access Protocol หรอ LDAP สาหรบบรการขอมลบญชผใชสาหรบระบบสารสนเทศทงสอง platform ทาใหสามารถพสจนตวตนผใช ณ จดเดยว และทางานบนทงสอง platform ได รวมทงไดพฒนากลไกพสจนตวตน Web Single Sign-On สาหรบ web application โดยทผใชงานไมจาเปนตองตดต งโปรแกรมเพมเตมบนเครองคอมพวเตอรของตน นอกจากนยงไดนาเสนอแนวทางสาหรบผพฒนา web application ในการนาระบบ Web Single Sign-On ไปประยกตใชในงานของตนเอง

(3)

Page 4: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

Thesis Title Server-Side Web Single Sign-On without Client Enhancement Author Mr.Pongspat Hungsapruek Major Program Management Information Technology   Academic Year 2551  

ABSTRACT Information systems are an essential tool for organization management. Current

systems are likely to be based upon either a Windows or Linux platform. These systems generally use separate account and authentication management systems. Although the same account name, and authentication details, are used, the user is required to authenticate at each system they visit.

This research investigated authentication requirements and features, and developed an authentication system that enables a onetime sign on feature across a set of distinct servers.

Kerberos is used as the authentication tool, and LDAP was selected to provide the accounting service. The system provides the ability for a user to authenticate with any of the servers, after which they can access other servers without needing to authenticate again, regardless of the platforms on which the various servers are implemented.

A web based single sign-on was also developed to access the simple sign-on mechanism and provide a client side service.

(4)

Page 5: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

กตตกรรมประกาศ วทยานพนธฉบบนสาเรจลลวงไดดวยด ดวยความชวยเหลอจากบคคลหลายฝาย

ผจดทาวทยานพนธรสกซาบซง และขอขอบพระคณอยางสงมา ณ โอกาสน คอ ดร .นษฐดา เอลซ อาจารยทปรกษาวทยานพนธหลกและกรรมการสอบ

วทยานพนธ ทกรณาใหคาปรกษา คาแนะนา ขอเสนอแนะทางวชาการ และแกไขปญหาตาง ๆ ตลอดจนตรวจทานวทยานพนธใหแกผจดทามาโดยตลอด

รองศาสตราจารย ดร.พลพงษ บญพราหมณ ประธานกรรมการสอบวทยานพนธ ทกรณาใหคาปรกษา ขอเสนอแนะ และตรวจทานวทยานพนธ

รองศาสตราจารย ดร.เกรกชย ทองหน อาจารยทปรกษาวทยานพนธรวม และ

กรรมการสอบวทยานพนธ ทกรณาใหคาปรกษา ตรวจทานและแกไขวทยานพนธ

ผชวยศาสตราจารย ดร.ศกดชย ปรชาวรกล อาจารยทปรกษาวทยานพนธรวม และกรรมการสอบวทยานพนธ ทกรณาใหคาปรกษา ตรวจทานและแกไขวทยานพนธ

แม ปา นา ภรรยา และลกสาว ทไดเปนกาลงใจ กระตน ผลกดนจนกระทงผจดทาวทยานพนธสามารถทาวทยานพนธจนสาเรจ

และขอขอบคณ ผชวยศาสตราจารย ธรวฒน หงสพฤกษ พชาย ทไดใหการสนบสนน ชวยเหลอ และเปนกาลงใจผลกดนจนกระทงผเขยนสามารถทาวทยานพนธจนสาเรจ

พงศพฒน หงสพฤกษ

(5)

Page 6: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

สารบญ

หนา สารบญ ........................................................................................................................................... (6)  รายการตาราง .................................................................................................................................. (9)  รายการภาพประกอบ .................................................................................................................... (10) บทท 1  บทนา .......................................................................................................................................... 1 

1.1  ความสาคญและทมาของปญหา ........................................................................................ 1 1.2  วตถประสงค ..................................................................................................................... 3 1.3  ประโยชนทคาดวาจะไดรบ ............................................................................................... 3 1.4  ขอบเขตการวจย ................................................................................................................ 4 1.5  ขนตอนการดาเนนงาน ...................................................................................................... 4 1.6  ระยะเวลา และ แผนการดาเนนงาน ................................................................................... 5 1.7  เครองมอทใชในการดาเนนงาน ........................................................................................ 5 1.8  สถานททาการวจย ............................................................................................................. 6 

2  ทฤษฎ และงานวจยทเกยวของ ................................................................................................... 7 2.1  บทนา ................................................................................................................................ 7 2.2  การพสจนตวตน (Authentication) และการควบคมสทธการใชงาน (Authorization) ........ 7 

2.2.1  การพสจนตวตน (Authentication) ....................................................................... 8 2.2.2  การควบคมสทธการใชงาน (Authorization) ........................................................ 9 

2.3  การพสจนตวตนผใช และการควบคมสทธการใชงานในเครอขาย.................................. 10 2.4  Kerberos .......................................................................................................................... 13 

2.4.1  ความสมพนธระหวางโดเมนเนมและ REALM ของ Kerberos ......................... 13 2.4.2  กระบวนการทางานของ Kerberos ..................................................................... 14 

2.5  Token-based Web Single Sign-On with Enabled Client ................................................ 17 2.6  Microsoft Passport .......................................................................................................... 18 2.7  การพสจนตวตนของระบบสารสนเทศบน Windows และ Linux platform .................... 19 2.8  สรป ................................................................................................................................. 20 

3  การวเคราะห ออกแบบและพฒนา ............................................................................................ 22

(6)

Page 7: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

สารบญ (ตอ)

หนา 3.1  บทนา .............................................................................................................................. 22 3.2  การวเคราะหระบบ .......................................................................................................... 22 

3.2.1  ระบบพสจนตวตน Single Sign-On สาหรบ Windows และ Linux platform .... 24 3.2.2  Web Single Sign-On สาหรบ web application .................................................. 25 

3.3  การออกแบบระบบ (System Design) .............................................................................. 28 3.3.1  การออกแบบระบบ SSO สาหรบ Windows และ Linux platform ..................... 28 3.3.2  การออกแบบระบบ Web SSO สาหรบ Web application ................................... 29

3.4  การพฒนาระบบ (Development) ..................................................................................... 43 3.5  การทดสอบ (Testing) ..................................................................................................... 44 3.6  สรป ................................................................................................................................. 45 

4  ผลการศกษา ............................................................................................................................. 46 4.1  บทนา .............................................................................................................................. 46 4.2  การทดสอบระบบพสจนตวตน SSO บน Windows และ Linux platform ....................... 46 

4.2.1  สภาพแวดลอมในการทดสอบปรบแตงกาหนดคาระบบพสจนตวตน ............... 46 4.2.2  ผลการทดสอบปรบแตงกาหนดคาระบบพสจนตวตน ...................................... 49 

4.3  การทดสอบระบบ Web SSO สาหรบ web application ................................................... 60 4.4  การพฒนา Web Application ใหสนบสนน SSO โดยใช Web SSO ................................ 61 

4.4.1  ขนตอนการพฒนา Authentication Site (AS) .................................................... 61 4.4.2  ขนตอนการพฒนา Participating Site (PS) ........................................................ 67 

4.5  สรป ................................................................................................................................. 70 5  บทสรปและขอเสนอแนะ ......................................................................................................... 71 

5.1  บทนา .............................................................................................................................. 71 5.2  สรปผลการพฒนาระบบ SSO ......................................................................................... 71 5.3  ขอเสนอแนะสาหรบการใชงาน ...................................................................................... 73 5.4  ขอเสนอแนะสาหรบการพฒนา ....................................................................................... 73 

บรรณานกรม .................................................................................................................................. 74 ภาคผนวก ....................................................................................................................................... 76

(7)

Page 8: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

สารบญ (ตอ)

หนา ก. ตวอยางการกาหนดคาไฟล /etc/krb5.conf ........................................................................ 77 ข. ตวอยางการกาหนดคาไฟล /etc/LDAP.conf ..................................................................... 78 ค. ตวอยางการกาหนดคาไฟล /etc/httpd/conf.d/auth_kerb.conf ........................................... 84 ง. การกาหนดคา Mozilla Firefox ใหสนบสนนการพสจนตวตน kerberos.......................... 85 

ประวตผเขยน ................................................................................................................................. 86 

(8)

Page 9: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

รายการตาราง

ตาราง หนา 2-1 สรปปญหา สาเหต และความตองการของระบบ .............................................................. 20 

(9)

Page 10: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

(10)

รายการภาพประกอบ ภาพประกอบ หนา 1-1 ตวอยางการทางานของโปรแกรม “A” ซงเขาถงฐานขอมล ................................................... 2 2-1 กระบวนการการพสจนตวตน ................................................................................................ 8 2-2 Pseudo-SSO ........................................................................................................................ 11 2-3 True SSO ............................................................................................................................. 12 2-4 กระบวนการการพสจนตวตน Kerberos .............................................................................. 14 2-5 กระบวนการขอรบ Service ticket ....................................................................................... 15 2-6 LEC (Liberty-enabled client and proxy) protocol .............................................................. 17 3-1 ขนตอนการทางานของ Web SSO ....................................................................................... 27 3-2 Class diagram ทแสดง Object ตางๆของระบบ Web SSO .................................................. 30 4-1 หนาจอ Log On to Windows ของระบบปฎบตการ Windows XP ...................................... 50 4-2 Kerberos ticket ทไดจากการพสจนตวตน ........................................................................... 51 4-3 Kerberos ticket ทใชในการเขาใชงาน web site : Linuxvm-core7 ....................................... 52 4-4 การใชคาสง kinit ในการพสจนตวตน และ klist แสดง ticket ใน ticket cache ................... 53 4-5 การใชคาสง smbclient เพอใชบรการแชรไฟล และใชคาสง klist แสดง ticket ใน ticket

cache ................................................................................................................................... 54 4-6 การใชคาสง LDAPsearch เพอคนหาขอมลผใชจากบรการ LDAP ..................................... 55 4-7 การใชคาสง klist แสดง ticket ใน ticket cache .................................................................... 56 4-8 การใชคาสง id และ getent passwd เพอดขอมลบญชผใช และใชคาสง klist แสดง ticket ใน

ticket cache.......................................................................................................................... 57

4-9 การใชคาสง klist แสดง ticket ใน ticket cache เมอมการเขาใชงาน webpage บนบรการ httpd ทสนบสนน Kerberos ................................................................................................ 58 

4-10 การใชคาสง klist แสดง ticket ใน ticket cache เมอมการเขาใชงาน webpage บน IIS Web server ทสนบสนน Kerberos ............................................................................................... 59 

4-11 หนาจอโปรแกรม Certificate Management Tool ................................................................ 62 ง-1 การกาหนดคา network.negotiate-auth.trusted-uris ของ Mozilla Firefox ........................... 85 

Page 11: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

บทท 1 บทนา

1.1 ความสาคญและทมาของปญหา

การพฒนาระบบสาหรบใชงานในองคกรทวไปในปจจบนนมอยหลากหลาย

รปแบบ ซงสามารถแบงตามลกษณะการประมวลผลไดเปนสองลกษณะใหญๆ คอ ระบบ/โปรแกรม (ตอไปนจะเรยกวาระบบ) ทประมวลผลบนเครองคอมพวเตอรเพยงเครองเดยว และ ระบบทมการประมวลผลแบบกระจาย เชน ระบบงานทใชฐานขอมลในการเกบประมวลผลขอมล ระบบทใชเรยกใชบรการ web service โดยเฉพาะระบบทมการกระจายชนสวนของโปรแกรม (component) ออกไปสคอมพวเตอรหลายๆเครองในเครอขายเพอรวมกนประมวลผล สงทจาเปนทจะตองพจารณาสาหรบการประมวลผลในลกษณะนกคอ ความลบของขอมล คอ ขอมลควรจะถกเรยกใชไดเฉพาะจากผทมสทธในการเขาถงเทานน ความสมบรณถกตองของขอมล คอ ขอมลและระบบควรจะถกแกไขไดเฉพาะจากผไดรบสทธเทานน จะตองไมถกเปลยนแปลงโดยผอน ไมวาจะโดยเจตนาหรออบตเหตกตาม ระบบสวนใหญมกระบวนการตรวจสอบวาผใชมสทธทจะเขาใชทรพยากรของระบบหรอไมหรอมสทธในการใชทรพยากรอะไรบางในระดบใดและอยางไร กระบวนการนเรยกวา การตรวจสอบสทธของผใช (authorization) ในการตรวจสอบเชนน ระบบตองมกระบวนการตรวจสอบและรบรองวาเปนผใชตวจรงกระบวนการนเรยกวา การตรวจสอบรบรองผใชหรอการพสจนตวตนผใช (authentication) ในระบบสวนใหญมกระบวนการตรวจสอบและยนยนสทธของผใช เชน การทผใชจะตองใส login และ password กอนเขาใชทรพยากรเพอพสจนยนยนวาเปนผใชตวจรง ในกรณของการประมวลผลแบบกระจายทตองอาศยคอมพวเตอรหลายๆเครองในเครอขาย เมอมการตรวจสอบและยนยนสทธการใชงานแลว จะมกระบวนการในการสง security token ระหวางคอมพวเตอรหลายๆเครอง แตกระบวนการนยงมความยงยากซบซอนและตองระมดระวงมาก การบรหารจดการบญชผใชจะกระทาไดยากขนเมอมจานวนบรการตางๆมากขน ในขณะทการเขาใชงานบรการตางๆเหลานทผใชตอง login โดยตรงกบบรการนนๆ ในปจจบนมการนาเอา directory service มาใชเพอแกปญหาในการบรหารจดการระบบบญชผใช แตอยางไรกตามในระบบ directory service แตละระบบกมวธการพสจนตวตนผใชทแตกตางหลากหลาย การเลอกใชระบบพสจนตวตนผใชทเหมาะสมและสามารถทางานรวมกนไดอยางปลอดภยบน platform ทหลากหลายกเปนสงจาเปนโปรแกรมและบรการตางๆ เชน file system,

1

Page 12: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

2

telnet, mail, database application, web application, web service application และโปรแกรมประยกตอนๆทพฒนาขน จะตองสามารถใชงานและทางานรวมกนกบระบบการรบรองตวตนผใช ทเลอกใชเพอเพมความปลอดภยใหกบระบบ และมความเปนหนงเดยวกนทงระบบ โดยเฉพาะอยางยงระบบททางานในลกษณะ web application ทผใชสามารถเรยกใชงานผานทางโปรแกรม web browser และแตกตางจากระบบแบบอนๆ นนคอผใชไมจาเปนตองตดตงระบบทจะใชงานบนเครองทใชงาน การนาระบบพสจนตวตนผใชทเลอกมาทางานรวมกบ web application โดยไมทงขอดของระบบทเปน web application ทไมตองตดตงระบบลงบนเครองทใชงาน แตยงคงไวซงความปลอดภยและสามารถเขาใชงานบรการอนๆของเครอขายไดโดยการ login เพยงครงเดยว กเปนอกสวนทจาเปนตองไดรบการศกษาออกแบบพฒนา

ภาพประกอบ 1-1 ตวอยางการทางานของโปรแกรม “A” ซงเขาถงฐานขอมล

โดยเรยกใช Web Service

จาก

ภาพประกอบ 1-1 เปนตวอยางโปรแกรมทมการประมวลผลแบบกระจายทเขาถงฐานขอมลโดยเรยกใช web service ซงในการเขาใชทรพยากรของทงสามสวนกตองมการพสจนตวตนและยนยนสทธ นนคอเมอผใชเรยกใช โปรแกรม “A” มการพสจนตวตนและยนยนสทธ ผใชตองใส login และ password เพอใชงานโปรแกรม “A” เมอ โปรแกรม “A” เรยกใชงาน web

Page 13: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

3

1.2 วตถประสงค

1. เพอหากลไกการพสจนตวตนผใชทสามารถทางานรวมกนระหวางระบบปฏบตการ

Windows และ Linux 2. เพอพฒนาระบบพสจนตวตนผใชทมความสามารถในการทา Single Sign-On สาหรบ

ระบบสารสนเทศทเปน web application 3. เพอเสนอแนวทางในการนากลไกการพสจนตวตนผใชทไดมาใชเปนกลไกการพสจน

ตวตนผใชสาหรบระบบ บรการและโปรแกรมตางๆ

1.3 ประโยชนทคาดวาจะไดรบ

1. ไดกลไกการพสจนตวตนผใชทสามารถทางานรวมกนระหวางระบบปฏบตการ Windows และ Linux

2. ไดระบบพสจนตวตนผใชทมความสามารถในการทา Single Sign-On สาหรบระบบสารสนเทศทเปน web application

Page 14: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

4

3. ไดแนวทางในการนากลไกการพสจนตวตนผใชทได มาใชเปนกลไกการพสจนตวตนผใชสาหรบระบบ บรการ และโปรแกรมตางๆ

1.4 ขอบเขตการวจย

1. หากลไกการพสจนตวตนผใชสาหรบ Windows, Linux เพอทจะระบกลไกการพสจนตวตนผใชทเหมาะสมสาหรบการประมวลผลในลกษณะกระจาย และสามารถทางานรวมกนขาม platform ( Windows และ Linux)

2. ออกแบบ พฒนาระบบพสจนตวตนผใชทมความสามารถในการทา Single Sign-On สาหรบระบบสารสนเทศทเปน web application

3. เสนอแนวทางในการนากลไกการพสจนตวตนผใชทไดมาใชเปนกลไกการพสจนตวตนสาหรบระบบ บรการ และโปรแกรมตางๆ

1.5 ขนตอนการดาเนนงาน

1. ศกษากลไกการทางานของระบบพสจนตวตนผใชของระบบปฏบตการ Windows และ

Linux 2. ศกษากลไกการทางานของระบบ web Single Sign-On 3. ศกษาระบบสารสนเทศมหาวทยาลยสงขลานครนทร วทยาเขตหาดใหญ 4. วเคราะห ออกแบบ และทดสอบการปรบแตงกาหนดคาระบบพสจนตวตนสาหรบระบบ

สารสนเทศบน Windows platform และ Linux platform 5. วเคราะห ออกแบบ และทดสอบระบบพสจนตวตนผใชทมความสามารถในการทา

Single Sign-On สาหรบระบบสารสนเทศทเปน web application 6. สรปผล นาเสนอแนวทางในการใชงาน 7. จดทารายงาน และเอกสารประกอบ

Page 15: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

5

1.6 ระยะเวลา และ แผนการดาเนนงาน ระยะเวลาการดาเนนงานวจยใชเวลาทงสน 26 เดอน

ขนตอน เดอน

1 2 3 4 5 6 7 8 … 13 14 … 19 20 … 26 1 2 3 4 5 6 7

1.7 เครองมอทใชในการดาเนนงาน

ฮารดแวร

• เครองคอมพวเตอรแบบพกพา (Notebook) 1 เครอง ประกอบไปดวย 1. CPU Intel Core Duo 1.83 GHz 2. RAM 2 GB 3. Hard disk 160 GB

ซอฟตแวร

• VMWare Workstation 5.5/6.0

• Windows Server 2003 R2

• Windows XP

• RedHat Enterprise Linux 4

• Fedora Core 4/7

• Microsoft Visual Studio 2005

Page 16: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

6

1.8 สถานททาการวจย ศนยคอมพวเตอร มหาวทยาลยสงขลานครนทร

Page 17: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

บทท 2 ทฤษฎ และงานวจยทเกยวของ

2.1 บทนา

ในบทนจะกลาวถงทฤษฎ หลกการ งานวจยทเกยวของกบการทาวทยานพนธ โดย

ทเนอหาในสวนแรกกลาวถงการพสจนตวตน การควบคมสทธการใชงาน การพสจนตวตนในเครอขาย สถาปตยกรรมของระบบระบบพสจนตวตนแบบ Single Sign-On หลงจากนนจะกลาวถงตวอยางของระบบพสจนตวตน Single Sign-On ทมในปจจบน และสรปปญหา สาเหต และความตองการของระบบ

2.2 การพสจนตวตน (Authentication) และการควบคมสทธการใชงาน (Authorization)

ในปจจบนระบบคอมพวเตอรไดถกคกคามมากขนทงจากไวรสคอมพวเตอรหรอ

จากผไมประสงคด ซงระบบความมนคงปลอดภยคอมพวเตอร (Computer Security) ชวยปกปองเครองคอมพวเตอร อปกรณตางๆทเกยวของ และชวยปกปองขอมลทไดจดเกบไวภายในระบบ ซงจดประสงคหลกของความปลอดภยทางขอมลคอ ความลบ (Confidentiality) ความสมบรณ (Integrity) และความพรอมใช (Availability) โดยมรายละเอยดดงน

• การรกษาความลบ (Confidentiality) คอการรบรองวาจะมการเกบขอมลไวเปนความลบ และผมสทธเทานนจงจะเขาถงขอมลนนได

• การรกษาความสมบรณ (Integrity) คอการรบรองวาขอมลจะไมถกเปลยน แปลงหรอทาลายไมวาจะเปนโดย อบตเหตหรอโดยเจตนา

• ความพรอมใช (Availability) คอการรบรองวาขอมลและบรการการสอสารตาง ๆ พรอมทจะใชไดในเวลาทตองการใชงาน

เพอทาความเขาใจกบแนวคดน เราจะใชตวอยางการฝาก-ถอนเงนกบธนาคาร Confidentiality คอขอกาหนดในการกระจายขอมลหรอสวนของขอมลไปสกลมบคคลทกาหนดสาหรบตวอยางนคอ ขอมลยอดบญชธนาคารของตนเองสามารถดไดเฉพาะตนเอง และเจาหนาทธนาคารทมสทธ Integrity คอขอกาหนดของความสามารถในการเปลยนแปลงแกไขขอมล ในกรณตวอยางนคอ เราไมสามารถทโอนเงนจากบญชของผอนได ในทางกลบกนผอนกไมสามารถโอน

7

Page 18: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

8

เงนออกจากบญชของเราได และสดทาย Availability ซงคอความพรอมใชงานของขอมล เราสามารถดขอมลซงคอยอดเงนในบญชไดเมอตองการ

2.2.1 การพสจนตวตน (Authentication)

การพสจนตวตน คอการยนยนความถกตองของหลกฐาน (Identity) ทแสดงวาเปนบคคลทกลาวอางจรง ในทางปฏบตจะแบงออกเปน 2 ขนตอน คอ

• การระบตวตน (Identification) คอการทผใชแสดงหลกฐานวาตนเองคอใครเชน การใชชอผใช (username) หรอบตรแสดงตวตน (identity card)

• การพสจนตวตน (Authentication) คอการตรวจสอบหลกฐานเพอแสดงวาเปนบคคลทกลาวอางจรง

ภาพประกอบ 2-1 กระบวนการการพสจนตวตน [1] จากภาพประกอบ 2-1 แสดงกระบวนการพสจนตวตน ในขนแรกผใชจะทาการ

แสดงหลกฐานทใชในการพสจนตวตนตอระบบ ซงในขนนคอการระบตวตน และในขนตอนตอมาระบบจะทาการตรวจสอบหลกฐานทผใชนามากลาวอางซงกคอการพสจนตวตน หลงจากระบบไดทาการตรวจสอบหลกฐานเรยบรอยแลวถาหลกฐานทนามากลาวอางถกตองกจะอนญาตใหเขาสระบบได หากหลกฐานทนามากลาวอางไมถกตองผใชจะถกปฏเสธการใชงานระบบ

Page 19: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

9

หลกฐานทผใชนามากลาวอางทเกยวกบเรองของความปลอดภยน นสามารถจาแนกได 2 ชนด

• Actual identity คอหลกฐานทสามารถบงบอกไดวาในความเปนจรงบคคลทกลาวอางนนเปนใคร

• Electronic identity คอหลกฐานทางอเลกทรอนกสซงสามารถบงบอกขอมลของบคคลนนได แตละบคคลอาจมหลกฐานทางอเลกทรอนกสไดมากกวาหนงหลกฐาน ตวอยางเชน บญชชอผใช

คณลกษณะ (factor) ทนามาใชในกลไกของการพสจนตวตน (Authentication mechanisms) สามารถแบงออกไดเปน 3 กลมคอ

• สงทม (Possession factor) เชน กญแจหรอ บตรเครดต เปนตน

• สงทร (Knowledge factor) เชน รหสผาน (passwords) หรอการใชเลขรหสลบสวนตว (Personal Identification Number) เปนตน

• สงทเปน (Biometric factor) เชน ลายนวมอ รปแบบเรตนา (retinal pattern) หรอใชรปแบบเสยง (voice pattern) เปนตน

กระบวนการพสจนตวตนนนจะนา 3 ลกษณะขางตนมาใชในการยนยนหลกฐานทนามากลาวอาง ทงนขนอยกบระบบจะเลอกใชโดยอาจจะใชเพยงคณลกษณะเดยวหรอหลายอยางรวมกน วธการทใชเพยงลกษณะอยางใดอยางหนง (Single-factor authentication) นนมจดออนบาง ตวอยางเชน สงทม นนอาจจะสญหายหรอถกขโมยได สงทรอาจจะถกดกฟง เดา หรอขโมยจากเครองคอมพวเตอร และสงทเปน ซงจดไดวาเปนวธทมความปลอดภยสง แตอยางไรกตามการทจะนาเทคโนโลยนมาใชงานนนจาเปนตองมการลงทนทสง เปนตน [1]

ดงนนจงไดมการนาแตละคณลกษณะมาใชรวมกน (Multi-factor authentication) ตวอยางเชน ใชสงทคณมกบสงทคณรมาใชรวมกน เชน การใชลายมอชอรวมกบการใชบตรเครดตหรอการใชรหสผานรวมกบการใชบตร ATM ซงการนาแตละลกษณะของการพสจนตวตนมาใชรวมกนมากกวาหนงลกษณะนจะชวยเพมประสทธภาพในการรกษาความปลอดภยของขอมล

2.2.2 การควบคมสทธการใชงาน (Authorization)

หลงจากผใชผานการตรวจสอบตวตนผใชและสามารถพสจนตวตนของผใชไดแลว ขนตอไปกคอการตรวจสอบสทธวาไดรบอนญาตเขาใชงานทรพยากรของระบบไดหรอไมได ซงเรยกวา กลไกควบคมสทธการใชงาน หรอ Authorization นนคอ ผรองขอจะสามารถเขาใชงานทรพยากรของระบบหรอกระทาการใดๆกตาม ไดเฉพาะทตนเองไดรบอนญาตเทานน ขอกาหนด

Page 20: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

10

2.3 การพสจนตวตนผใช และการควบคมสทธการใชงานในเครอขาย

การพสจนตวตนผใชและการควบคมสทธการใชงานทกลาวมาขางตนนน สามารถ

ทาไดงายในระบบคอมพวเตอรใดๆ แตเมอมการใชงานเครอขายคอมพวเตอรความยงยากซบซอนในการพสจนตวตนและควบคมสทธการใชงานเพมขน ปญหาของการทางานของกลไกพสจนตวตน และกลไกควบคมสทธการใชงานเมอมการใชงานบนเครอขาย เชน

• ความยงยากในการสงผานขอมลการพสจนตวตนและสทธการใชงานผานเครอขายคอมพวเตอร โดยทไมถกดกจบขอมล เปลยนแปลงขอมลและนาขอมลมาใชใหม

• ปญหาในการระบตวตนของเครองคอมพวเตอรลกขาย (Client) เพอปองกนขอมลทตองสงผานเครอขายไดมการนาเทคนคการเขารหสขอมล

(Cryptographic) [2; 3] มาใชในระบบพสจนตวตนผใชผานเครอขาย (Network Authentication System) โดยจดประสงคทสาคญ 3 ประการคอ

1. การทาใหขอมลเปนความลบ เพอปองกนไมใหผทไมมสทธในการใชขอมลนน นาขอมลทอาจจะดกจบจากเครอขายไปใชได

2. การทาใหขอมลสามารถตรวจสอบความสมบรณได เพอปองกนขอมลใหอยในสภาพเดมอยางสมบรณ กลาวคอ ในกระบวนการสอสารนนผรบ (Receiver) ไดรบขอมลทถกตองตามทผสง (Sender) สงมาใหโดยขอมลจะตองไมถกเปลยนแปลงแกไขใดๆ

3. การทาใหสามารถพสจนตวตนของผสงขอมลได เพอใหสามารถตรวจสอบไดวาใครคอผสงขอมล หรอในทางตรงกนขาม กคอเพอปองกนการแอบอางได

Page 21: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

11

ในการเขาใชงานระบบสารสนเทศตางๆผานเครอขายคอมพวเตอร ผใชงานจะตองจดจาขอมลทใชในการพสจนตวตน (โดยทวไปคอ username และ password) สาหรบระบบสารสนเทศทกระบบทผใชมสทธเขาใชงาน เมอระบบสารสนเทศทจาเปนตองใชงานมจานวนเพมขนถงจดหนง ซงเกนความสามารถทผใชจะสามารถจดจาได ผใชกจะใช password ชดเดยวกนในทกระบบสารสนเทศทผใชไดลงทะเบยนไวหรอมสทธใชงานเพอความสะดวกในจดจา แตกลบทาใหระบบรกษาความปลอดภยออนแอลง แนวความคด Single Sign-On (SSO) จงถกนาเสนอขนมาเพอใหการใชงานระบบทาไดสะดวกขน การบรหารจดการจะเกดขนทจดเดยวในระบบและระบบรกษาความปลอดภยมประสทธภาพเพมขน ซงแนวคด SSO นผใชจะทาการพสจนตวตนเพยงครงเดยวและสามารถเขาใชงานบรการตางๆไดโดยไมตองทาการพสจนตวตนดวยตนเองอกครงเมอเขาใชงาน สถาปตยกรรมระบบ SSO ถกพฒนาขนมาหลายรปแบบ โดยทแตละสถาปตยกรรมแตกตางกนทงในสวนของคณสมบตและโครงสรางพนฐาน แตละสถาปตยกรรมมขอดและขอเสยทแตกตางกน ซงสามารถแบงประเภทของสถาปตยกรรมระบบ SSO ออกเปน 2 กลมใหญๆคอ Pseudo-SSO และ True SSO [4]

ในระบบ Pseudo-SSO กระบวนการพสจนตวตนจะถกประมวลผลทกครงในการเขาใชงานแตละบรการ โดยท Pseudo-SSO component จะจดการกบขอมลทใชในการพสจนตวตนกบบรการแตละบรการ ซงบรการหนงบรการสามารถทจะใชขอมลการพสจนตวตนไดหลายชด ดงแสดงในภาพประกอบ 2-2

ภาพประกอบ 2-2 Pseudo-SSO [4]

Page 22: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

12

ระบบ True SSO มรปแบบการทางานทแตกตางจาก Pseudo-SSO โดยทผใชจะทาการพสจนตวตนกบ Authentication Service Provider (ASP) โดยทบรการทกบรการทใชสถาปตยกรรมนจะตองทางานรวมกบ ASP เพอใหสามารถใหบรการ SSO ไดโดยการทาขอตกลง ลงทะเบยนการใชงานกบ ASP ในสวนรปแบบของ SSO identity จะเปนลกษณะเดยวกนทงระบบ (ขนอยกบการออกแบบในแตละระบบ SSO) และอนญาตใหสามารถใช SSO identity ชดเดยวในการเขางานบรการตางๆ ดงแสดงในภาพประกอบ 2-3

ภาพประกอบ 2-3 True SSO [4] สถาปตยกรรม SSO ยงสามารถจดกลมตามตาแหนงของ ASP/Pseudo-SSO

component ซงอาจจะอยทเครองผใชงานหรออยทบรการภายนอกทเรยกวา SSO proxy ออกเปน 4 กลมดงน

• Local pseudo-SSO system

• Proxy-based pseudo-SSO system

• Local true SSO system

• Proxy-based true SSO system ในการใชงานสภาพแวดลอมทไมไววางใจเชน Internet café หรอจากเครอง

สาธารณะซงไมสามารถควบคมไดนน เมอเขาใชงานระบบและเคยทาการพสจนตวตนผใชไดสาเรจ กเปนไดทอาจจะถกนาไปใชและสามารถจาลองตวตนไดในภายหลง ซงในกรณเชนระบบทมสถาปตยกรรมแบบ proxy-based SSO จะสามารถแกปญหานไดโดยการพสจนตวตนระหวางผใช

Page 23: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

13

2.4 Kerberos

การพสจนตวตนแบบ Kerberos พฒนาขนโดย Massachusetts Institute of

Technology หรอ MIT การทางานของ Kerberos มเซรฟเวอรททาหนาทในการจาหนาย Kerberos ticket ซงภายในประกอบดวย Authentication service (AS) สาหรบการพสจนตวตนของผใชกบ Kerberos เซรฟเวอรกอนการเขาใชบรการ และ Ticket Granting Service (TGS) เปนบรการทออก Ticket เพอใหผใชนาไปใชกบเซรฟเวอรทตองการ [5]

ปญหาสาคญของการใชระบบ Kerberos คอการขยายระบบเนองจากเซรฟเวอร Kerberos ตองเกบกญแจของผใชทกคนทเขามาในระบบ ถาระบบใหญมากขน มการกระจายตวมากกวาหนงจด ยอมสงผลเสยตอการใชงานระบบโดยรวม แตการนาระบบ Kerberos มาใชจะเพมความสะดวกในการพสจนตวตนไดมากขน มกเรยกการใชงาน Kerberos วาเปนระบบ Single Sign-On แบบหนง คอการเขาถงการใชบรการของระบบทงหมดไดดวยการพสจนตวตนเพยงครงเดยว

2.4.1 ความสมพนธระหวางโดเมนเนมและ REALM ของ Kerberos

REALM คอกลมของเครอขายทใหบรการภายใต Key Distribution Center หรอ KDC เดยวกน เพอใหงายในการนาไปใชงานมกจะตงชอเปนตวอกษรใหญทงหมด เพอใหแตกตางกบโดเมนเนมของเครองภายในเครอขาย โดยปกตเซรฟเวอรจะมโดเมนเนมทสมพนธกบหมายเลขไอพเพอชวยในการระบชอของเครองภายในเครอขาย เมอนามาใชงานภายใต Kerberos การแทนกลมของเครองภายในเครอขายทดแลโดยฐานขอมล Kerberos เดยวกนหรอ REALM เดยวกนนนมกจะตงชอ REALM ใหสอดคลองกบโดเมนเนมเดมทใชงานอยแลวเชน เครองภายในโดเมนเนม example.com จะอยภายใน Kerberos Realm เปน EXAMPLE.COM หรอกลาวในอกนยหนงวา REALM ชอ EXAMPLE.COM จดเปนกลมของเซรฟเวอรทสามารถใชการพสจนตวตนผาน Kerberos ซงโดยปกตมกจะประกอบไปดวยเครองไคลเอนต (client) ทาการพสจนตวตนกบ

Page 24: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

14

2.4.2 กระบวนการทางานของ Kerberos

1. ในการเขาใช Kerberos ครงแรกผใชตองทาการรองขอ ticket ผานโปรแกรม kinit โดย principal (ชอบญชผใชหรอชอบรการสาหรบใชในการพสจนตวตนบนระบบ Kerberos) ของผใชจะถกสงไปยง Kerberos Server ซงภายในประกอบดวย Authentication Service (AS) และ Ticket Granting Service (TGS)

ภาพประกอบ 2-4 กระบวนการการพสจนตวตน Kerberos [6]

2. AS จะทาการตรวจสอบวา principal นมอยใน Kerberos database หรอไม ถาม Kerberos server จะทาการสราง Ticket Granting Ticket (TGT) จาก TGS โดยใชรหสผานของผใช ในการเขารหส TGT แลวสงกลบมาใหผใช

3. ผใชใสรหสผานของผตนในการถอดรหส TGT และจะถกเกบไวเพอแสดงวาหลกฐานของผใชไดรบการพสจนตวตนแลว

Page 25: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

15

เมอผใชตองการจะเขาใช Application server สามารถทาไดโดย 1. ผใชสง TGT ไปยง KDC 2. KDC จะทาการตรวจสอบ TGT ถาถกตองกจะให Service ticket กบผใชในการเขา

ไปใชบรการทตองการ ซง Service ticket นจะถกเขารหสไวดวยรหสผานของบรการบน Application server ทตองการเขาไปใชบรการและเขารหสอกครงดวยรหสผานของผใช

ภาพประกอบ 2-5 กระบวนการขอรบ Service ticket [6]

3. เมอผใชไดรบ Service ticket กจะถกสงตอไปให Application server ซงจะทาการถอดรหสดวยรหสผานของบรการบน Application server โดยเกบขอมลรหสผานของบรการเพอใชในการถอดรหส Service ticket ไวใน key tables บน Application server

4. ถาสามารถถอดรหสไดผใชกสามารถเขาใชบรการได ระบบพสจนตวตน Kerberos ไดรบการพฒนาใหสนบสนนการนา public key

cryptography โดยใชการเขารหสและสรางลายเซนอเลกทรอนกส (digital signature) ในขนตอนการเรมตนการพสจนตวตนระหวางเครองผใชกบ KDC [7] และไดขยายความสามารถของ

Page 26: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

16

ระบบ UNIX หรอ Linux platform สนบสนนการใช Kerberos เปนเวลาหลายปมาแลว ในขณะททางดาน Windows platform Microsoft ไดเรมพฒนาให Windows สนบสนน Kerberos ใน Windows 2000 ซงแมวาการพฒนา Kerberos ของ Microsoft สวนใหญพฒนาตามขอกาหนดแตกมสวนทแตกตางและสวนขยายเพมเตมเชน การเพมขอมลเกยวกบการตรวจสอบสทธการใชงาน (authorization data) เขาไปใน ticket ทสรางขนซงเรยกวา Privilege Access Certificate (PAC) [9] ซงแมวา Kerberos ใน Windows platform จะแตกตางจาก Kerberos ของ platform อนๆ แตการทจะนามาทางานรวมกนกไมไดยงยาก ขอมลวธการและคาสงทใชการกาหนดคาสามารถดไดจาก [10]

ในการนา Kerberos บน Windows platform มาทางานกบ Kerberos บน platform อนๆสามารถทาไดหลายแนวทาง ดงน

• การใชงาน Kerberos-enabled Windows client ใน non-Windows realm

• การใชงาน non-Windows client ใน Windows Kerberos realm

• การใชงาน non-Windows KDC รวมกบ Windows domain

• การใชงาน Windows realm รวมกบ non-Windows realm ขอมลรายละเอยดในแตละแนวทางสามารถดไดจาก [11] ซงเปนการนาระบบ

Kerberos ทชอวา Heimdal มาทางานรวมกบ Windows 2000 Kerberos ระบบทงคมพนฐานอยบน Kerberos v5 ทาใหสามารถนาแนวทางดงกลาวมาประยกตใชในการปรบแตงกาหนดคากบ Windows Server 2003 Kerberos และ MIT Kerberos ได

ในสวนของการใชงาน Kerberos กบระบบทเปน web นนไดมการออกแบบ พฒนา และเพมประสทธภาพของ Kerberos เพอใชงานผานทาง browser มความสามารถของการทา Web Single Sign-On (Web SSO) เทคนคทใชคอ การทา credential translation โดยในสวนของ web server จะตดตง plugin ทสามารถทจะแปลง public key credential ของผใชไปส Kerberos credential [12]

Page 27: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

17

2.5 Token-based Web Single Sign-On with Enabled Client The Liberty Alliance ไดพฒนาขอกาหนด web SSO ในลกษณะ Token-based

Web Single Sign-On with Enabled Client [13] ซงใช Security Assertions Markup Language (SAML) ในการแลกเปลยนขอมลการพสจนตวตนและขอมลการตรวจสอบสทธการใชงาน มขนตอนการทางานดงน ( สาหรบบางขนตอนทขาดหายไปเชน 2, 8 และ 9 เนองจากตองการใหเขากนไดกบ Liberty protocol ตวอนๆ )

1. เรมตน client ตดตอกบ Service Provider ผานทาง HTTP 3. เมอ Service Provider ตองการพสจนตวตนผใช กจะสงคารองของการพสจน

ตวตนผใช <AuthnReq> กลบไปส client ภายใต <AuthnReqEnv> โดยท <SP-ID> คอ identity ของ Service Provider และ <SP-URL> คอ URL ท Service Provider ตองการไดรบการตอบสนองกลบมา

ภาพประกอบ 2-6 LEC (Liberty-enabled client and proxy) protocol [13]

4. เมอ client ไดรบคารองขอกจะสงตอไปยง Identity Provider ภายใต SOAP

message 5. Identity Provider จะตรวจสอบ user identity (ซงอาจจะมกระบวนการตางๆในการ

ตดตอกนระหวาง Identity Provider กบ client ) และจะสง <AuthnRes> สาหรบ Service Provider กลบไปส client โดยสงไปภายใต <AuthnResEnv>

Page 28: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

18

7. client ไดรบ < AuthnRes> และ post ไปท URL <SP-URL> ของ Service Provider 11. Service Provider จะประมวลผลและสงผลกลบมาให client และดาเนนการตอไป

ขนตอนท 4, 5 และ 6 ในการพสจนตวตนผใชและไดรบ <AuthnRes> กลบมานน สามารถทจะนา three-party authentication protocol ตวอยางเชน Kerberos เขามาใชงานได นนคอในขนตอนนแทนทจะไดรบ <AuthnRes> กจะสง TGS มาแทน และ client กทาการสงตอ TGS ไปใหกบ Service Provider ซง Service Provider สามารถทจะพสจนตวตนผใชและ impersonate เปน client เพอเขาใชบรการอนๆ ทใช Kerberos เปนระบบพสจนตวตนผใช ไดตามสทธทระบใน ticket ซง client ทใชงานจะตองสนบสนนการใช Kerberos ดวยเชนกน

2.6 Microsoft Passport

Microsoft Passport คอระบบ web SSO ทไดรบการพฒนาโดย Microsoft โดยม

passport server เปนผใหบรการพสจนตวตนผใช (ASP) ผใชตองทาการลงทะเบยนกบ ASP โดยระบ e-mail และ password รวมทงสามารถทจะเกบขอมลสวนบคคลของผใชเชน ทอย วนเดอนปเกด ไวในบญชผใช passport โดยแตละบญชผใชจะมขอมลระบตวผใช Passport User ID (PUID) การทางาน SSO ของ Microsoft Passport จะเกดขนเมอผใชตองการเขาใชงาน web site หรอบรการทสนบสนนการใชงาน Microsoft Passport โดยมขนตอนการทางานดงน

1. Browser ของผใชจะถก redirect ไปท ASP 2. ASP ตรวจสอบ cookie cache ของ web browser วาม Ticket Granting Cookie

(TGC) หรอไม ถามกจะนามาถอดรหสและตรวจสอบ ซงถาถกตองผใชกจะไดรบการยนยนตวตนและสามารถเขาใชงานไดโดยขามขนตอนท 3 ไป แตถาไมพบ TGC ASP จะรองขอใหผใชทาการพสจนตวตนกบ ASP ซงถาทาสาเรจ ASP กจะสราง TGC ขนมาใหมและเกบไวใน cookie cache ของ web browser ซง cookie จะถกเขารหสโดย key ทรเพยง ASP เทานน ซงการทางานจะเหมอนกบ TGT ของ Kerberos

3. ASP จะทาการบนทก cookie ของบรการตางๆใน cookie cache ของ web browser โดยท cookie จะถกเขารหสโดย key ทรกนระหวาง ASP และบรการนนๆ เทานน

4. Browser จะถก redirect กลบไปสบรการซง บรการจะทาการถอดรหสและตรวจสอบ ซงถาถกตองผใชกจะไดรบการยนยนตวตนและสามารถเขาใชงานได

Page 29: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

19

การทา SSO นจะใชงานไดจนกระทง TGC หมดอาย ซงในระหวางนนผใชไมจาเปนตองทาการพสจนตวตนผใชอก Microsoft Passport จะมความคลายคลงกบ Kerberos ซงมการใชตวระบตวผใช (SSO identity) ตวเดยวกนกบทกบรการ

2.7 การพสจนตวตนของระบบสารสนเทศบน Windows และ Linux platform

การพสจนตวตนของระบบสารสนเทศทมใชงานอยในปจจบน สามารถแบงตาม

platform ของระบบสารสนเทศไดเปน 2 กลมหลกๆ คอ

• ระบบสารสนเทศททางานอยบน Windows platform ซงทาการพสจนตวตนผใชดวย Kerberos กบ Active Directory (Windows domain) ซงเปนบรการททาหนาทเปนทง LDAP server และ KDC ภายในตวเดยวกน โดยท KDC จะใชขอมลผใชจากบรการ LDAP และ บรการ LDAP จะใชการพสจนตวตนกบ REALM ของ KDC

• ระบบสารสนเทศททางานอยบน UNIX หรอ Linux platform ทาการพสจนตวตนกบบรการ LDAP โดยใชโปรโตคอล LDAP หรอทาการพสจนตวตนKerberos กบ KDC โดยทบรการ LDAP และ KDC ทงสองบรการจะมระบบจดการขอมลบญชผใชของตนเอง

จากการแบงกลมระบบสารสนเทศตาม platform ททางานเปน 2 กลมขางตนจะ

เหนวา ระบบทพฒนาและทางานบน Windows platform จะทาการพสจนตวตนกบระบบใหบรการพสจนตวตนททางานอยบน Windows platform และระบบทพฒนาและทางานบน Linux platform จะทาการพสจนตวตนกบระบบใหบรการพสจนตวตนททางานอยบน Linux platform ทาใหองคกรหรอหนวยงานทมระบบสารสนเทศทางานอยบนทงสอง platform จะตองทาการบรหารจดการขอมลบญชผใชสองจด นนคอขอมลบญชผใชทถกจดเกบอยใน Active Directory บน Windows platform และในบรการ LDAP (LDAP server) บน Linux platform ซงทางเลอกทจะทาใหงายตอการใชงานคอ สรางบญชผใชชอเดยวกน แตอยางไรกตามในมมมองของผใชงาน แมวาผใชสามารถใชบญชผใชชอเดยวกนในการเขาใชงานระบบสารสนเทศตางๆ แตผใชงานจะถกควบคมใหทาการพสจนตวตนกอนเขาสระบบทกครงทเขาใชงานในแตละระบบไมวาระบบนนจะทางานอยบน Windows platform หรอ Linux ซงทาใหเกดความไมสะดวกในการใชงาน และอาจทาใหเกดความเสยงตอระบบรกษาความมนคงปลอดภยเมอมการสงผานขอมลทใชในการพสจนตวตนไปบน

Page 30: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

20

2.8 สรป

จากการศกษาทฤษฎ หลกการ งานวจยทเกยวของ การพสจนตวตนบน Windows

และ Linux platform สามารถสรปปญหา สาเหต และความตองการของระบบไดดงน

สาเหต ปญหา ความตองของระบบ 1. ตองบรหารจดการและ

จดเกบขอมลบญชผใชกบระบบมากกวาหนงระบบ

มขอมลบญชผใชทถกจด เกบอยใน Active Directory บน Windows platform และบรการ LDAP บน Linux platform ในสวนของการพสจนตวตนผใช ระบบททางานบน Windows platform พสจนตวตนกบ KDC บน Windows platform และระบบททางานบน Linux platform พสจนตวตนกบบรการ LDAP หรอ Kerberos REALM บน Linux platform

มการบรหารจดการและจดเกบขอมลบญชผใชทระบบเพยงระบบเดยวทซงทง Windows และ Linux platform ใชขอมลบญชผใชและสามารถพสจนตวตนกบระบบนนได

Page 31: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

21

2. ผใชตองพสจนตวตนทกครงทเขาใชงานในแตระบบ

บรการหรอระบบตองการพสจนระบตวตนผใชงาน และควบคมการใชงานของผใชใหสามารถเขาใชงานระบบหรอบรการทตนเองมสทธในการเขาใชงานเทานน

บรการหรอระบบ มความสามารถในการทา SSO นนคอผใชสามารถทจะพสจนตวตนครงแรกทเรมตนใชงานเพยงครงเดยว สามารถเขาใชงานระบบหรอบรการตางๆทตนเองมสทธในการเขาใชงานไดทนทโดยไมตองพสจนตวตนอกครง

ตาราง 2-1 สรปปญหา สาเหต และความตองการของระบบ ในบทถดไปจะกลาวถงการวเคราะห ออกแบบ แนวทางวธการในการนาระบบ

พสจนตวตนผใช Kerberos มาใชงานใน Windows และ Linux platform ทาใหทงสอง platform มความสามารถในการทา SSO และพฒนาระบบ SSO สาหรบ web application ทาใหบรการทมรปแบบการใหบรการผาน web มความสามารถในการทา SSO

Page 32: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

บทท 3 การวเคราะห ออกแบบและพฒนา

3.1 บทนา

ในบททผานมาไดกลาวถง ทฤษฎทเกยวของ ทาใหทราบถงแนวคด วธการในการ

ทางานของการพสจนตวตนแบบ SSO ตวอยางระบบ SSO ทมใชอยในปจจบน และปญหาการบรหารจดการขอมลบญชผใชและการพสจนตวตนของระบบสารสนเทศบน platform ทแตกตางกนตวอยางเชน Windows และ Linux platform รวมทงแนวทางในการนาระบบทงสอง platform มาใชงานรวมกนโดยมระบบพสจนตวตนผใชทมความสามารถ SSO ซงในบทนจะกลาวถงการวเคราะห ออกแบบ แนวทางวธการในการนาระบบพสจนตวตนผใช Kerberos มาใชงานใน Windows และ Linux platform ทาใหทงสอง platform มความสามารถในการทา SSO และพฒนาระบบ SSO สาหรบ web application ทาใหบรการทมรปแบบการใหบรการผาน web มความสามารถในการทา SSO เพอรองรบความตองการทไดกลาวไปแลวในบทท 2 ดงน

3.2 การวเคราะหระบบ

จากการศกษาระบบสารสนเทศทมใชงานอยในปจจบน ซงโดยทวไปจะมการใช

งานอยบนสอง platform หลกๆคอ Windows และ Unix/Linux platform โดยในแตละ platform กจะมระบบบรการจดการบญชผใช และการพสจนตวตนในแบบของตนเอง เมอนาระบบหรอบรการททางานทงสอง platform มาใชงานรวมกน การบรการจดการบญชผใชกจะเกดขนในทกระบบ และยงมระบบสารสนเทศทจาเปนตองใชงานมจานวนเพมขนถงจดหนง ซงเกนความสามารถทผใชจะสามารถจดจาได ผใชกจะใช password ชดเดยวกนในทกระบบสารสนเทศทผใชไดลงทะเบยนไวหรอมสทธใชงานเพอความสะดวกในจดจา แตทาใหระบบรกษาความปลอดภยออนแอลง แนวความคด SSO จงถกนาเสนอขนมาเพอใหการใชงานระบบทาไดสะดวกขน การบรหารจดการจะเกดขนทจดเดยวในระบบและระบบรกษาความปลอดภยมประสทธภาพเพมขน ซงสามารถสรปปญหาได 2 ขอดงน

1. มระบบบรหารจดการและจดเกบขอมลบญชผใชมากกวาหนงระบบ 2. ผใชตองพสจนตวตนทกครงทเขาใชงานในแตระบบ

22

Page 33: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

23

ระบบสารสนเทศททางานบน Windows platform ทเปนสมาชกของ Windows domain จะทาการพสจนตวตนและใชงานขอมลบญชผใชจากระบบ Active Directory บนระบบปฏบตการ Windows server โดยท Active Directory จะทาตวเปนผใหบรการ LDAP และ เปน KDC ในเวลาเดยวกน โดยเครองทเปนสมาชกสามารถทเรยกพสจนตวตนผใชผานตวระบบปฏบตการของตนเองไดโดยตรง ซงจะทาการพสจนตวตนผใชโดยใชโปรโตคอล Kerberos และรองขอขอมลบญชผใชผานทางโปรโตคอล LDAP

ระบบสารสนเทศทพฒนาบน UNIX หรอ Linux platform สวนใหญจะทาการพสจนตวตนกบบรการ LDAP ซงใหบรการโดย LDAP server (OpenLDAP) บนระบบปฏบตการ Linux ในสวนของการบรหารจดการและจดเกบขอมลบญชผใช ระบบสารสนเทศบน Linux platform จะใชโปรโตคอล LDAP รองขอขอมลบญชผใชไปยงบรการ LDAP เชนเดยวกน

ในมมมองของผใชบรการ ผใชสามารถใชบญชผใชเดยวกน (รวมถง password ทใชในการพสจนตวตน ซงตองกาหนดท Active Directory และ LDAP Server ใหตรงกน)ในการเขาใชงานระบบสารสนเทศทงสอง platform แตอยางไรกตามผใชตองพสจนตวตนทกครงทเขาใชงานในแตละระบบสารสนเทศ (ในกรณของ Windows platform ถงแมวาเครองทใหบรการระบบสารสนเทศจะเปนสมาชกของ Active Directory แลวกตาม แตถาเครองของผใชบรการยงไมเปนสมาชก ระบบกจะไมสามารถทา SSO ได) ซงทาใหเกดความไมสะดวกในการใชงาน และเพมโอกาสในการรวไหลของขอมลทใชในการพสจนตวตนเมอมการสงผานเครอขายบอยครง ทาใหเกดความเสยงตอระบบรกษาความมนคงปลอดภยในภาพรวมได ดงนนการทาใหกระบวนการพสจนตวตนมความสามารถในการทา SSO จะทาใหระบบสารสนเทศตางๆ งายตอการใชงานและลดความเสยงในระบบรกษาความมนคงปลอดภย ซงจากตวอยางระบบ SSO ทไดกลาวไปแลวในบทท 2 นนพบวา เราสามารถนาระบบ Kerberos มาใชงานเพอทาใหการพสจนตวตนผใชมความสามารถในการทา SSO ซง Windows และ Linux platform สนบสนนการใชงาน Kerberos อยในตวระบบปฏบตการอยแลว (ระบบปฏบตการ Windows ตงแต Windows 2000 เปนตนไปจะสนบสนนการใชงาน Kerberos) ในสวนของเครองผใชงานจะตองทาการกาหนดคาใหรจกและใชงาน Kerberos REALM เชนกน ซงจะเหมาะกบการใชงานภายในเครอขายขององคกรทสามารถควบคมการตดตงปรบแตงเครองผใชบรการ แตถาผใชเขาใชงานระบบสารสนเทศทเปน web application โดยใชเครองในราน Internet Café หรอเครองสาธารณะตวอยาง เครองใหบรการในโรงแรม ซงเราไมมสทธในการตดตงหรอกาหนดคาในระบบปฏบตการทาใหไมสามารถจะเขาใชงานได จากเงอนไขนทาใหตองมการพฒนา ระบบ SSO สาหรบ web application ทไมตองทาการ

Page 34: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

24

3.2.1 ระบบพสจนตวตน Single Sign-On สาหรบ Windows และ Linux platform

จากทไดกลาวมาแลวขางตน จะพบวาระบบสารสนเทศทงสอง platform จะใชงานโปรโตคอล LDAP ในการรองขอขอมลบญชผใช เชนเดยวกน ซงจากความตองการใหการบรหารจดการและจดเกบขอมลบญชผใชมเพยงจดเดยวระบบสารสนเทศทงสอง platform สามารถใชขอมลบญชรวมกน ทางเลอกสาหรบการบรหารจดการและจดเกบขอมลบญชผใชทจะนามาใชนน กจะตองสนบสนนโปรโตคอล LDAP ในการใหบรการขอมลบญชผใช ซงเมอกลบไปดระบบบรหารจดการและจดเกบขอมลบญชผใชบน Windows และ Linux platform พบวาทงสองระบบสนบสนนการใชงานโปรโตคอล LDAP ในการบรการขอมลบญชผใชเรยบรอยแลว จงไมจาเปนทจะตองตดตงระบบใหมเพมเตม แตเราจะเลอกใชระบบ Active Directory บน Windows platform หรอ OpenLDAP Server บน Linux platform ระบบใดระบบหนงเพยงระบบเดยวมาเปนผใหบรการการบรหารจดการและจดเกบขอมลบญชผใชสาหรบระบบทงสอง platform ซงเมอพจารณาในสวนของการนา Kerberos มาใชเปนระบบพสจนตวตนผใชเพอใหมความสามารถในการทางานแบบ SSO ดวยนน การใชงาน Kerberos จะม Kerberos Server (KDC) ทาหนาทในการบรหารจดการ Kerberos ticket และจดเกบขอมลบญชผใช ทาใหเรายงคงตองบรหารจดการบญชผใชในสองจดเหมอนเดม ดงนนถา KDC สามารถใชฐานขอมลบญชผใชจากบรการ LDAP และบรการ LDAP ใชการพสจนตวตน Kerberos กจะทาใหสามารถบรหารจดการบญชผใชทจดเดยวและมความสามารถในการทา SSO ซงเราจะพบวา Active Directory มความสามารถดงกลาวคอ ภายใน Active Directory มทงบรการ LDAP และ Kerberos อยภายใน ซงทางานโดยใชโปรโตคอล LDAP ในการใหบรการขอมลบญชผใชและใช Kerberos ในการพสจนตวตนผใชโดยใชขอมลผใชจากบรการ LDAP ดงนนในงานวจยชนนจงเลอกทจะใชระบบ Active Directory ในการวจยเพอใชในการบรหารจดการและจดเกบบญชผใชทจดศนยกลางเพยงทเดยว และใหบรการพสจนตวตนทมความสามารถในการทา SSO ใหกบระบบสารสนเทศบน Windows และ Linux platform ( กรณ เลอกระบบใช OpenLDAP บน Linux platform ใหบรการขอมลบญชผใชและพสจนตวตนดวย Kerberos จะตองทาการตดตง Kerberos Server (KDC) ซงมการจดเกบขอมลบญชผใชไวใน Kerberos database บน Kerberos server (KDC) ทาใหเมอมการสราง แกไขหรอลบบญชผใช กจะตองทาการสราง แกไข หรอลบบญชผใชทงบน LDAP server และ Kerberos server ทาใหตองบรหารจดการบญชผใชมากวาหนงจด ซงไมเปนไปตามทตองการ)

Page 35: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

25

เมอเลอกระบบทใหบรการขอมลบญชผใชและการพสจนตวตนไดแลวนน ตอไปจะเปนการปรบแตงระบบสารสนเทศตางๆบน Windows และ Linux platform ใหใชงานโปรโตคอล LDAP ในการรองขอขอมลและใชงานโปรโตคอล Kerberos ในการพสจนตวตนผใชกบ Active Directory โดยการปรบแตงจะทาการปรบแตงกาหนดคาทตวระบบปฏบตการกอน ทาใหบรการตางสามารถใชการพสจนตวตนผานระบบปฏบตการโดยตรง สาหรบระบบสารสนเทศหรอบรการทใชฟงกชนการพสจนตวตนของตนเอง จะตองปรบแตงทตวระบบสารสนเทศนนๆ โดยตรง

สาหรบระบบสารสนเทศทเปนลกษณะของ web application เมอมการปรบแตงกาหนดคาตวระบบปฏบตการใหใชการพสจนตวตนโดยใช Kerberos แลวนน web server ทไดกาหนดใหใชการพสจนตวตนของระบบปฏบตการจะสามารถใชงานไดทนท สาหรบ web server ทมระบบพสจนตวตนของตนเอง กตองมการปรบแตงกาหนดคาการพสจนตวตนมาใช Kerberos ทตวของ web server เอง ตวอยางเชน apache web server ตองตดตง mod_kerberos เพอใหสามารถพสจนตวตนดวย Kerberos ได ในสวนของเครองของผใช web browser จะตองสนบสนนการพสจนตวตนดวย Kerberos ซงตองทาการปรบแตงกาหนดคา Kerberos REALM เปน REALM ของ Active Directory

3.2.2 Web Single Sign-On สาหรบ web application

ระบบสารสนเทศทเปนลกษณะของ web application ซงผใชตองใช web browser ในการเขาใชงาน web browser ของผใชงานจะตองสนบสนนการพสจนตวตนดวย Kerberos และตองทาการปรบแตงกาหนดคา Kerberos REALM เปน REALM ของ Active Directory ดวยซงการปรบแตงกาหนดคาเครองคอมพวเตอรในลกษณะนจะไมสามารถทางานไดเมอมการใชงานผานเครอขายทม firewall ปดการใชงาน port 88 ของ Kerberos นนทาใหการใชงาน web application ทใชการพสจนตวตนแบบน จะไมสามารถทาได การแกปญหาโดยการกาหนดให firewall ของทกเครอขายเปดการใชงาน port 88 ของ Kerberos กเปนไปไดยาก ทาใหการใชงานระบบสารสนเทศในลกษณะ web application จะถกจากดการใชงานอยเฉพาะในเครอขายภายใน หรอ เฉพาะเครอขายทอนญาตให port 88 ของ Kerberos ผานเขาออกได ซงสาหรบระบบสารสนเทศในลกษณะ web application ทกาหนดใหใชงานเฉพาะเครอขายภายในกจะไมมปญหาแตอยางใด แตสาหรบระบบสารสนเทศในลกษณะ web application ทตองการใหสามารถเขาใชงานไดจากเครองคอมพวเตอรใดๆ กไดทตอ Internet จาเปนตองพฒนาระบบพสจนตวตน SSOสาหรบ web application ซงสามารถใชงานไดจาก web browser ทใชงานอยท วไป โดยทผใชไมจาเปนตองตดตง

Page 36: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

26

ระบบ Web SSO สาหรบ web application จะออกแบบพฒนาในรปแบบของ class library ซงจะมกลไกการทางานอยภายในและสามารถปรบแตงกาหนดคาได เพอใหสะดวกสาหรบผพฒนา web application ในการนาไปใชในการพฒนาระบบของตนใหมความสามารถในการทา SSO ทาใหผใชสามารถเขาใชงานระบบสารสนเทศในรปแบบ web application ตางๆ ทใช Web SSO library นไดโดยผใชเพยงแคทาการพสจนตวตนเพยงแคครงเดยว

ในการสงผานขอมลพสจนตวตนผใชระหวางเครองผใชกบระบบสารสนเทศทใหบรการ จะใชเทคนค Public Key Cryptography ในการเขารหสและถอดรหส (encrypt/decrypt) และสรางลายเซนดจตอล (digital signature) ในการปองกนและตรวจสอบความถกตองของขอมลพสจนตวตน ระบบสารสนเทศในรปแบบ web application ทใช Web SSO library นทกระบบจะตองม public key และ private key เปนของตนเอง ซงสามารถทาการสรางและรองขอ certificate โดยใชเครองมอ Certificate Management Tools ทอยใน Web SSO library

ในสวนของกลไกการทางานในการจดเกบขอมลยนยนตวตนผใช (ticket) ทไดรบมาจากระบบทใหบรการในการพสจนยนยนตวตนผใชและสรางขอมลยนยนตวตนผใช ซงในงานวจยนจะเรยกวา Authentication Site (AS) และสงผานไปใหบรการหรอระบบสารสนเทศตางๆทมสวนรวมซงจะเรยกวา Participating Site (PS) จะจดเกบไวใน cookie cache ของ web browser ของผใช ซงจะใชเทคนค Public Key Cryptography ในการเขารหสและถอดรหส (encrypt/decrypt) และสรางลายเซนดจตอล (digital signature) ในการปองกนและตรวจสอบความถกตองของขอมลยนยนตวตน มเพยง PS ทเปนเจาของ ticket นนเทานนทสามารถอานขอมลได

การทางานของ Web SSO จะเกดขนเมอผใชตองการเขาใชงาน PS โดยมขนตอนการทางานดงภาพประกอบ 3-1 ซงมขนตอนการทางานหลกๆดงน

1. ผใชใชโปรแกรม web browser รองขอขอมล webpage จาก PS ซงไดมการใชงาน Web SSO library

2. Authentication module ทอยใน Web SSO library ทาการตรวจสอบขอมลยนยนตวตนผใช (ticket) สาหรบ PS ใน cookie cache ของผใช ถาม ticket และตรวจสอบแลวแลว ticket นนถกตอง กจะขามไปขนตอนท 6. แตถาไมพบ ticket

Page 37: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

27

ภาพประกอบ 3-1 ขนตอนการทางานของ Web SSO

3. web browser ทาการรองขอการพสจนตวตนไปยง AS ซงถาทาสาเรจ AS กจะสราง ticket ขนมาใหมและเกบไวใน cookie cache ของ web browser ซง cookie จะถกเขารหสโดยเทคนค Public Key Cryptography และมเพยง AS เทานนทสามารถถอดรหสได

4. AS จะสราง ticket สาหรบ PS เกบไวใน cookie cache ของ web browser ซง cookie จะถกเขารหสโดยเทคนค Public Key Cryptography และมเพยง PS เทานนทสามารถถอดรหสได และสงคาสง redirect ไปยง PS กลบไปท web browser

5. web browser สงตอขอมลทไดตอไปยง PS 6. Authentication module ทอยใน Web SSO library ทาการตรวจสอบขอมลยนยน

ตวตนผใช (ticket) สาหรบ PS ใน cookie cache ของผใช ถาม ticket และตรวจสอบแลวแลว ticket นนถกตอง กจะสงขอมลผใชไปให web application ทาการตรวจสอบสทธการใชงานตอไป ซงถามสทธใชงานกจะสง webpage ทไดรองขอกลบไปส web browser

Page 38: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

28

3.3 การออกแบบระบบ (System Design) การออกแบบการพฒนาปรบเปลยนระบบสารสนเทศหรอบรการททางานบน

Windows และ Linux platform มาใชการพสจนตวตนผใชทมความสามารถในการทา SSO และบรหารจดการบญชผใชทจดเดยวซงไดทาการวเคราะหจากหวขอทผาน จะประกอบไปดวย 2 สวน คอ

1. การออกแบบระบบ SSO สาหรบ Windows และ Linux platform 2. การออกแบบระบบ Web SSO สาหรบ web application

3.3.1 การออกแบบระบบ SSO สาหรบ Windows และ Linux platform

การปรบแตงระบบหรอบรการททางานอยบน Windows หรอ Linux platform ใหใชงานโปรโตคอล LDAP ในการรองขอขอมลและใชงานโปรโตคอล Kerberos ในการพสจนตวตนผใชโดยใช Active Directory เปนผใหบรการเพอทาใหการบรหารจดการและจดเกบบญชผใชกระทาทจดศนยกลางเพยงทเดยวและระบบมความสามารถในการทา SSO ซงการปรบแตงจะทาการปรบแตงกาหนดคาทตวระบบปฏบตการกอน ทาใหระบบหรอบรการทใชการพสจนตวตนผานระบบปฏบตการโดยตรงจะสามารถใชงานทนท สาหรบระบบหรอบรการทใชฟงกชนการพสจนตวตนของตนเอง จะตองปรบแตงทตวระบบสารสนเทศนนๆ โดยตรง

ระบบหรอบรการททางานอยบน Windows platform ไมวาจะเปนเครอง Windows server ทใหบรการ หรอเครอง Windows client ของผใชบรการ จะทาการสมครเปนสมาชก (join) กบ Active Directory

ระบบหรอบรการททางานอยบน Linux platform จะทาการปรบแตงกาหนดคาในสวนของตวระบบปฏบตการและตวของบรการเองใหใชขอมลผใชจาก Active Directory ผานโปรโตคอล LDAP และพสจนตวตนผใชโดย Kerberos REALM ของ Active Directory ซงการปรบแตงกาหนดคาประกอบไปดวย

• ปรบแตงกาหนดคา Kerberos client ใหรจกและใชงาน REALM ของ Active Directory

• ปรบแตงกาหนดคา Name Service Switch ใหใชขอมลผใชจาก Active Directory ผานโปรโตคอล LDAP แทนทจะใชขอมลจากเครองตนเองเพยงอยางเดยว

Page 39: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

29

• ปรบแตงกาหนดคา LDAP client เพอใชในการดงขอมลจากบรการ LDAP ของ Active Directory และเปดใชงาน RFC 2307 (AD) mappings

• ปรบแตงกาหนดคา sshd server ใหใชขอมลผใชจาก Active Directory ผานโปรโตคอล LDAP และสนบสนนการพสจนตวตน Kerberos

• ปรบแตงกาหนดคา Samba server (บรการ file sharing) ใหใชขอมลผใชจาก Active Directory ผานโปรโตคอล LDAP และสนบสนนการพสจนตวตน Kerberos

• ปรบแตงกาหนดคา Httpd server ใหสนบสนนการพสจนตวตน Kerberos

• ปรบแตงกาหนดคา Mozilla Firefox web browser ใหสนบสนนการพสจนตวตน Kerberos โดยการกาหนดคา network.negotiate-auth.trusted-uris ใหคาเปน REALM ของ Active Directory

3.3.2 การออกแบบระบบ Web SSO สาหรบ Web application

Web SSO สาหรบ web application ไดรบการออกแบบในลกษณะทเปน class library ซงจะมกลไกการทางานอยภายในและสามารถปรบแตงกาหนดคาได เพอใหสะดวกสาหรบผพฒนา web application ในการนาไปใชในการพฒนาระบบของตนใหมความสามารถในการทา SSO โดยตว class library จะใหฟงกชนและเครองมอทจาเปนในพฒนา ซงผพฒนามความอสระในการออกแบบ หนาตาของ User Interface ของระบบของตนเองเนองกลไกการทางานจะเกดขนเบองหลง แนวคดในการออกแบบจะทาในรปแบบของ Object-Oriented Programming (OOP) ซงในงานวจยชนไดทาการออกแบบพฒนาโดยใช .net framework 2.0 และ web application ใช ASP.net 2.0 โดยระบบ Web SSO จะม Object ตางๆดงภาพประกอบ 3-2

ระบบ Web SSO สาหรบ web application จะประกอบไปดวย Object ทใชในการทา SSO จานวน 5 Object ดงน

1. PassportPrincipal คอ class ททาหนาทเกบ PassportIdentity object และมฟงกชนในการตรวจสอบบทบาทของ PassportIdentity

2. PassportIdentity คอ class ท inherit มาจาก GenericIdentity ทาหนาทเกบขอมล AuthenticationTicket object และเปนตวระบขอมลตวตนของผใชทผานการตรวจสอบตวตนเรยบรอยแลว โดยม Property ทสาคญคอ

Page 40: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

30

• Ticket ซงเปน property ททาหนาทเกบ AuthenticationTicket และม Method ทสาคญดงน

• GetAllSignOutURL() เปน method ททาหนาทในการดงขอมล Sign-Out URL ของ PS ทงหมดทผใชไดเขาใชงาน

• SignOut() ทาหนาทในการ Sign-Out ออกจาก PS นนๆ (ลบ cookies สาหรบ PS ใน cookie cache ของ web browser)

ภาพประกอบ 3-2 Class diagram ทแสดง Object ตางๆของระบบ Web SSO

3. PassportAuthModule คอ class ททาหนาทเรยกใช AuthenticationManager ททาหนาทในการเขารหส AuthenticationTicket ถอดรหส AuthenticationTicket ซงอยใน cookie สาหรบ PS โดยใชเทคนค Public Key Cryptography และตรวจสอบความถกตองของ AuthenticationTicket ซงไดรบผานมาทาง query string หรอ

Page 41: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

31

• app_AuthenticationRequest() ทาหนาทในการเขารหส ถอดรหสรวมทงทาการตรวจสอบ AuthenticationTicket และสราง PassportIdentity

• app_AuthorizeRequest() ทาหนาทตรวจสอบวาผใชไดรบการพสจนตวตนหรอไม ถาไมจะทาการสงคาสง redirect ใหผใชไปทาการพสจนตวตนกบ AS กอน

4. AuthenticationManager คอ class ททาหนาทในการสราง เขารหส ถอดรหส

AuthenticationTicket โดยใชเทคนค Public Key Cryptography ซงถกเรยกใชงานจาก PassportAuthModule รวมทงทาหนาทในการสรางและลบ cookies ทใชเกบ AuthenticationTicket โดยม Property ทสาคญคอ

• AuthCookieName คอ ชอ cookies ทเกบขอมล AuthenticationTicket

• AuthQueryStringName คอ ชอของตวแปรใน query string ทเกบขอมล AuthenticationTicket id ทสงมาจาก AS

• RenewQueryStringName คอ ชอของตวแปรใน query string ทเกบขอมล AuthenticationTicket id เพอสงกลบไปรองขอตออาย ticket (renew ticket)

• ReturnQueryStringName คอ ชอของตวแปรใน query string ทเกบขอมล URL ทสงกลบไปพรอมกบคาสง redirect เพอใหผใชกลบไปยง PS หลงจากทาการพสจนตวตนกบ AS เรยบรอย

• SignInUrl คอ URL ของ AS ทใชในการพสจนตวตนผใข

• SignOutUrl คอ URL ททาหนาท Sign-Out ของ PS

• SignOutUrlQueryStringName คอ ชอของตวแปรใน query string ทเกบขอมล Sign-Out URL ของ PS

และม Method ทสาคญดงน

• RedirectFromSignInPage ทาหนาท สง AuthenticationTicket กลบไปให PS

• RemoveAuthenCookie ทาหนาทลบ cookies

Page 42: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

32

• RenewTicketIfOld ทาหนาทในการตรวจสอบวาถงเวลาในการสราง AuthenticationTicket ใหมหรอยง

• SetAuthCookie ทาหนาทสราง cookies

• SignInPageLoad ทาหนาทสราง และ renew AuthenticationTicket สงกลบไปให PS ซงจะถกเรยกใชใน Sign-In webpage ของ AS

5. AuthneticationTicket คอ class ทเกบขอมลเกยวกบผใชรวมทงระยะเวลา

หมดอาย ม Property ทสาคญคอ

• CookiePersistent คอคาทบอกวาจะสราง cookie แบบถาวรหรอแบบชวคราวแยกตาม session ทใชงาน

• Expiration คอวนเวลาหมดอาย

• IssueDate คอวนเวลาทสราง AuthenticationTicket

• Name คอ ชอบญชผใช

• Roles คอ บทบาทของบญชผใช

• SlidingExpiration คอคาทกาหนดวาเมอใกลเวลาหมดอายจะขยายเวลาตอหรอไม

• UserData คอ ขอมลอนๆทตองเกบไวใน AuthenticationTicket และม Method ทสาคญดงน

• IsValid ทาหนาทตรวจสอบวา AuthenticationTicket ถกตองหรอไม การทางานของระบบ Web SSO ซงประกอบไปดวย AS ททาหนาทตรวจสอบ

พสจนตวตนผใช สราง ticket และ PS ทาหนาทตรวจสอบ ticket พรอมทงตรวจสอบสทธการใชงาน จะมการตดตอการแลกเปลยนขอมลซงกนและกน ซงสามารถแบงรปแบบการทางานไดเปน 4 กลมดงน

• รปแบบการเขาใช PS โดยยงไมมการพสจนตวตนกบ AS

• รปแบบการเขาใช PS เมอผใชพสจนตวตนกบ AS แลว

• รปแบบการเขาใช PS เมอมตองการตออาย ticket (Renew ticket)

• รปแบบการทางานเมอผใชออกจากระบบ (Sign-Out)

Page 43: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

33

3.3.2.1 รปแบบการเขาใช PS โดยยงไมมการพสจนตวตนกบ AS การทางานของ Web SSO ในรปแบบนจะเกดขนเมอผใชเขาใชงาน PS ทใชระบบ

พสจนตวตน Web SSO ซงเปนการเขาใชงานระบบเปนครงแรกโดยทผใชยงไมเคยทาการพสจนตวตนผใชกบ AS มขนตอนการทางานดงน

1. ผใชเปด web browser เรยกเขาส PS ทใชงาน Web SSO library ทผใชจาเปนทจะตอง

พสจนตวตนกอนเขาใชงาน

2. Authentication module ทอยใน Web SSO library ทาการตรวจสอบขอมลยนยนตวตนผใช (ticket) สาหรบ PS ใน cookie cache ของผใช ซงในกรณนจะไมม ticket ใน cookie cache Authentication module จะทาการแจงใหผใชทาการพสจนตวตนกบ AS กอน โดยสงคาสง redirect ไปยง AS กลบไปท web browser ซงจะมการสงขอมลทใชในการระบตวตนของ PS ประกอบไปดวย

− site certificate subject name คอ ชอของ certificate สาหรบ PS ทไดทาการลงทะเบยนกบ AS เพอใชในการตรวจสอบ PS

− return URL คอ URL ท AS จะสงไปกบคาสง redirect เมอผใชทาการพสจนตวตนกบ AS เสรจเรยบรอย เพอสงขอมลทไดจากการพสจนตวตนไปยง PS ซง PS จะใชในการตรวจสอบและระบตวตนผใช )

− Sign-Out URL คอ URL ทใชในการ Sign-Out ออกจาก PS (เมอผใชทาการ Sign-Out ท AS ASจะทาเรยกไปยง Sign-Out URL เพอ Sign-Out ออกจาก PS โดยอตโนมต)

3. web browser ทาการรองขอการพสจนตวตนไปยง AS ซงถาทาสาเรจ AS กจะสราง ticket ขนมาใหมและเกบไวใน cookie cache ของ web browser ซง cookie จะถกเขารหสโดยเทคนค Public Key Cryptography และมเพยง AS เทานนทสามารถถอดรหสได ซงมขนตอนการทางานดงน

− AS ทาการดงขอมลผใช ขอมลกลม และขอมลพเศษอนๆ ทผพฒนา AS เปนผ กาหนด มาจากระบบบรหารจดการบญชผใช (ในงานวจยนจะใชขอมลบญชผใชจาก Active Directory) นามาสราง AuthenticationTicket สาหรบ AS

Page 44: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

34

− สราง session key ใหมหนง key เพอใชในการเขารหส AuthenticationTicket ของ AS ทจะเกบไวใน cookie ทใชสาหรบ AS

− เขารหส AuthenticationTicket ดวย session key ทสรางขนใหม โดยใช Triple Data Encryption Standard (3DES) algorithm

− สราง signature ให AuthenticationTicket โดยใช private key AS

− เขารหส session key โดยใช public key ของ AS

− เกบผลทไดไวใน cookies (AS cookie) สงกลบไปเกบไวใน cookie cache ของ web browser

4. AS จะสราง ticket สาหรบ PS เกบไวใน cookie cache ของ web browser มเพยง PS เทานนทสามารถถอดรหสได และสงคาสง redirect ไปยง PS กลบไปท web browser ซงมขนตอนการทางานดงน

− AS ทาการดงขอมลผใช ขอมลกลม และขอมลอนๆจาก AuthenticationTicket สาหรบ AS นามาสราง AuthenticationTicket สาหรบ PS

− AS สราง session key ขนมา 2 key โดย key ตวหนงจะใชในการเขารหส ticket ทจะสงกลบไปยง PS และ session key อกตวจะใชในการเขารหสและถอดรหส ticket เมอมการขอตออาย (renew) ticket เกบไวใน Authentication Ticket

− AS ทาการกาหนดคา Sign-Out URL ของ PS เกบไวใน AuthenticationTicket สาหรบ AS

− เขารหส AuthenticationTicket ดวย session key ทสรางขน โดยใช Triple Data Encryption Standard (3DES) algorithm

− สราง signature ให AuthenticationTicket โดยใช private key ของ AS

− เขารหส session key โดยใช public key ของ PS

− สงผลทไดกลบไปท PS โดยผานทาง query string ของ return URL ทไดรบมา และโดยสงคาสง redirect กลบไปให web browser เพอ redirect ไปยง return URL ของ PS

Page 45: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

35

5. web browser เกบ authentication cookie สาหรบ AS ไวใน cookie cache และสงตอขอมล AuthenticationTicket สาหรบ PS ไปยง PS

6. Authentication module ทอยใน Web SSO library ทาการตรวจสอบขอมลยนยน ticket สาหรบ PS โดยทาการดงขอมล AuthenticationTicket และ session key ทถกเขารหส จาก query string และทาการถอดรหส ดงน

− ถอดรหส session key โดยใช private key ของ PS

− นา session key ทไดไปถอดรหส AuthenticationTicket

− ตรวจสอบความถกตองของขอมล โดยการตรวจสอบ signature โดยใช public key ของ AS

− ตรวจสอบเวลาหมดอายของ AuthenticationTicket

− สราง PassportIdentity และ PassportPrincipal กาหนดใหกบ Context.user

− สราง session key ใหมเพอใชในการเขารหส AuthenticationTicket ทจะเกบใน cookie สาหรบ PS

− เขารหส AuthenticationTicket ดวย session key ทสรางใหม โดยใช Triple Data Encryption Standard (3DES) algorithm

− สราง signature ให AuthenticationTicket โดยใช private key ของ PS

− เขารหส session key โดยใช public key ของ PS

− เกบผลทไดไวใน cookies (PS cookie) สงกลบไปเกบไวใน cookie cache ของ web browse

− Authentication module กจะสงขอมลผใชไปให web application บน PS ทาการตรวจสอบสทธการใชงานตอไป ซงถามสทธใชงานกจะสง webpage ทไดรองขอกลบไปส web browser

หลงจากน เมอผใชรองขอขอมล webpage อนๆใน PS เดยวกนน Authentication

module จะทาการถอดรหส AuthenticationTicket จาก cookie สาหรบ PS ทสงมา และสราง PassportIdentity และ PassportPrincipal กาหนดใหกบ Context.user ซงทาให web application บน PS สามรถระบตวตนผใชไดและสามารถนาไปใชในกลไกการควบคมสทธการใชงาน

Page 46: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

36

3.3.2.2 รปแบบการเขาใช PS เมอผใชไดพสจนตวตนกบ AS แลว การทางานของ Web SSO ในรปแบบนจะเกดขนเมอผใชเขาใชงาน PS ทใชระบบ

พสจนตวตน Web SSO โดยทผใชไดทาการพสจนตวตนผใชกบ AS เรยบรอยแลว ซงมขนตอนการทางานดงน

1. ผใชเปด web browser เรยกเขาส PS ทใชงาน Web SSO ทผใชจาเปนทจะตองพสจน

ตวตนกอนเขาใชงาน

2. Authentication module ทอยใน Web SSO library ทาการตรวจสอบขอมลยนยนตวตนผใช (ticket) สาหรบ PS ใน cookie cache ของผใช ซงในกรณนจะไมม ticket ใน cookie cache Authentication module จะทาการแจงใหผใชทาการพสจนตวตนกบ AS กอน โดยสงคาสง redirect ไปยง AS กลบไปท web browser ซงจะมการสงขอมลทใชในการระบตวตนของ PS ประกอบไปดวย

− site certificate subject name คอ ชอของ certificate สาหรบ PS ทไดทาการลงทะเบยนกบ AS เพอใชในการตรวจสอบ PS

− return URL คอ URL ท AS จะสงไปกบคาสง redirect เมอผใชทาการพสจนตวตนกบ AS เสรจเรยบรอย เพอสงขอมลทไดจากการพสจนตวตนไปยง PS ซง PS จะใชในการตรวจสอบและระบตวตนผใช )

− Sign-Out URL คอ URL ทใชในการ Sign-Out ออกจาก PS (เมอผใชทาการ Sign-Out ท AS ASจะทาเรยกไปยง Sign-Out URL เพอ Sign-Out ออกจาก PS โดยอตโนมต)

3. web browser ทาการรองขอไปยง AS พรอมทงสง AuthenticationTicket สาหรบ AS ทเกบอยใน cookie cache ของ web browser โดยท Authentication module ทอยใน Web SSO library ของ AS ทาการตรวจสอบขอมลยนยน ticket สาหรบ AS ดงน

− ถอดรหส session key โดยใช private key ของ AS

− นา session key ทไดไปถอดรหส AuthenticationTicket

− ตรวจสอบความถกตองของขอมล โดยการตรวจสอบ signature โดยใช public key ของ AS

Page 47: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

37

− ตรวจสอบเวลาหมดอายของ AuthenticationTicket

− สราง PassportIdentity และ PassportPrincipal กาหนดใหกบ Context.user

4. AS จะสราง ticket สาหรบ PS เกบไวใน cookie cache ของ web browser มเพยง PS เทานนทสามารถถอดรหสได และสงคาสง redirect ไปยง PS กลบไปท web browser ซงมขนตอนการทางานดงน

− AS ทาการดงขอมลผใช ขอมลกลม และขอมลอนๆจาก AuthenticationTicket สาหรบ AS นามาสราง AuthenticationTicket สาหรบ PS

− AS สราง session key ขนมา 2 key โดย key ตวหนงจะใชในการเขารหส ticket ทจะสงกลบไปยง PS และ session key อกตวจะใชในการเขารหสและถอดรหส ticket เมอมการขอตออาย (renew) ticket เกบไวใน Authentication Ticket

− เขารหส AuthenticationTicket สาหรบ PS ดวย session key ทสรางขน โดยใช Triple Data Encryption Standard (3DES) algorithm

− สราง signature ให AuthenticationTicket โดยใช private key ของ AS

− เขารหส session key โดยใช public key ของ PS

− สงผลทไดกลบไปท PS โดยผานทาง query string ของ return URL ทไดรบมา และโดยสงคาสง redirect กลบไปให web browser เพอ redirect ไปยง return URL ของ PS

− สราง session key ใหมหนง key เพอใชในการเขารหส AuthenticationTicket สาหรบ AS ทจะเกบไวใน cookie ทใชสาหรบ AS

− AS ทาการกาหนดคา Sign-Out URL ของ PS เกบไวใน AuthenticationTicket สาหรบ AS

− เขารหส AuthenticationTicket สาหรบ AS ดวย session key ทสรางขนใหม โดยใช Triple Data Encryption Standard (3DES) algorithm

− สราง signature ให AuthenticationTicket โดยใช private key AS

− เขารหส session key โดยใช public key ของ AS เกบผลทไดไวใน cookies (AS cookie) สงกลบไปเกบไวใน cookie cache ของ web browser

Page 48: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

38

5. web browser เกบ autentication cookie สาหรบ AS ไวใน cookie cache และสงตอขอมล AuthenticationTicket สาหรบ PS ไปยง PS

6. Authentication module ทอยใน Web SSO library ทาการตรวจสอบขอมลยนยน ticket สาหรบ PS โดยทาการดงขอมล AuthenticationTicket และ session key ทถกเขารหส จาก query string และทาการถอดรหส ดงน

− ถอดรหส session key โดยใช private key ของ PS

− นา session key ทไดไปถอดรหส AuthenticationTicket

− ตรวจสอบความถกตองของขอมล โดยการตรวจสอบ signature โดยใช public key ของ AS

− ตรวจสอบเวลาหมดอายของ AuthenticationTicket

− สราง PassportIdentity และ PassportPrincipal กาหนดใหกบ Context.user

− สราง session key ใหมเพอใชในการเขารหส AuthenticationTicket ทจะเกบใน cookie สาหรบ PS

− เขารหส AuthenticationTicket ดวย session key ทสรางใหม โดยใช Triple Data Encryption Standard (3DES) algorithm

− สราง signature ให AuthenticationTicket โดยใช private key ของ PS

− เขารหส session key โดยใช public key ของ PS

− เกบผลทไดไวใน cookies (PS cookie) สงกลบไปเกบไวใน cookie cache ของ web browse

− Authentication module กจะสงขอมลผใชไปให web application บน PS ทาการตรวจสอบสทธการใชงานตอไป ซงถามสทธใชงานกจะสง webpage ทไดรองขอกลบไปส web browser

หลงจากน เมอผใชรองขอขอมล webpage อนๆใน PS เดยวกนน Authentication

module จะทาการถอดรหส AuthenticationTicket จาก cookie สาหรบ PS ทสงมา และสราง PassportIdentity และ PassportPrincipal กาหนดใหกบ Context.user ซงทาให web application บน PS สามรถระบตวตนผใชไดและสามารถนาไปใชในกลไกการควบคมสทธการใชงาน

Page 49: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

39

3.3.2.3 รปแบบการเขาใชงาน PS เมอมการตออาย AuthenticationTicket การทางานของ Web SSO ในรปแบบนจะเกดขนเมอผใชเขาใชงาน PS ทใชระบบ

พสจนตวตน Web SSO โดยทผใชทาการพสจนตวตนผใชกบ AS เรยบรอยแลว และ PS ตรวจสอบ AuthenticationTicket ทสงมาพบวาใกลจะหมดอาย หรอถงเวลาทกาหนดไวสาหรบตออาย AuthenticationTicket ( renew AuthenticationTicket ) ซงมขนตอนการทางานดงน

1. เมอผใชเปด web browser เรยกเขาส PS ทใช Web SSO ในการพสจนตวตนผใช พรอม

ทงสง AuthenticationTicket สาหรบ PS ทเกบอยใน cookie cache ของ web browser ไปให PS

2. Authentication module ทอยใน Web SSO library ของ PS ทาการตรวจสอบขอมลยนยน ticket สาหรบ PS ดงน

− ถอดรหส session key โดยใช private key ของ AS

− นา session key ทไดไปถอดรหส AuthenticationTicket

− ตรวจสอบความถกตองของขอมล โดยการตรวจสอบ signature โดยใช public key ของ PS

− ตรวจสอบเวลาหมดอายของ AuthenticationTicket เมอพบวา AuthenticationTicket ใกลจะหมดอาย หรอถงระยะเวลาทกาหนด

สาหรบตออาย ( renew AuthenticationTicket ) Authentication module จะทาการแจงใหผใชไปรองขอตออาย AuthenticationTicket กบ AS โดยสงคาสง redirect ไปยง AS กลบไปท web browser ซงจะมการสงขอมลทใชในการระบตวตนของ PS ประกอบไปดวย

− site certificate subject name คอ ชอของ certificate สาหรบ PS ทไดทาการลงทะเบยนกบ AS เพอใชในการตรวจสอบ PS

− return URL คอ URL ท AS จะสงไปกบคาสง redirect เมอผใชทาการพสจนตวตนกบ AS เสรจเรยบรอย เพอสงขอมลทไดจากการพสจนตวตนไปยง PS ซง PS จะใชในการตรวจสอบและระบตวตนผใช )

Page 50: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

40

− Sign-Out URL คอ URL ทใชในการ Sign-Out ออกจาก PS (เมอผใชทาการ Sign-Out ท AS ASจะทาเรยกไปยง Sign-Out URL เพอ Sign-Out ออกจาก PS โดยอตโนมต)

3. web browser ทาการรองขอไปยง AS พรอมทงสง AuthenticationTicket สาหรบ AS ทเกบอยใน cookie cache ของ web browser โดยท Authentication module ทอยใน Web SSO library ของ AS ทาการตรวจสอบขอมลยนยน ticket สาหรบ AS ดงน

− ถอดรหส session key โดยใช private key ของ AS

− นา session key ทไดไปถอดรหส AuthenticationTicket

− ตรวจสอบความถกตองของขอมล โดยการตรวจสอบ signature โดยใช public key ของ AS

− ตรวจสอบเวลาหมดอายของ AuthenticationTicket

− สราง PassportIdentity และ PassportPrincipal กาหนดใหกบ Context.user

4. AS ทาการตออาย AuthenticationTicket สาหรบ PS และสงคาสง redirect ไปยง PS กลบไปท web browser ซงมขนตอนการทางานดงน

− AS ดงขอมล AuthenticationTicket จาก Context.user

− AS สราง session key ใหมเพอใชในการเขารหสการตออายครงตอไป เกบไวใน AuthenticationTicket

− AS นาขอมล session key เกาทเกบอยใน AuthenticationTicket นามาใชในการเขารหส AuthenticationTicket อนใหมทจะสงกลบไป PS โดยใช Triple Data Encryption Standard (3DES) algorithm

− สราง signature ให AuthenticationTicket โดยใช private key ของ AS

− สงผลทไดกลบไปท PS โดยผานทาง query string ของ return URL ทไดรบมา และโดยสงคาสง redirect กลบไปให web browser เพอ redirect ไปยง return URL ของ PS

5. web browser เกบ autentication cookie สาหรบ AS ไวใน cookie cache และสงตอ

ขอมล AuthenticationTicket สาหรบ PS ไปยง PS

Page 51: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

41

6. Authentication module ทอยใน Web SSO library ของ PS ทาการตรวจสอบขอมลยนยน ticket สาหรบ PS โดยทาการดงขอมล AuthenticationTicket และ session key ทถกเขารหส จาก query string และทาการถอดรหส ดงน

− ดงขอมล session key จาก AuthenticationTicket ทอยใน cookies สาหรบ PS (AuthenticationTicket ทกาลงขะหมดอาย)

− นา session key ทไดไปถอดรหส authentication ticket ใหมทไดจาก query string

− ตรวจสอบความถกตองของขอมล โดยการตรวจสอบ signature โดยใช public key ของ AS

− ตรวจสอบเวลาหมดอายของ AuthenticationTicket

− สราง PassportIdentity และ PassportPrincipal กาหนดใหกบ Context.user

− สราง session key ใหมเพอใชในการเขารหส AuthenticationTicket ทจะเกบใน cookie สาหรบ PS

− เขารหส AuthenticationTicket ดวย session key ทสรางใหม โดยใช Triple Data Encryption Standard (3DES) algorithm

− สราง signature ให AuthenticationTicket โดยใช private key ของ PS

− เขารหส session key โดยใช public key ของ PS

− เกบผลทไดไวใน cookies (PS cookie) สงกลบไปเกบไวใน cookie cache ของ web browse

− Authentication module กจะสงขอมลผใชไปให web application บน PS ทาการตรวจสอบสทธการใชงานตอไป ซงถามสทธใชงานกจะสง webpage ทไดรองขอกลบไปส web browse

หลงจากน เมอผใชรองขอขอมล webpage อนๆ PS เดยวกนน Authentication module จะทาการถอดรหส AuthenticationTicket จาก cookie สาหรบ PS ทสงมา และสราง PassportIdentity และ PassportPrincipal กาหนดใหกบ Context.user ซงทาให web application บน PS สามรถระบตวตนผใชไดและสามารถนาไปใชในกลไกการควบคมสทธการใชงาน

Page 52: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

42

3.3.2.4 รปแบบการทางานเมอผใชออกจากระบบ (Sign-Out) การทางานของ Web SSO ในรปแบบนจะเกดขนเมอผใชเขาใชงาน PSทใชระบบ

พสจนตวตน Web SSO โดยทผใชไดทาการพสจนตวตนกบ AS เรยบรอยแลว และผใชตองการทจะออกจากระบบ (Sign-Out) ซงระบบจะทาการ Sign-Out ออกจาก PS ทกระบบทผใชเคยเขาใชงานโดยอตโนมต มขนตอนการทางานดงน

1. เมอผใชเลอก Sign-Out จาก PS ซงผใชจะถก redirect ไปท Sign-Out page ของ AS

2. web browser ทาการรองขอไปยง AS พรอมทงสง AuthenticationTicket สาหรบ AS ท

เกบอยใน cookie cache ของ web browser โดยท Authentication module ทอยใน Web SSO library ของ AS ทาการตรวจสอบขอมลยนยน ticket สาหรบ AS ดงน

− ถอดรหส session key โดยใช private key ของ AS

− นา session key ทไดไปถอดรหส AuthenticationTicket

− ตรวจสอบความถกตองของขอมล โดยการตรวจสอบ signature โดยใช public key ของ AS

− ตรวจสอบความถกตองของ AuthenticationTicket

− สราง PassportIdentity และ PassportPrincipal กาหนดใหกบ Context.user

3. เมอผใชกด Sign-Out ระบบจะทาการ Sign-Out ออกจาก AS และ PS ตางๆ ดงน

− AuthenticationManager จะทาการลบ cookies ของ AS

− AuthenticationManager ทาการดงขอมลของ Sign-Out URL ของ PS ทงหมด ทผใชเคยเขาใชงานจาก AuthenticationTicket สาหรบ AS ทเกบอยท Context.user

− AuthenticationManager จะทาการลบ cookies ทงหมดของ PS ทงหมดทผใชเคยเขาใชงานโดยการสงคาสงไปเรยกคาสงลบ cookies (cookies-delete script) ของ PS ตาม Sign-Out URL ทได

− แสดงผลการ Sign-Out ของ PS ทงหมดทผใชเคยเขาใชงาน (โดยแสดงผลรปภาพตามท cookies-delete script ของแตละ PS สงกลบมา)

Page 53: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

43

3.4 การพฒนาระบบ (Development) การพฒนาปรบเปลยนระบบหรอบรการททางานบน Windows และ Linux

platform มาใชการพสจนตวตนผใชทมความสามารถในการทา SSO และบรหารจดการบญชผใชทจดเดยวซงไดทาการออกแบบจากหวขอทผาน จะประกอบไปดวย 2 สวนคอ

1. การปรบแตงระบบหรอบรการททางานอยบน Windows หรอ Linux platform ใหใชงานโปรโตคอล LDAP ในการรองขอขอมลและใชงานโปรโตคอล Kerberos ในการพสจนตวตนผใชโดยใช Active Directory เปนผใหบรการ

2. การพฒนา Web SSO สาหรบ web application ในลกษณะทเปน class library เพอใหสะดวกสาหรบผพฒนา web application ในการนาไปใชในการพฒนาระบบของตนใหมความสามารถในการทา SSO การตดตงและเตรยมขอมลสาหรบ Active Directory ทใชในการพฒนา จะกระทา

โดยตดตงระบบปฏบตการ Windows Server 2003 R2 พรอมทง Active Directory จานวน 1 เครองและนาขอมลบญชผใชและขอมลโครงสรางอนๆบางสวนใน Active Directory ของระบบจดการบญชผใชของมหาวทยาลยสงขลานครนทร (PSU Passport) นาเขาส Active Directory จาลองทสรางขนเพอใชในการวจย โดยไมทาการทสอบกบระบบทใชงานจรง

การตดตงและเตรยมขอมลระบบสารสนเทศทอยบน Windows platform ในการวจยน ใชเครองคอมพวเตอรแบบจาลอง (virtual server) บน VMware จานวน 2 เครอง โดยจะตดตงระบบปฏบตการ Windows Server 2003 จานวน 1 เครอง และ Windows XP จานวน 1 เครอง

การตดตงและเตรยมขอมลระบบสารสนเทศทอยบน Linux platform ในการวจยนใชเครองคอมพวเตอรแบบจาลอง (virtual server) บน VMware จานวน 3 เครอง โดยจะตดตงระบบปฏบตการ RedHat Enterprise Linux 4 จานวน 1 เครอง, Fedora Core 4 จานวน 1 เครอง และ Fedora Core 7 จานวน 1 เครอง

การพฒนา Web SSO สาหรบ web application ผวจยใช โปรแกรม Visual Studio 2005 เปนเครองมอชวยในการพฒนา เขยนโปรแกรม และทา Class diagram ซง Web SSO ไดรบการออกแบบในลกษณะของ class library ดงทไดกลาวไปแลวในหวขอการออกแบบ ดงนนในการสราง project ใหมใน Visual Studio 2005 จะเลอกชนดของ project เปน class library ซงเมอทาการ compile project แลวจะไดผลลพธออกมาในรปแบบ ของ DLL file โดย NameSpace ทใชใน project คอ PSU.Security และ Object แตละตวทไดกลาวไปแลวในหวขอการออกแบบนามา

Page 54: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

44

3.5 การทดสอบ (Testing)

ในขนตอนการทดสอบ ผวจยไดทาการแบงการทดสอบออกเปนสองสวนคอ

1. ทดสอบการทางานของการพสจนตวตนบน Windows platform และ Linux เมอมการกาหนดคาใหใชงานระบบพสจนตวตน Kerberos ทมความสามารถในการทา SSO และทดสอบการทารวมกนของทงสอง platform

2. ทดสอบการทางาน Web SSO สาหรบระบบสารสนเทศทเปน web application และทดสอบการนา Web SSO library ไปใชในการพฒนาระบบสารสนเทศใหสามารถทา SSO การทาการทดสอบการพสจนตวตน SSO ของระบบสารสนเทศทอยบน Windows

และ Linux platform หลงจากไดปรบแตงกาหนดคาตางๆ โดยใหผใชทาการพสจนตวตนกบระบบปฏบตการ แลวดาเนนการทดสอบความสามารถการพสจนตวตน SSO โดยเขาใชงานระบบหรอบรการตางๆ บนเครองตนเอง จากนนทดสอบความสามารถในการทา SSO ขามเครองโดยเขาใชงานระบบหรอบรการท server เครองอนๆ ซงเรมดวยการทดสอบกบระบบททางานบน platform เดยวกนกอน หลงจากนนทดสอบการทางานขาม platform

ในสวนระบบ Web SSO สาหรบ web application จะทาการทดสอบโดยการพฒนา web application จาลองขนมา 3 ระบบ เพอทดสอบขนตอนการนา Web SSO Library มาใชใน web application และทดสอบการทางานของระบบ Web SSO ซง web application ทใชในการวจยนประกอบไปดวย

• Passport SSO Service คอ web application ททาหนาทเปน AS ใหบรการตรวจสอบพสจนตวตนของผใช สราง AuthenticationTicket สาหรบ AS และ web application (PS) ตางๆทใชงาน Web SSO Library รวมทงทาหนาทในการควบคมการ Sign-Out กบ web application ทงหมดทผใชไดเขาใชงาน

• SIS web application คอ web application ทจาลองหนาตาของระบบสารสนเทศนกศกษา ซงจะใชทดสอบการพฒนาโดยใช Web SSO Library และทดสอบการทางานของระบบ Web SSO

Page 55: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

45

• DSS web application คอ web application ทจาลองหนาตาของระบบสารสนเทศบคลากร ซงจะใชทดสอบการพฒนาโดยใช Web SSO Library และทดสอบการทางานของระบบ Web SSO

การนา Web SSO Library มาใชใน web application ผพฒนาเพยงทาการบนทก ไฟล PSU.Security.dll ไปเกบไวในททตองการ แลวทาการ reference มาทไฟลนจาก web application project ททาการพฒนา (ผวจยใช Visual Studio 2005 ในการพฒนา)

3.6 สรป

ในบทนไดกลาวถงการวเคราะห การออกแบบ และการพฒนา เพอพฒนาใหระบบ

สารสนเทศททางานบน Windows และ Linux platform ใชการพสจนตวตนผใชทมความสามารถในการทา SSO ซงผใชงานสามารถพสจนตวตนเพยงครงเดยวสามารถเขาใชงานระบบสารสนเทศบน สอง platform นได โดยเรมตนจากการศกษาวธการทางานของระบบพสจนตวตน SSO ทจะนามาใช วเคราะหออกแบบแนวทางการพฒนากาหนดคาระบบบนสอง platform วเคราะหออกแบบการทางานของระบบ Web SSO โดยมการกาหนด object methods และ properties ของแตละ object และแนวทางในการทางานของระบบ Web SSO ในกรณตางๆ ในตอนทายไดระบเครองมอทใชในการศกษา พฒนา และแนวทางในการทดสอบระบบ ซงบทถดไปจะกลาวถงสภาพแวดลอมทใชในการทดสอบพรอมทงผลของการศกษาทดสอบของการวจยน

Page 56: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

บทท 4 ผลการศกษา

4.1 บทนา

บททผานมาไดกลาวถงการวเคราะห การออกแบบ และการพฒนา เพอทาให

ระบบสารสนเทศบน Windows platform กบ Linux platform ใชงานระบบพสจนตวตนผใชทมความสามารถในการทา Single Sign-On รวมกน ในบทนกลาวถงผลการทดสอบระบบทไดจากการศกษาพฒนา โดยจะแบงออกเปน 2 สวนคอ ผลของการทางานของการพสจนตวตนบน Windows และ Linux platform เมอมการกาหนดคาใหใชงานระบบพสจนตวตน Kerberos ทมความสามารถในการทา SSO รวมกน ในสวนทสองจะกลาวถงผลการทดสอบระบบ Web SSO ซงเปนกลไลการพสจนตวตนทมความสามารถในการทา SSO สาหรบระบบสารสนเทศทเปน web application และในตอนทายของบทนจะนาเสนอแนวทางสาหรบผพฒนาระบบสารสนเทศในรปแบบ web application นาไปใชในการพฒนาระบบของตนใหมความสามารถในการทา SSO

4.2 การทดสอบระบบพสจนตวตน SSO บน Windows และ Linux platform

ในขนตอนการทดสอบการพสจนตวตน SSO บน Windows และ Linux platform

ผวจยไดทาการปรบแตงกาหนดคาระบบปฏบตการทงสอง platform ใหใชงานโปรโตคอล LDAP ในการรองขอขอมลผใชงาน และใชงานโปรโตคอล Kerberos ซงมความสามารถในการทา SSO ในการพสจนตวตนผใช โดยใช Active Directory เปนผใหบรการ LDAP และ Kerberos (ในการทดสอบจะทาการตดตง Active Directory ลงบนเครองใหมทเปนตวทดสอบ โดยจะทาการนาเขาขอมลผใช รวมทงคาการตดตงจากระบบ PSU Passport)

4.2.1 สภาพแวดลอมในการทดสอบปรบแตงกาหนดคาระบบพสจนตวตน

ในการทดสอบการพสจนตวตน SSO บน Windows และ Linux platform ผวจยเลอกใช ระบบ Active Directory ซงทางานโดยใชโปรโตคอล LDAP ในการใหบรการขอมลบญชผใชและใช Kerberos ในการพสจนตวตนผใช เพอใชในการบรหารจดการและจดเกบบญชผใชทจดศนยกลางเพยงทเดยว และใหบรการการพสจนตวตนทมความสามารถในการทา SSO ใหกบระบบ

46

Page 57: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

47

สารสนเทศ Windows platform และ Linux ทไดทาการปรบแตงกาหนดคาใชใชในการพสจนตวตน ซงผ วจยไดเลอกใชสภาพแวดลอมแบบจาลองในการทดสอบ โดยใชโปรแกรม VMware workstation ในการสรางเครองคอมพวเตอรแบบจาลอง และระบบเครอขายแบบจาลอง ซงจะแยกออกจากเครอขายภายนอกโดยสนเชง

ระบบสารสนเทศทอยบน Windows platform จะทาการทดสอบโดยการสรางเครองคอมพวเตอรแบบจาลอง (virtual server) บน VMware workstation จานวน 2 เครอง โดยจะตดตงระบบปฏบตการ Windows Server 2003 จานวน 1 เครอง และ Windows XP จานวน 1 เครอง และนาเครองคอมพวเตอรทง 2 เครอง join เขาส domain ของ Active Directory เพอใชบรการพสจนตวตน Kerberos และใชขอมลบญชผใชจาก Active Directory

ระบบสารสนเทศทอยบน Linux platform จะทาการทดสอบโดยการสรางเครองคอมพวเตอรแบบจาลอง (virtual server) บน VMware workstation จานวน 3 เครอง โดยจะตดตงระบบปฏบตการ RedHat Enterprise Linux 4 จานวน 1 เครอง Fedora Core 4 จานวน 1 เครอง และ Fedora Core 7 จานวน 1 เครอง และทาการปรบแตงกาหนดคาดงน

• ปรบแตงกาหนดคา Kerberos client โดยแกไขไฟล /etc/krb5.conf กาหนดคา default_realm ใหมคาเทากบชอของ domain ของ Active Directory และใชอกษรตวใหญเชน PSU.AC.TH เพอทาใหสามารถใชชอบญชผใชเพยงอยางเดยวโดยไมตองระบชอ realm ในการพสจนตวตนได การกาหนดคา dns_lookup_realm ใหมคาเทากบ true จะทาให Kerberos client คนหา realm จาก dns โดยไมจาเปนตองระบใน krb5.conf และการกาหนดคา dns_lookup_kdc ใหมคาเทากบ true กเชนเดยวกนจะทาให Kerberos client คนหา KDC จาก dns ตวอยางการกาหนดคาดงน

[libdefaults] default_realm = “domain ของ Active Directory” dns_lookup_realm = true dns_lookup_kdc = true

การทดสอบการกาหนดคา Kerberos client ใหใช KDC ของ Active Directoryทาไดโดยใชคาสง

kinit “username”

Page 58: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

48

และใชคาสง klist สาหรบดผลของการพสจนตวตนซงจะได Kerberos ticket กลบมาจาก KDC ของ Active Directory เกบไวใน ticket cache ของผใช จากนนผวจยทาการทดสอบความสามารถในการทา SSO โดยการเขาใชงาน application หรอระบบทสนบสนนการพสจนตวตน Kerberos เชนบรการแชรไฟล โดยใชคาสง

Smbclient //”server_name”/”share_path” -k บรการทสนบสนนการพสจนตวตน Kerberos อกตวอยางหนงคอ บรการLDAP ของ Active Directory เอง ซงทดสอบโดยใชคาสง

LDAPSearch –h “server_name” -b “base_dn” โดยท server_name คอเครองใหบรการLDAP ของ Active Directory

• ปรบแตงกาหนดคา Name Service Switch โดยแกไขไฟล /etc/nsswitch.conf เพอใหระบบดงขอมลบญชผใชจากบรการ LDAP แทนทจะใชจากบญชผใชในเครองตนเองเพยงแหงเดยว ดงน

passwd: files LDAP

• ปรบแตงกาหนดคา LDAP client ของระบบปฏบตการใหดงขอมลบญชผใชจากบรการ LDAP ของ Active Directory โดยแกไขไฟล /etc/ldap.conf ดงน

uri LDAP://”server_name” base “base_dn” REFERRALS no nss_paged_results yes

จากนนกาหนดให LDAP client ของระบบปฏบตการใช RFC 2307 (AD) mappings เพอนาขอมลใน Active Directory มาใชเปนขอมลบญชผใช โดยการลบ “#” ในสวนหวขอ # RFC 2307 (AD) mappings เนองจากใน LDAP client จะดงขอมลจาก field ทชอไมตรงกนกบ Active Directory เชนขอมลชอบญชผใชซง LDAP client จะดงขอมลจาก UID แตใน Active Directory จะเกบขอมลชอบญชผใชใน field ชอ sAMAccountName ในสวนการทดสอบการปรบแตง LDAP.conf ทาไดโดยใชคาสง

id “username” หรอ getent passwd

Page 59: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

49

• ปรบแตงกาหนดคา Httpd server ใหสนบสนนการพสจนตวตน Kerberos โดยแกไขไฟล /etc/httpd/conf.d/auth_kerb.conf ดงน

AuthType Kerberos AuthName "Kerberos Login" KrbMethodNegotiate On KrbMethodK5Passwd Off Krb5KeyTab /etc/krb5.keytab require valid-user

• ปรบแตงกาหนดคา web browser Mozilla Firefox สนบสนนการพสจนตวตนKerberos โดยการกาหนดคา network.negotiate-auth.trusted-uris ใหมคาเทากบชอของ domain ของ Active Directory

ในสวนของ Active Directory ซงเปนผใหบรการ LDAP และ Kerberos จะทาการ

สรางเครองคอมพวเตอรแบบจาลอง (virtual server) บน VMware จานวน 1 เครอง โดยจะตดตงระบบปฏบตการ Windows Server 2003 พรอมทง Active Directory และทาการนาเขาขอมลผใช รวมทงคาการตดตงจากระบบ PSU Passport ของมหาวทยาลยสงขลานครนทร

4.2.2 ผลการทดสอบปรบแตงกาหนดคาระบบพสจนตวตน

จากการศกษา ทดสอบปรบแตงกาหนดคาการพสจนตวตน SSO บน Windows และ Linux platform โดยใชระบบ Active Directory ซงทางานโดยใชโปรโตคอล LDAP ในการใหบรการขอมลบญชผใชและใช Kerberos ในการพสจนตวตนผใช ไดผลการทดสอบการทางานดงน

ระบบสารสนเทศททางานอยบน Windows platform จานวน 2 เครอง ตดตงระบบปฏบตการ Windows Server 2003 และ Windows XP เมอนาเครอง join เขาส domain ของ Active Directory ระบบทงสองสามารถทาการพสจนตวตนกบ Active Directory ไดทนท โดยทาการพสจนตวตนผานหนาจอ Log On to Windows ของระบบปฏบตการดงภาพประกอบ 4-1

Page 60: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

50

ภาพประกอบ 4-1 หนาจอ Log On to Windows ของระบบปฎบตการ Windows XP เมอการพสจนตวตนเสรจสมบรณ ผใชจะได Kerberos TGT (krbtgt/PSU.AC.TH)

เกบไวใน ticket cache ของผใช จากนนระบบจะทาการ load user profile โดยดงขอมลผใชผาน LDAP ของ PSU Passport และอานขอมลนโยบายของ domain (Group policy) ผานบรการแชรไฟลของ Active Directory ซงบรการทงสองสนบสนนการพสจนตวตน SSO โดยใช Kerberos (Active Directory) ดงนนจงสามารถเขาใชงานไดทนท โดยเบองหลงระบบจะทาการรองขอ service ticket เพอสงใหบรการทงสองขางตนโดยอตโนมต ซง service ticket ทไดมาสอง ticket นนประกอบไปดวย LDAP/dc2.psu.ac.th และ cifs/dc2.psu.ac.th หลงจากไดรบขอมลผใชและนโยบายของ domain เรยบรอยแลวนน ระบบจะทาการสราง session บนเครองผใช ซงการสราง session ระบบกจะรองขอ service ticket สาหรบเขาใชงานเครองผใชงานโดยอตโนมตเชนกน service ticket ทไดคอ host/xp-vm5.psu.ac.th

เราสามารถตรวจสอบ Kerberos ticket ทเกบอยใน ticket cache ของผใชคนหนงๆไดจากเครองมอ KerbTray ดงภาพประกอบ 4-2

Page 61: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

51

ภาพประกอบ 4-2 Kerberos ticket ทไดจากการพสจนตวตน ในการทดสอบการเขาใชงาน web site ทสนบสนนการพสจนตวตน Kerberos

เมอเรยกเขาไปท web site กจะสามารถเขาใชงานไดทนท โดยระบบจะทาการรองขอ service ticket กบ Kerberos KDC (Active Directory)โดยอตโนมต และสง service ticket ใหกบ web site เพอใชในการพสจนตวตนของ web site ซงในการทดสอบนทดสอบเขาใชงาน web site : Linuxvm-core7.psu.ac.th ซงเปนเครองททางานบน Linux platform และไดรบการปรบแตงใหสนบสนนการพสจนตวตน Kerberos ทาใหสามารถเขาใชงานไดทนทโดยผใชงานไมตอง login ใหม

เราสามารถตรวจสอบ Kerberos ticket ทไดรบเมอเขาใชงาน web site ไดจากเครองมอ KerbTray ดงภาพประกอบ 4-3

Page 62: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

52

ภาพประกอบ 4-3 Kerberos ticket ทใชในการเขาใชงาน web site : Linuxvm-core7

ในสวนของระบบสารสนเทศททางานบน Linux platform ผวจบทดสอบโดย

ตดตงระบบปฏบตการ RedHat Enterprise Linux 4 จานวน 1 เครอง Fedora Core 4 จานวน 1 เครอง และ Fedora Core 7 จานวน 1 เครอง เมอทาการปรบแตงกาหนดคา Kerberos client โดยแกไขไฟล /etc/krb5.conf และใชคาสง kinit ในการทดสอบการพสจนตวตนกบ PSU Passport กสามารถทาการพสจนตวตนผใชไดสาเรจ ซงสามารถตรวจด Kerberos TGT ทไดรบกลบมาจากการพสจนตวตนดวยคาสง klist ดงภาพประกอบ 4-4

Page 63: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

53

ภาพประกอบ 4-4 การใชคาสง kinit ในการพสจนตวตน และ klist แสดง ticket ใน ticket cache เมอพสจนตวตนเรยบรอยแลว ผวจยทดสอบการทางานของการพสจนตวตน SSO

ดวยการเขาใชงานบรการแชรไฟลของ Active Directory ซงสนบสนนการพสจนตวตน Kerberos โดยการใชคาสง smbclient //dc2.psu.ac.th/Linux –k ซงกสามารถเขาใชงานบรการแชรไฟลไดทนทโดยทผใชไมตองทาการ login เขาสบรการแชรไฟล (ระบบทาการรองขอ service ticket เพอเขาใชงานบรการแชรไฟลโดยอตโนมต service ticket ทไดรบมาคอ [email protected]) ซงสามารถเรยกด service ticket ทไดรบกลบจากการเขาใชบรการแชรไฟล ทซงถกเกบไวใน ticket cache ของผใชนนๆ โดยใชคาสง klist ดงภาพประกอบ 4-5

Page 64: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

54

ภาพประกอบ 4-5 การใชคาสง smbclient เพอใชบรการแชรไฟล และใชคาสง klist แสดง ticket ใน ticket cache

ผวจยไดทาการทดสอบการทางานของการพสจนตวตน SSO ดวยการเขาใชงาน

บรการอกหนงบรการซงสนบสนนการพสจนตวตน Kerberos คอ บรการ LDAP ของ Active Directory เอง ซงผวจยจะใชคาสง LDAPsearch ในการรองขอคนหาขอมลจาก LDAP server ชอ dc2.psu.ac.th กสามารถเขาใชงานและคนหาขอมลบญชผใชจากบรการ LDAP ไดทนทโดยทผใชไมตองทาการ login เขาสบรการ LDAP กอนทาการคนหาขอมล (Kerberos client ทาการรองขอ service ticket เพอเขาใชงานบรการ LDAP ของ Active Directory โดยอตโนมต service ticket ทได

Page 65: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

55

ภาพประกอบ 4-6 การใชคาสง LDAPsearch เพอคนหาขอมลผใชจากบรการ LDAP

Page 66: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

56

ภาพประกอบ 4-7 การใชคาสง klist แสดง ticket ใน ticket cache

จากผลการทางานของระบบบน Linux platform เมอปรบแตงการทางานมาใชการพสจนตวตน Kerberos กบ Active Directory พบวาระบบสามารถทางานไดอยางด มความสามารถทา SSO เพอเขาใชบรการตางๆไดโดยผใช login เพยงครงเดยว ผวจยจงไดทาการปรบแตงกาหนดคาใหระบบปฏบตการ Linux ใชขอมลผใชจากบรการ LDAP ของ Active Directory แทนทจะใชขอมลจากเครองตนเองเพยงแหงเดยว ซงสามารถทดสอบการปรบแตงกาหนดคาไดโดยใชคาสง id หรอ getent passwd

ผลของการใชคาสง id และ getent passwd พบวาระบบสามารถใชขอมลผใช pongspat.h จากบรการ LDAP ของ Active Directory ไดแทนทจะใชขอมลจากเครองตนเองเพยงแหงเดยว (ไมมขอมลผใชใน /etc/passwd และ /etc/shadow) ดงภาพประกอบ 4-8

Page 67: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

57

ภาพประกอบ 4-8 การใชคาสง id และ getent passwd เพอดขอมลบญชผใช และใชคาสง klist แสดง ticket ใน ticket cache

เมอระบบปฏบตการ Linux สามารถใชงานการพสจนตวตน Kerberos เพอเขาใช

บรการตางๆไดโดยผใช login เพยงครงเดยว และใชขอมลบญชผใชจากบรการ LDAP ของ Active Directory ไดแลว ผวจยไดทาการทดสอบการปรบแตงกาหนดคา Httpd server ใหสนบสนนการพสจนตวตน Kerberos โดยการใช web browser “Mozilla Firefox” ทไดรบการกาหนดคาใหสนบสนนการพสจนตวตน Kerberos เรยกเขาไปส webpage บนเครอง Linuxvm-core7.psu.ac.th ทซงอนญาตเฉพาะผทผานการพสจนตวตนเทานน ซงพบวา สามารถเขาส webpage นนๆไดโดยทผใชไมตองทาการ login ใหม และสามารถเรยกด service ticket ทไดรบกลบจากการเขาดขอมล webpage ซงถกเกบไวใน ticket cache ของผใชนนๆ โดยใชคาสง klist (service ticket ทไดรบคอ HTTP/[email protected] ) ดงภาพประกอบ 4-9

Page 68: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

58

ภาพประกอบ 4-9 การใชคาสง klist แสดง ticket ใน ticket cache เมอมการเขาใชงาน webpage บนบรการ httpd ทสนบสนน Kerberos

การทดสอบการปรบแตงกาหนดคา Httpd server ใหสนบสนนการพสจนตวตน

Kerberos ขางตน เปนการทดสอบการทางานโดยท web browser ทางานอยบนระบบปฏบตการ Linux และบรการ httpd กอยบนระบบปฏบตการ Linux เชนเดยว ผวจยตองการทดสอบการทางานของการพสจนตวตนบน platform ทตางกน ดงนนผวจยจะทาการทดสอบการทางาน กรณทบรการ httpd อยบนระบบปฏบตการ Windows (IIS Web server เปนผใหบรการ web บน Windows Server) โดยการใช web browser “Mozilla Firefox” ทไดรบการกาหนดคาใหสนบสนนการพสจนตวตน Kerberos เรยกเขาไปส web page บนเครอง dc2.psu.ac.th ทอนญาตเฉพาะผทผานการพสจนตวตนเทานน ซงพบวา สามารถเขาส webpage นนๆไดโดยทผใชไมตองทาการ login ใหม และสามารถเรยกด service ticket ทไดรบกลบจากการเขาดขอมล webpage ซงถกเกบไวใน ticket cache ของผใชนนๆ โดยใชคาสง klist (service ticket ทใชในการเขาดขอมล webpage จากบรการ httpd บนระบบปฏบตการ Windows คอ HTTP/[email protected] ) ดงภาพประกอบ 4-10

Page 69: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

59

ภาพประกอบ 4-10 การใชคาสง klist แสดง ticket ใน ticket cache เมอมการเขาใชงาน webpage บน IIS Web server ทสนบสนน Kerberos

จากผลการทดสอบทแสดงใหเหนขางตนพบวา สามารถทจะปรบแตงกาหนดคา

ระบบพสจนตวตนของระบบสารสนเทศทอยบน Windows และ Linux platform ใหใชงานโปรโตคอล LDAP ในการรองขอขอมลผใชงาน และใชงานโปรโตคอล Kerberos ซงมความสามารถในการทา SSO ในการพสจนตวตนผใช โดยใช Active Directory เปนผใหบรการ LDAP และ Kerberos โดยทไมตองพฒนาโปรแกรมเพมเตม แตจะเหนวามขอจากดทสาคญอยประการหนงเมอตองการใชงานการพสจนตวตน Kerberos คอ เครอง client หรอเครองของผใชทกเครองจะตองกาหนดคาใหเปนสมาชกของ Kerberos REALM (Active Directory domain) นนคอ ถาเปนเครองทใชระบบปฏบตการ Linux จะตองทาการปรบแตงกาหนดคาในสวนของ Kerberos client และทาการสราง computer account บน Active Directory และถาเครองผใชเปนระบบปฏบตการ Windows กตองทาการ join เขาส domain ของ Active Directory ซงเหมาะกบระบบหรอบรการทใชงานอยภายใตเครอขายขององคกรซงสามารถควบคมการบรหารจดการเครอขาย และควบคมการตดตงโปรแกรมของเครองคอมพวเตอรทใชงานได แตระบบหรอบรการท

Page 70: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

60

4.3 การทดสอบระบบ Web SSO สาหรบ web application

การทดสอบระบบ Web SSO ทพฒนาในลกษณะของ class library (dll file)

เพอใหผพฒนา web application นาไปใชในระบบของตนนน ผวจยจะทาการทดสอบในสวนของการใช Web SSO Library ในการพฒนา web application ใหมสามารถพสจนตวตน SSO และทดสอบการทางานของระบบ Web SSO ทไดพฒนาขน โดยพฒนา web application จาลอง 3 ระบบประกอบไปดวย

• Passport SSO Service คอ web application ททาหนาทเปน AS ใหบรการตรวจสอบพสจนตวตนของผใช สราง AuthenticationTicket สาหรบ AS และ web application (PS) ตางๆทใชงาน Web SSO Library รวมทงทาหนาทในการควบคมการ Sign-Out กบ web application ทงหมดทผใชไดเขาใชงาน

• SIS web application คอ web application ทจาลองหนาตาของระบบสารสนเทศนกศกษา ซงจะใชทดสอบการพฒนาโดยใช Web SSO Library และทดสอบการทางานของระบบ Web SSO

• DSS web application คอ web application ทจาลองหนาตาของระบบสารสนเทศบคลากร ซงจะใชทดสอบการพฒนาโดยใช Web SSO Library และทดสอบการทางานของระบบ Web SSO

ผลการทดสอบการใช Web SSO Library ในการพฒนา web application ใหม

ความสามารถพสจนตวตน SSO พบวาสามารถนามาใชพฒนาไดอยางไมยงยาก ผพฒนาเพยงแค reference มาทไฟล PSU.Security.dll นจาก web application project ซงทาใหสามารถเรยกใชงานฟงกชนทมใหไดทนท จากนนปรบแตงคาใน web.config ใหทาการประมวลผล Web SSO ในทกครงท webpage ถกประมวลผล พรอมทงกาหนด certificate ทจะใชในกระบวนการทางาน Web SSO สาหรบขนตอนการนา Web SSO Library มาใชพฒนาผวจยจะไดกลาวถงอยางละเอยดในหวขอถดไป

ผลการทดสอบการทางานพบวา Web SSO Library สามารถทาการพสจนตวตน SSO เมอเขาใช web application ทงสามระบบทใชในการทดสอบ ดงน

Page 71: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

61

• ผใชทาการพสจนตวตนกบ AS (Passport SSO Service) เพยงครงเดยวสามารถเขาใชบรการ web application อนๆ(SIS และ DSS web application) ทใชงาน Web SSO ได

• web application สามารถถอดรหส AuthenticationTicket และสามารถระบตวตนผใชพรอมทงขอมลของผใชได

• Authentication module ททางานบน PS (SIS และ DSS web application) สามารถตรวจสอบวนเวลาหมดอาย และรองขอตออาย ticket (renew) ไปยง AS

• AS สามารถสราง AuthenticationTicket เพอตออาย ticket ทจะหมดอายได

• ผใชสามารถ Sign-Out เพยงครงเดยว ระบบจะ Sign-Out กบ web application ทกระบบทผใชเขาใชงานและใชงาน Web SSO Library

4.4 การพฒนา Web Application ใหสนบสนน SSO โดยใช Web SSO

ขนตอนการพฒนาสาหรบผพฒนาในการนา Web SSO ไปใชในการพฒนาระบบ

สารสนเทศในลกษณะ web application ทใช ASP.net ในการพฒนาใหมความสามารถในการทา SSO แบงออกเปน 2 ขนตอนใหญคอ

• การพฒนา Authentication Site (AS) ซงเปนระบบททาหนาใหบรการพสจนตวตนผใช และสรางขอมลยนยนตวตนผใช (ticket) สงไปให web application อนๆ (PS) ทใชงานระบบ Web SSO ใชในการระบตวตนผใช

• การพฒนา Participating Site (PS) ซงเปนระบบสารสนเทศทใหบรการในรปแบบ web application ทมความสามารถในการทา SSO โดยใชงาน Web SSO Library

4.4.1 ขนตอนการพฒนา Authentication Site (AS) ในหวขอนจะกลาวถงขนตอนในการพฒนา AS โดยใชเทคโนโลย ASP.net เพอ

เปนระบบททาหนาใหบรการพสจนตวตนผใช และสรางขอมลยนยนตวตนผใช (ticket) สงไปให PS ดงน

1. สราง certificate สาหรบ AS โดยใชโปรแกรม Certificate Management Tool ซงจะมอยใน Web SSO Library

Page 72: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

62

− ใชโปรแกรม Certificate Management Tool ในการรองขอ certificate จาก CA โดยทาการระบทจะใชเกบ certificate เปน system certificate store (กรณ web application นนๆทางานภายใตผใชชอ SYSTEM หรอ Network Service แตถา web application ทางานภายใตผใชอนๆ กตองจดเกบ certificate ไวใน certificate store ของผใชนนๆ) โดย Certificate Management Tool จะสราง request file สาหรบสงไปให CA เพอรองขอ certificate ดงภาพประกอบ 4-11

ภาพประกอบ 4-11 หนาจอโปรแกรม Certificate Management Tool

− สง request file ไปให CA เพอขอ certificate

− นา certificate ทไดรบกลบมาจาก CA นาเขาส system certificate store (กรณ web application นนๆทางานภายใตผใชชอ SYSTEM หรอ Network Service แตถา web application ทางานภายใตผใชอนๆ กตองจดเกบ certificate ไวใน certificate store ของผใชนนๆ)

Page 73: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

63

2. กรณท web application ทางานภายใตชอบญชผใช Network Service (โดยปกต worker process ของ IIS6 จะทางานภายใตบญชผใช Network Service) จะไมมสทธในการเขาถง private key containers ของ machine certificate store ดงนนผพฒนาตองใชโปรแกรม MKACLS (เปนโปรแกรมทพฒนาโดย Microsoft และเผยแพรในรปแบบของ source code ซงผพฒนานามา compile และรวมเขาไวในชด Web SSO Library) เพออนญาตใหบญชผใช Network Service มสทธเขาถง machine certificate store และสามารถอานขอมลจาก private key containers

3. สราง reference ของ web application ไปท PSU.Security.dll

4. กาหนด Sign-In URL Sign-Out URL และ certificate ทจะใชในการเขารหสและถอดรหส

ใน web.config ดงน <appSettings>

<add key="SignIn-URL" value="http://(AS)/SignIn.aspx"/> <add key="SignOut-URL" value="http://(AS)/SignOut.aspx"/> <add key="Site-Certificate" value="(AS certificate)"/> <add key="Service-Certificate" value="(AS certificate)"/> <add key="Ticket-Timeout" value="1200"/>

</appSettings> <system.web>

<authorization> <deny users="?"/>

</authorization> <authentication mode="None"/> <httpModules>

<add type="PSU.Security.PassportAuthModule,PSU.Security" name="PassportAuthModule"/>

</httpModules> </system.web>

Page 74: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

64

− กาหนดคา SignIn-URL โดยระบ URL ของ Sign-In webpage ของ AS

− กาหนดคา SignOut-URL โดยระบ URL ของ Sign-Out webpage ของ AS

− กาหนดคา Service-Certificate โดยระบชอ (subject name) ของ certificate สาหรบ AS เพอใชในการเขารหส AuthenticationTicket, session key และสราง signature

− กาหนดคา Site-Certificate โดยระบชอ (subject name) ของ certificate สาหรบ PS (แตในกรณนเปนการพฒนา AS ดงนน certificate ทใชสาหรบ Site-Certificate และ Service-Certificate จะเปนตวเดยวกน)

− าหนดคา Ticket-Timeout ในหนวยวนาท ( คา default คอ 1200 วนาท ) ก

− กาหนดสทธการเขาใชงาน web page ดงน

<authorization> <deny users="?" />

</authorization>

การกาหนดคาดานบนเปนการจากด ใหผใชตองทาการพสจนตวตนกอนสามารถเขาใชงานได (deny anonymous) หากตองการอนญาตใหผใชทกคนเขาใชงานได ตองกาหนดสทธดงน

<authorization>

<allow users="*" /> </authorization>

− กาหนดคา httpMoules ใหใช PassportAuthModule เพอทาการประมวลผล Web SSO ในทกครงท webpage ถกประมวลผลดงน

<httpModules>

<add type="PSU.Security.PassportAuthModule,PSU.Security" name="PassportAuthModule"/>

</httpModules>

Page 75: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

65

5. พฒนา Sign-In webpage ของ AS เพอใชในการพสจนตวตนผใชและสราง ticket เมอการพสจนตวตนผใชถกตองเรยบรอยแลว

− พฒนาการพสจนตวตนผใช ซงขนอยกบผพฒนา AS จะตรวจสอบพสจนตวตนผใชอยางไร เชน พสจนตวตนผใชกบ Active Directory

− เมอการพสจนตวตนถกตองเรยบรอย ผพฒนาจะตองสราง AuthenticationTicket โดยใชขอมลของผใชเชน ชอ กลมของผใช หรอขอมลอนๆทตองการ

− จากนนใหผพฒนาเรยกใชงาน method RedirectFromSignInPage() เพอสง AutenticationTicket สาหรบ ASไปเกบใน cookie cache ของ web browser และสง AuthenticationTicket สาหรบ PS กลบไปให PS โดยสงคาสง redirect ไปยง web browser

ตวอยางการพฒนา SignIn.aspx ททาหนาทพสจนตวตนผใช สราง AuthenticationTicket สาหรบ AS PS และสงคาสง redirect ไปให web browser เพอไปยง PS ดงน

public partial class SignIn : System.Web.UI.Page {

protected void SignInButt_Click(object sender, EventArgs e) {

if (PasswordCorrect) {

AuthenticationTicket t = new AuthenticationTicket("username", new string[] { "Users", "Admin" }, 240);

AuthenticationManager.RedirectFromSignInPage(t, true); } }

}

6. พฒนา Sign-Out webpage ของ AS เพอทาการ Sign-Out ออกจากทก web application (PS) ทผใชไดเขาใชงาน

− ตรวจสอบวาผใชไดผานการพสจนตวตนแลวหรอไม โดยตรวจสอบจาก this.User.Identiry ดงน

Page 76: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

66

if (this.User.Identity is PSU.Security.PassportIdentity) { }

− ถาผใชผานการพสจนตวตนเรยบรอยแลว ใหดงขอมลของ Sign-Out URL ของ PS ทงหมดทผใชเขาใชงาน AuthenticationTicket ทเกบอยท this.User.Identity ดงน PSU.Security.PassportIdentity ident =

(PSU.Security.PassportIdentity)this.User.Identity; NameValueCollection buff = ident.GetAllSignOutURL();

− ทาการ Sign-Out ออกจาก PS ทงหมดทผใชเขาใชงาน ดวยการใช <img> และระบ SRC มคาเทากบ Sign-Out URL ของ PS (Sign-Out ของ PS จะทาลบ ticket ทเกบอยใน cookie ของตนเองและทาการสงรปภาพแสดงผลการทางานกลบมา) ดงน foreach (string key in buff.AllKeys) { Response.Write("<IMG SRC=\"" + buff[key] + "\"><br>"); } ทาการ Sign-Out ออกจาก AS โดยใชคาสง RemoveAuthenCookie() ดงน −

AuthenticationManager.RemoveAuthenCookie(); เมอผพฒนาไดพฒนา AS เสรจแลว ขนตอนตอไปกจะเปนการพฒนาหรอ

ปรบแตง PS ทมอยแลวใหมความสามารถ SSO โดยใช Web SSO Library

Page 77: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

67

4.4.2 ขนตอนการพฒนา Participating Site (PS) ในหวขอนจะกลาวถงขนตอนในการพฒนาปรบปรง PS ทใชเทคโนโลย ASP.net

เพอใหมความสามารถพสจนตวตนผใช SSO ซงจะทางานรวมกบ AS ทไดพฒนาจากหวขอทผานมา ดงน

1. สราง certificate สาหรบ PS โดยใชโปรแกรม Certificate Management Tool ซงจะมอยใน Web SSO Library และสงไปลงทะเบยนกบ AS

− ใชโปรแกรม Certificate Management Tool ในการรองขอ certificate จาก CA โดยทาการระบทจะใชเกบ certificate เปน system certificate store (กรณ web application นนๆทางานภายใตผใชชอ SYSTEM หรอ Network Service แตถา web application ทางานภายใตผใชอนๆ กตองจดเกบ certificate ไวใน certificate store ของผใชนนๆ) โดย Certificate Management Tool จะสราง request file สาหรบสงไปให CA เพอรองขอ certificate ดงภาพประกอบ 4-11

− สง request file ไปให CA เพอขอ certificate

− นา certificate ทไดรบกลบมาจาก CA นาเขาส system certificate store (กรณ web application นนๆทางานภายใตผใชชอ SYSTEM หรอ Network Service แตถา web application ทางานภายใตผใชอนๆ กตองจดเกบ certificate ไวใน certificate store ของผใชนนๆ)

− สง certificate สาหรบ PS (certificate ซงมเฉพาะ public key) ไปลงทะเบยนกบ AS เพอให AS ใชเขารหส AuthenticationTicket สาหรบ PS

− นา certificate สาหรบ AS (certificate ซงมเฉพาะ public key) นาเขาส system certificate store (กรณ web application นนๆทางานภายใตผใชชอ SYSTEM หรอ Network Service แตถา web application ทางานภายใตผใชอนๆ กตองจดเกบ certificate ไวใน certificate store ของผใชนนๆ) เพอใชในการตรวจสอบ signature ของ ticket ทไดรบ

2. กรณท web application ทางานภายใตชอบญชผใช Network Service (โดยปกต worker

process ของ IIS6 จะทางานภายใตบญชผใช Network Service) จะไมมสทธในการเขาถง private key containers ของ machine certificate store ดงนนผพฒนาตองใชโปรแกรม MKACLS (เปนโปรแกรมทพฒนาโดย Microsoft และเผยแพรในรปแบบของ source code ซงผพฒนานามา compile และรวมเขาไวในชด Web SSO Library) เพออนญาตใหบญช

Page 78: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

68

3. สราง reference ของ web application ไปท PSU.Security.dll

4. กาหนด Sign-In URL Sign-Out URL และ certificate ทจะใชในการเขารหสและถอดรหส

ใน web.config ดงน

<appSettings> <add key="SignIn-URL" value="http://(AS)/SignIn.aspx"/> <add key="SignOut-URL" value http://(PS)/SignOut.aspx"/> <add key="Site-Certificate" value="(PS certificate)"/> <add key="Service-Certificate" value="(AS certificate"/> <add key="Enable-Nonce" value="false"/> <add key="SignOut-Image-FileName" value="xxx.jpg"/> <add key="SignOut-Image-Type" value="image/jpeg"/>

</appSettings> <system.web>

<authorization> <deny users="?"/> </authorization> <authentication mode="None"/> <httpModules>

<add type="PSU.Security.PassportAuthModule,PSU.Security" name="PassportAuthModule"/>

</httpModules> </system.web>

Page 79: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

69

− กาหนดคา SignIn-URL โดยระบ URL ของ Sign-in webpage ของ AS

− กาหนดคา SignOut-URL โดยระบ URL ของ Sign-Out webpage ของ PS

− กาหนดคา Service-Certificate โดยระบชอ (subject name) ของ certificate สาหรบ AS เพอใชในการเขารหส AuthenticationTicket, session key และสราง signature

− าหนดคา Site-Certificate โดยระบชอ (subject name) ของ certificate สาหรบ PS ก

− กาหนดคา Enable-Nonce ซงถาคา false จะทาการยกเลกการใชงานการปองการ นา ticket มาใชใหม (คาเปน true โดย default) ซงการปองการนา ticket มาใชซ านนใชวธการสราง session key และ cookies ใหมทกครงทผใชรองขอ webpage)

− กาหนดคา SignOut-Image-FileName โดยระบชอ file รปภาพทใชในการ Sign-Out

− กาหนดคา SignOut-Image-Type โดยระบประเภทของ file รปภาพทใชในการ Sign-Out

− กาหนดคาการอนญาตเขาใชงาน web page ดงน

<authorization> <deny users="?" /> </authorization> การกาหนดคาดานบนเปนการจากด ใหผใชตองทาการพสจนตวตนกอนสามารถเขาใชงานได ( deny anonymous ) หากตองการอนญาตใหผใชทกคนเขาใชงานได ตองกาหนด คาดงดานลาง

<authorization> <allow users="*" />

</authorization>

− กาหนดคา httpMoules ใหใช PassportAuthModule เพอทาการประมวลผล Web SSO ในทกครงท webpage ถกประมวลผล ดงน

<httpModules>

Page 80: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

70

<add type="PSU.Security.PassportAuthModule,PSU.Security" name="PassportAuthModule"/>

</httpModules>

5. พฒนา Sign-Out webpage ของ PS โดยการสราง webpage ใหมขนมาและใชชอเดยวกบทระบไวใน config โดยทไมตองเขยนโปรแกรมใดๆใน webpage นเลย

4.5 สรป ในบทนไดกลาวถงผลการทดสอบการทางานของระบบพสจนตวตนผใชของ

ระบบปฏบตการ Windows และ Linux ทไดมการปรบแตงกาหนดคาใหใชงานระบบพสจนตวตน Kerberos และใชขอมลบญชผใชจาก Active Directory ซงพบวาระบบบน platform ทงสองสามารถทาการพสจนตวตนผใชไดสาเรจสามารถระบตวตนและขอมลของผใชไดตามปกตเหมอนกบการพสจนตวตนและใชขอมลจากเครองตนเอง หลงจากนนผวจยไดทาการทดสอบความสามารถในการทา SSO ของระบบบน platform ทงสอง ซงทดสอบการทางานทมการรองขอบรการและผ ใหบรการบน platform เดยวกนและการรองขอบรการและผใหบรการบน platform ตางกน พบวาสามารถเขาใชงานบรการทปรบแตงใหสนบสนนการพสจนตวตน SSO ไดทนท แมวาผรองขอและผใหบรการจะอยบน platform ทตางกน ในสวนทสองจะกลาวถงผลการทดสอบระบบ Web SSO ทไดพฒนาขน ซงเปนกลไลการพสจนตวตน SSO สาหรบระบบสารสนเทศทเปน web application ทซงผใชงานสามารถใชเพยง web browser ในการเขาใชงานโดยไมตองตดตงหรอกาหนดคาใดๆเพมเตม ผวจยไดทาการสราง web application (PS) ขนมาสองระบบ และทาการปรบแตงกาหนดคาใหใช Web SSO ในการพสจนตวกบ web application ททาหนาทใหบรการพสจนตวตนและสราง ticket (AS) พบวาผใชสามารถเขาใชงานไดโดยททาการพสจนตวตนผใชกบระบบเพยงครงเดยว ในทานองเดยวกนผใชสามารถ Sign-Out เพยงครงเดยว ระบบจะทาการ Sign-Out ผใชออกจากทก web application (PS) ทผใชไดเขาใชงาน และในตอนทายของบทนไดนาเสนอแนวทางสาหรบผพฒนาระบบสารสนเทศในรปแบบ web application นา Web SSO Library ไปใชในการพฒนาระบบสารสนเทศของตนใหมความสามารถในการทา SSO

Page 81: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

บทท 5 บทสรปและขอเสนอแนะ

5.1 บทนา

บททผานมาไดกลาวถงการวเคราะห การออกแบบ การพฒนา และผลของการ

ทดสอบ เพอทาใหระบบสารสนเทศมหาวทยาลยสงขลานครนทร วทยาเขตหาดใหญบน Windows และ Linux platform ใชงานระบบพสจนตวตนผใชทมความสามารถในการทา SSO มการบรหารจดการและจดเกบบญชผใชทจดศนยกลางเพยงทเดยว โดยไดมการปรบแตงกาหนดคาระบบพสจนตวตนบน Windows และ Linux platform ใหใชงานระบบพสจนตวตน Kerberos ใชขอมลบญชผใชจาก Active Directory และไดการดาเนนการพฒนาระบบ Web SSO สาหรบ web application ทผใชงานไมตองตดตงโปรแกรมหรอกาหนดคาใดๆเพมเตม ผวจยไดไดทาตามขนตอนการพฒนาระบบ เรมจากการวเคราะหระบบงานเดม วเคราะหออกแบบระบบใหม พฒนาและทดสอบการทางานของ Web SSO สาหรบ web application ซงสามารถทางานไดอยางถกตองตรงตามความตองการทไดกาหนดไว และผพฒนา web application สามารถนาไปใชเปนกลไกตรวจสอบพสจนตวตนผใชสาหรบระบบของตนเองได ซงในบทนเปนการสรปผลการของการวจยพรอมท งขอเสนอแนะสาหรบผทจะนาไปใชงานหรอวจยพฒนาเพมเตม

5.2 สรปผลการพฒนาระบบ SSO

ในการปรบแตงกาหนดคาระบบพสจนตวตนของระบบสารสนเทศทอยบน

Windows และ Linux platform ใหใชงานโปรโตคอล LDAP ในการรองขอขอมลผใชงาน และใชงานโปรโตคอล Kerberos ซงมความสามารถในการทา SSO ในการพสจนตวตนผใช โดยใช Active Directory เปนผใหบรการ LDAP และ Kerberos ซงผลการทดสอบพบวาระบบทงสอง platform สามารถทาการพสจนตวตนผใชในลกษณะ SSO ไดทงบนระบบทอยบน platform เดยวกนหรอตาง platform แตมขอจากดทสาคญอยประการหนงคอ เมอตองการใชงานการพสจนตวตน Kerberos เครองของผใชจาเปนทจะตองเปนสมาชกของ Kerberos REALM (Active Directory domain)

ในกรณระบบปฏบตการ Linux จะตองทาการปรบแตงกาหนดคาในสวนของ Kerberos client และทาการสราง computer account บน Kerberos REALM (Active Directory) ใน

71

Page 82: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

72

สวนของเครองผใชทเปนระบบปฏบตการ Windows กตองทาการ join เขาส domain ของ Active Directory การปรบแตงกาหนดคาดงกลาวนจะเหมาะกบระบบหรอบรการทใชงานอยภายใตเครอขายขององคกรซงสามารถควบคมการสทธการใชงานเครอขายคอมพวเตอรซงจะตองเปดสทธใหผใชสามารถใชงาน port สาหรบ Kerberos และ Active Directory และสามารถควบคมการตดตงโปรแกรมของเครองผใชงาน(client)

ระบบหรอบรการทพฒนาอยในรปแบบของ web application ซงผใชสามารถใชงานไดจากทใดๆ กได ทาใหไมสามารถควบคมสทธการใชงานเครอขาย รวมทงอาจจะไมสามารถตดตงปรบแตงเครองทใชงาน ดงนนผวจยจงไดพฒนาระบบ Web SSO สาหรบ web application ขนมาเพอใชสาหรบระบบสารสนเทศทมรปแบบ web application ใหมความสามารถในการทา SSO โดยเครองผใชงาน (web browser) ไมจาเปนตองตดตงหรอกาหนดคาใดๆเพมเตม ระบบ Web SSO สาหรบ web application จะออกแบบพฒนาในรปแบบของ class library ซงจะมกลไกการทางานอยภายในและสามารถปรบแตงกาหนดคาได เพอใหสะดวกสาหรบผพฒนา web application ในการนา Web SSO Library ไปใชในการพฒนาระบบของตนใหมความสามารถในการทา SSO

Web SSO Library จะประกอบไปดวย Certificate Management Tool เปนเครองมอทใชในการจดการ certificate สาหรบเขารหสและถอดรหส และ Passport.Security.dll เปนcomponent ทมกลไกการทางาน SSO สาหรบ web application อยภายใน ซงเมอผพฒนานาไปใชจะทาใหระบบสารสนเทศนนๆมความสามารถดงน

• ผใชทาการ Sign-In เพยงครงเดยวสามารถเขาใชบรการ web application อนๆ ทใชงาน Web SSO นได

• Web application แตละตวสามารถระบตวตนและขอมลของผใชได

สามารถ renew ticket ใหม ในกรณทตว ticket ใกลหมดอาย

• ผใชสามารถ Sign-Out ออกจากระบบไดในครงเดยว การนา Web SSO Library ไปใชงานนน ผพฒนา web application จะตองพฒนา

AS ขนมากอน (พฒนาเพยงครงเดยว) หลงจากนนจงทาการพฒนา PS ซงทง AS และ PS จะตองตดตง certificate ของตนเองเพอใชในการเขารหส ถอดรหส ตรวจสอบความถกตองของ ticket พรอมทงสง public key ของ AS ไปให PS ทกระบบทตองการใชงาน Web SSO และสง public key ของ PS ทกระบบทตองการใชงาน Web SSO ไปลงทะเบยนกบ AS

Web SSO ทไดจากการพฒนานสามารถนาไปใชไดกบ web application ทพฒนาโดยใชเทคโนโลย ASP.NET เทานน เนองจากผวจยไดพฒนา Web SSO Library องอยกบ

Page 83: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

73

ในกรณของ web application ทพฒนาดวยภาษาและเทคโนโลยอนๆ ซงตองการความสามารถในการทา SSO จะตองพฒนาสวนทใชในการรบและถอดรหส ticket ทไดรบจาก AS และการระบตวตนผใชสงตอให web application ของตนขนมาใหม โดยนาแนวทางในออกแบบการพฒนาของงานวจยนไปเขยนโปรแกรมในภาษาและเทคโนโลยทตนเองใช ซง component ทพฒนาขนมาใหมนกสามารถทจะเชอมตอเขามาทางานรวมกบ AS ทพฒนาโดยใช ASP.NET ได

5.3 ขอเสนอแนะสาหรบการใชงาน

การปรบแตงกาหนดคาระบบพสจนตวตนของระบบสารสนเทศทอยบน

Windows platform และ Linux platform ใหใชงานโปรโตคอล LDAP ในการรองขอขอมลผใชงานโดยใช Active Directory ของ PSU Passport เปนผใหบรการ LDAP นนผวจยแนะนาใหใช LDAPS เพอปองกนการแอบดกจบขอมลทสาคญของผใช ทมการสงขอมลผานเครอขายระหวาง Active Directory ของ PSU Passport กบเครองแมขายทใหบรการตางๆ

ในสวนของการใชงาน Web SSO ผวจยแนะนาใหใช HTTPS เพอเขารหส การสงขอมลระหวาง web browser กบ web server ซงสามารถปองกนการแอบดกจบ authentication ticket แลวนามาใชใหม หรอเปดใชงานฟงกชนการตรวจสอบการใชงาน authentication ticket ซาโดยการกาหนดคา Enable-Nonce = true กจะปองกนไดเชนกน

5.4 ขอเสนอแนะสาหรบการพฒนา

เนองจากชดพฒนา Web SSO สาหรบ web application ชดนสามารถนาไปใชกบ

web application ทพฒนาโดยใชเทคโนโลย ASP.NET เทานน ทาให web application ทพฒนาดวยภาษาและเทคโนโลยอนๆ ทตองการความสามารถในการทา SSO กตองพฒนาเพมเตมสาหรบสวนทใชในการรบและถอดหรส ticket และระบตวตนผใช โดยนาแนวทางในการพฒนาของงานวจยนไปเขยนโปรแกรมในภาษาและเทคโนโลยทตนเองใช ไมวาจะเปน asp, php หรอ java ซงสามารถทจะเชอมตอเขามาทางานรวมกบ AS ทพฒนาโดยใช ASP.NET ได

Page 84: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

74

บรรณานกรม

[1] สรพร จตตเจรญธรรม, เสาวภา ปานจนทร และ เลอศกด ลมววฒนกล., ความรเบองตนเกยวกบการพสจนตวตน. [ออนไลน] 28 เมษายน 2547. http://thaicert.nectec.or.th/paper/authen/authentication_guide.php.

[2] ดร.บรรจง หะรงษ., ความรเบองตนของการเขารหสขอมล (Introduction to Cryptography). [ออนไลน] 6 สงหาคม 2547. http://thaicert.nectec.or.th/paper/encryption/intro_crypt.php.

[3] A. J. Menezes, P. C. van Oorschot and S. A. Vanstone., Handbook of Applied Cryptography. Boca Raton : CRC Press, 1997.

[4] Andreas Pashalidis and Chris J. Mitchell., A taxonomy of single sign-on systems. [ed.] R. Safavi-Naini and J. Seberry. Wollongong, Australia : s.n., 2003. Information Security and Privacy, 8th Australasian Conference.

[5] J. Kohl and C. Neuman., The Kerberos Authentication Service (v5). Internet RFC 1510. September 1993.

[6] เลอศกด ลมววฒนกล และ สรพร จตตเจรญธรรม., การตดตงและใชงาน Kerberos. [ออนไลน] 28 มถนายน 2547. http://thaicert.nectec.or.th/paper/authen/kerberos.php.

[7] B. C. Neuman, B. Tung and J. Wray., Public Key Cryptography for Initial Authentication in. s.l : Internet Draft, April 2000.

[8] M. Sirbu and J. Chuang., Distributed authentication in Kerberos using public key cryptography. [Online] February 1997. http://citeseer.ist.psu.edu/sirbu97distributed.html.

[9] Microsoft., "Kerberos PAC specification." [Online] http://www.microsoft.com/technet/security/kerberos/default.asp.

[10] Microsoft., Step-by-step guide to Kerberos 5 (krb5 1.0)Interoperability. [Online] http://www.microsoft.com/windows2000/library/planning/security/kerbsteps.asp.

[11] A. Westerlund and J. Danielsson., Heimdal and Windows 2000 Kerberos : how to get them. [Online] http://citeseer.ist.psu.edu/westerlund01heimdal.html.

[12] P. Honeyman, O. Kornievskaia and B. Doster., Kerberized credential translation: A solution to web access control. [Online] http://citeseer.ist.psu.edu /kornievskaia01kerberized.html.

Page 85: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

75

[13] B. Pfitzmann and M. Waidner., Token-based Web Single Signon with Enabled Clients. [Online] http://citeseer.ist.psu.edu/pfitzmann02tokenbased.html.

[14] Doug Graham., It's all about authentication, SANS Reading Room, 15 March 2003 [15] S. S. Lam T.Y.C. Woo., Authentication for Distributed System. 1992. pp. 39-52. Vol. 25. [16] B. Lampson, M. Abadi., Authntication in Distributed Systems : Theory and Practice. 1992.

pp. 265-310. [17] Ronald L Rivest and Butler Lampson., SDSI A Simple Distributed Security Infrastructure.

[Online] 2 October 1996. http://citeseer.ist.psu.edu/article/rivest96sdsi.html. [18] John T. Kohl, B. Clifford Neuman and Theodore Y. T’so, The Evolution of the Kerberos

Authentication System, Distributed Open Systems, 1994. pp. 78-94.

Page 86: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

76

ภาคผนวก

Page 87: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

77

ภาคผนวก ก. ตวอยางการกาหนดคาไฟล /etc/krb5.conf [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = PSU.AC.TH dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h forwardable = yes [realms] EXAMPLE.COM = { kdc = kerberos.example.com:88 admin_server = kerberos.example.com:749 default_domain = example.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM .psu.ac.th = PSU.AC.TH psu.ac.th = PSU.AC.TH [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false }

Page 88: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

78

ภาคผนวก ข. ตวอยางการกาหนดคาไฟล /etc/LDAP.conf

# This is the configuration file for the LDAP nameservice # switch library and the LDAP PAM module. # # The man pages for this file are nss_LDAP(5) and pam_LDAP(5) # # PADL Software # http://www.padl.com # # Your LDAP server. Must be resolvable without using LDAP. # Multiple hosts may be specified, each separated by a # space. How long nss_LDAP takes to failover depends on # whether your LDAP client library supports configurable # network or connect timeouts (see bind_timelimit). # The distinguished name of the search base. base dc=psu,dc=ac,dc=th # Another way to specify your LDAP server is to provide an # uri with the server name. This allows to use # Unix Domain Sockets to connect to a local LDAP Server. #uri LDAP://127.0.0.1/ #uri LDAPs://127.0.0.1/ #uri LDAPi://%2fvar%2frun%2fLDAPi_sock/ # Note: %2f encodes the '/' used as directory separator # The LDAP version to use (defaults to 3 # if supported by client library) #LDAP_version 3 # The distinguished name to bind to the server with. # Optional: default is to bind anonymously. #binddn cn=proxyuser,dc=example,dc=com # The credentials to bind with. # Optional: default is no credential. #bindpw secret # The distinguished name to bind to the server with # if the effective user ID is root. Password is # stored in /etc/LDAP.secret (mode 600) #rootbinddn cn=manager,dc=example,dc=com # The port. # Optional: default is 389. #port 389 # The search scope.

Page 89: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

79

#scope sub #scope one #scope base # Search timelimit #timelimit 30 timelimit 120 # Bind/connect timelimit #bind_timelimit 30 bind_timelimit 120 # Reconnect policy: hard (default) will retry connecting to # the software with exponential backoff, soft will fail # immediately. #bind_policy hard # Idle timelimit; client will close connections # (nss_LDAP only) if the server has not been contacted # for the number of seconds specified below. #idle_timelimit 3600 idle_timelimit 3600 # Filter to AND with uid=%s #pam_filter objectclass=account # The user ID attribute (defaults to uid) #pam_login_attribute uid # Search the root DSE for the password policy (works # with Netscape Directory Server) #pam_lookup_policy yes # Check the 'host' attribute for access control # Default is no; if set to yes, and user has no # value for the host attribute, and pam_LDAP is # configured for account management (authorization) # then the user will not be allowed to login. #pam_check_host_attr yes # Check the 'authorizedService' attribute for access # control # Default is no; if set to yes, and the user has no # value for the authorizedService attribute, and # pam_LDAP is configured for account management # (authorization) then the user will not be allowed # to login. #pam_check_service_attr yes # Group to enforce membership of #pam_groupdn cn=PAM,ou=Groups,dc=example,dc=com

Page 90: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

80

# Group member attribute #pam_member_attribute uniquemember # Specify a minium or maximum UID number allowed #pam_min_uid 0 #pam_max_uid 0 # Template login attribute, default template user # (can be overriden by value of former attribute # in user's entry) #pam_login_attribute userPrincipalName #pam_template_login_attribute uid #pam_template_login nobody # HEADS UP: the pam_crypt, pam_nds_passwd, # and pam_ad_passwd options are no # longer supported. # # Do not hash the password at all; presume # the directory server will do it, if # necessary. This is the default. #pam_password clear # Hash password locally; required for University of # Michigan LDAP server, and works with Netscape # Directory Server if you're using the UNIX-Crypt # hash mechanism and not using the NT Synchronization # service. #pam_password crypt # Remove old password first, then update in # cleartext. Necessary for use with Novell # Directory Services (NDS) #pam_password clear_remove_old #pam_password nds # RACF is an alias for the above. For use with # IBM RACF #pam_password racf # Update Active Directory password, by # creating Unicode password and updating # unicodePwd attribute. #pam_password ad # Use the OpenLDAP password change # extended operation to update the password. #pam_password exop # Redirect users to a URL or somesuch on password # changes.

Page 91: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

81

#pam_password_prohibit_message Please visit http://internal to change your password. # RFC2307bis naming contexts # Syntax: # nss_base_XXX base?scope?filter # where scope is {base,one,sub} # and filter is a filter to be &'d with the # default filter. # You can omit the suffix eg: # nss_base_passwd ou=People, # to append the default base DN but this # may incur a small performance impact. #nss_base_passwd ou=People,dc=example,dc=com?one #nss_base_shadow ou=People,dc=example,dc=com?one #nss_base_group ou=Group,dc=example,dc=com?one nss_base_group cn=Users,dc=psu,dc=ac,dc=th?one #nss_base_hosts ou=Hosts,dc=example,dc=com?one #nss_base_services ou=Services,dc=example,dc=com?one #nss_base_networks ou=Networks,dc=example,dc=com?one #nss_base_protocols ou=Protocols,dc=example,dc=com?one #nss_base_rpc ou=Rpc,dc=example,dc=com?one #nss_base_ethers ou=Ethers,dc=example,dc=com?one #nss_base_netmasks ou=Networks,dc=example,dc=com?ne #nss_base_bootparams ou=Ethers,dc=example,dc=com?one #nss_base_aliases ou=Aliases,dc=example,dc=com?one #nss_base_netgroup ou=Netgroup,dc=example,dc=com?one # Just assume that there are no supplemental groups for these named users nss_initgroups_ignoreusers root,LDAP,named,avahi,haldaemon # attribute/objectclass mapping # Syntax: #nss_map_attribute rfc2307attribute mapped_attribute #nss_map_objectclass rfc2307objectclass mapped_objectclass # configure --enable-nds is no longer supported. # NDS mappings #nss_map_attribute uniqueMember member # Services for UNIX 3.5 mappings #nss_map_objectclass posixAccount User #nss_map_objectclass shadowAccount User #nss_map_attribute uid msSFU30Name #nss_map_attribute uniqueMember msSFU30PosixMember #nss_map_attribute userPassword msSFU30Password #nss_map_attribute homeDirectory msSFU30HomeDirectory #nss_map_attribute homeDirectory msSFUHomeDirectory #nss_map_objectclass posixGroup Group #pam_login_attribute msSFU30Name #pam_filter objectclass=User #pam_password ad

Page 92: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

82

# configure --enable-mssfu-schema is no longer supported. # Services for UNIX 2.0 mappings #nss_map_objectclass posixAccount User #nss_map_objectclass shadowAccount user #nss_map_attribute uid msSFUName #nss_map_attribute uniqueMember posixMember #nss_map_attribute userPassword msSFUPassword #nss_map_attribute homeDirectory msSFUHomeDirectory #nss_map_attribute shadowLastChange pwdLastSet #nss_map_objectclass posixGroup Group #nss_map_attribute cn msSFUName #pam_login_attribute msSFUName #pam_filter objectclass=User #pam_password ad # RFC 2307 (AD) mappings nss_map_objectclass posixAccount user nss_map_objectclass shadowAccount user nss_map_attribute uid sAMAccountName nss_map_attribute homeDirectory unixHomeDirectory nss_map_attribute shadowLastChange pwdLastSet nss_map_objectclass posixGroup group nss_map_attribute uniqueMember member pam_login_attribute sAMAccountName pam_filter objectclass=User pam_password md5 # configure --enable-authpassword is no longer supported # AuthPassword mappings #nss_map_attribute userPassword authPassword # AIX SecureWay mappings #nss_map_objectclass posixAccount aixAccount #nss_base_passwd ou=aixaccount,?one #nss_map_attribute uid userName #nss_map_attribute gidNumber gid #nss_map_attribute uidNumber uid #nss_map_attribute userPassword passwordChar #nss_map_objectclass posixGroup aixAccessGroup #nss_base_group ou=aixgroup,?one #nss_map_attribute cn groupName #nss_map_attribute uniqueMember member #pam_login_attribute userName #pam_filter objectclass=aixAccount #pam_password clear # Netscape SDK LDAPS #ssl on # Netscape SDK SSL options #sslpath /etc/ssl/certs

Page 93: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

83

# OpenLDAP SSL mechanism # start_tls mechanism uses the normal LDAP port, LDAPS typically 636 #ssl start_tls #ssl on # OpenLDAP SSL options # Require and verify server certificate (yes/no) # Default is to use libLDAP's default behavior, which can be configured in # /etc/openLDAP/LDAP.conf using the TLS_REQCERT setting. The default for # OpenLDAP 2.0 and earlier is "no", for 2.1 and later is "yes". #tls_checkpeer yes # CA certificates for server certificate verification # At least one of these are required if tls_checkpeer is "yes" #tls_cacertfile /etc/ssl/ca.cert #tls_cacertdir /etc/ssl/certs # Seed the PRNG if /dev/urandom is not provided #tls_randfile /var/run/egd-pool # SSL cipher suite # See man ciphers for syntax #tls_ciphers TLSv1 # Client certificate and key # Use these, if your server requires client authentication. #tls_cert #tls_key use_sasl on #debug 3 # Disable SASL security layers. This is needed for AD. sasl_secprops maxssf=0 # Override the default Kerberos ticket cache location. krb5_ccname FILE:/etc/.LDAPcache # SASL mechanism for PAM authentication - use is experimental # at present and does not support password policy control #pam_sasl_mech DIGEST-MD5 #ssl start_tls tls_cacertdir /etc/openLDAP/cacerts uri LDAP://dc2.psu.ac.th/ REFERRALS no #nss_paged_results yes #pagesize 500

Page 94: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

84

ภาคผนวก ค. ตวอยางการกาหนดคาไฟล /etc/httpd/conf.d/auth_kerb.conf

# The mod_auth_kerb module implements Kerberos authentication over # HTTP, following the "Negotiate" protocol. # LoadModule auth_kerb_module modules/mod_auth_kerb.so # # Sample configuration: Kerberos authentication must only be # used over SSL to prevent replay attacks. The keytab file # configured must be readable only by the "apache" user, and # must contain service keys for "HTTP/www.example.com", where # "www.example.com" is the FQDN of this server. # <Location /private> # SSLRequireSSL AuthType Kerberos AuthName "Kerberos Login" KrbMethodNegotiate On KrbMethodK5Passwd Off # KrbAuthRealms EXAMPLE.COM Krb5KeyTab /etc/krb5.keytab require valid-user </Location>

Page 95: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

85

ภาคผนวก ง. การกาหนดคา Mozilla Firefox ใหสนบสนนการพสจนตวตน Kerberos การปรบแตงกาหนดคา web browser Mozilla Firefox ใหสนบสนนการพสจน

ตวตนKerberos (PSU Passport) กระทาไดโดยการกาหนดคา network.negotiate-auth.trusted-uris ใหมคาเทากบ “psu.ac.th”

ภาพประกอบ ง-1 การกาหนดคา network.negotiate-auth.trusted-uris ของ Mozilla Firefox

Page 96: A Thesis Submitted in Partial Fulfillment of the Requirements for … · 2010-04-07 · การพิสูจน์ตัวตนผู้ใช้ณ จุดเดียวผ่านเว็บโดยปราศจาก

86

ประวตผเขยน

ชอ สกล นายพงศพฒน หงสพฤกษ รหสประจาตวนกศกษา 4504045 วฒการศกษา วฒ ชอสถาบน ปทสาเรจการศกษา วทยาศาสตรบณฑต (วทยาการคอมพวเตอร) มหาวทยาลยสงขลานครนทร 2540 ทนการศกษา (ทไดรบในระหวางการศกษา) ทนมลนธเพอการศกษาคอมพวเตอร และการสอสาร ตาแหนงและสถานททางาน นกวชาการคอมพวเตอร ศนยคอมพวเตอร มหาวทยาลยสงขลานครนทร


Recommended