กานดา รุณนะพงศา...

14
Securing Web Services Using the Liberty Token Profile ผศ. ดร. กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่น Page 1 Securing Web Services Using the Liberty Token Profile โดยทั่วไปแล้วการพิสูจน์ตัวตนหรือยืนยันผู้ใช้ (Identity or Authentication) ในเว็บเซอร์วิสจะมีอยู่สองลักษณะคือ 1. Web Service Client (WSC) ทาการยืนยันตัวตนกับ Web Service Provider(WSP) โดยส่วนนี้จะเป็นการ ยืนยันตัวตนแบบทั่วๆ ไป คือ การใช้ Username กับ Password ซึ่งถือเป็นมาตรฐานหนึ่งของเว็บเซอร์วิส Basic Security Profile (WSI) 2. End User + WSC ทาการยืนยันตัวตันกับ Identity Provider (IDP) โดยการใช้ Username กับ Password ถ้า เป็น User ที่ได้รับอนุญาติให้เข้าถึงเว็บเซอร์วิสนี้ไดIDP ก็จะไปค้นหากเว็บเซอร์วิสกับ Disco แล้วก็จะทาการ เข้ารหัสข้อมูลก่อน จากนั้นก็จะนามาบริการกับ End User ซึ่งในขั้นตอนนี้จะเกิดกระบวนการรักษาความ ปลอดภัยในระหว่างกระบวนการเรียกใช้เว็บเซอร์วิส Netbeans จะสนับสนุน Token Profile อยู2 แบบ คือ 1. Basic Security Profile (WSI) ใช้สาหรับ Web Service Client กับ Web Service Provider โดยไม่มีการผ่าน ตัวกลาง 2. Liberty Security token profiles ใช้สาหรับ End User + Web Service Client ผ่านตัวกลางเพื่อเข้าถึง Web Service Provider ใน netbeans จะใช้ Sun Java System Access Manager เป็นตัวกลาง ซึ่งจะเรียกรวมกัน ว่า IDP+Disco

Upload: others

Post on 26-Jul-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่นkrunapon/courses/178375/... ·

Securing Web Services Using the Liberty Token Profile

ผศ. ดร. กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่น Page 1

Securing Web Services Using the Liberty Token Profile โดยทั่วไปแล้วการพิสูจน์ตัวตนหรือยืนยันผู้ใช้ (Identity or Authentication) ในเว็บเซอร์วิสจะมีอยู่สองลักษณะคือ

1. Web Service Client (WSC) ท าการยืนยันตัวตนกับ Web Service Provider(WSP) โดยส่วนนี้จะเป็นการยืนยันตัวตนแบบทั่วๆ ไป คือ การใช้ Username กับ Password ซึ่งถือเป็นมาตรฐานหนึ่งของเว็บเซอร์วิส Basic Security Profile (WSI)

2. End User + WSC ท าการยืนยันตัวตันกับ Identity Provider (IDP) โดยการใช้ Username กับ Password ถ้าเป็น User ที่ได้รับอนุญาติให้เข้าถึงเว็บเซอร์วิสนี้ได้ IDP ก็จะไปค้นหากเว็บเซอร์วิสกับ Disco แล้วก็จะท าการเข้ารหัสข้อมูลก่อน จากนั้นก็จะน ามาบริการกับ End User ซึ่งในขั้นตอนนี้จะเกิดกระบวนการรักษาความปลอดภัยในระหว่างกระบวนการเรียกใช้เว็บเซอร์วิส

Netbeans จะสนับสนุน Token Profile อยู่ 2 แบบ คือ 1. Basic Security Profile (WSI) ใช้ส าหรับ Web Service Client กับ Web Service Provider โดยไม่มีการผ่าน

ตัวกลาง 2. Liberty Security token profiles ใช้ส าหรับ End User + Web Service Client ผ่านตัวกลางเพื่อเข้าถึง Web

Service Provider ใน netbeans จะใช้ Sun Java System Access Manager เป็นตัวกลาง ซึ่งจะเรียกรวมกันว่า IDP+Disco

Page 2: กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่นkrunapon/courses/178375/... ·

Securing Web Services Using the Liberty Token Profile

ผศ. ดร. กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่น Page 2

ใช้ BluePrints CalendarService และ CalendarClient เพื่อก าหนดความปลอดภัยโดยการใช้ Liberty Token Profile 1. เปิดโปรเจค CalendarService โดยการคลิกที่ File > New Project … จากนั้นให้เลือก Samples > Identity

Blueprints > Calendar Service จากนั้นคลิก Next

2. ก าหนด Project Name, Project Location, และ Project Folder จากนั้นให้คลิก Finish

Page 3: กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่นkrunapon/courses/178375/... ·

Securing Web Services Using the Liberty Token Profile

ผศ. ดร. กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่น Page 3

3. ท าการปรับแต่งเพื่อให้ CalendarService สามารถขอใช้บริการการตรวจสอบผู้ใช้ (End User) จาก AM Server โดยการคลิกขวาท่ี CalendarServer แล้วเลือก Edit Web Service Attributes

4. คลิก Enable Message Level Security เลือก Security แบบ LibertyBearer Token จากนั้นให้กดปุ่ม OK

Page 4: กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่นkrunapon/courses/178375/... ·

Securing Web Services Using the Liberty Token Profile

ผศ. ดร. กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่น Page 4

5. คลิกขวาท่ีโปรเจค CalendarService จากน้ันให้คลิก Deploy Service

Page 5: กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่นkrunapon/courses/178375/... ·

Securing Web Services Using the Liberty Token Profile

ผศ. ดร. กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่น Page 5

หากท าการ Deploy service ส าเร็จ จะมีผลลัพธ์แสดงดังต่อไปนี้

Page 6: กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่นkrunapon/courses/178375/... ·

Securing Web Services Using the Liberty Token Profile

ผศ. ดร. กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่น Page 6

6. เปิดโปรเจค CalendarClient โดยการคลิกที่ File > New Project … จากนั้นให้เลือก Samples > Identity Blueprints > Calendar Client จากนั้นคลิก Next

7. ก าหนด Project Name, Project Location, และ Project Folder จากนั้นให้คลิก Finish

Page 7: กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่นkrunapon/courses/178375/... ·

Securing Web Services Using the Liberty Token Profile

ผศ. ดร. กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่น Page 7

8. ท าการปรับแต่งเพื่อให้ CalendarClient สามารถสื่อสารกับ IDP เพื่อที่จะได้รับ Endpoint Address จาก Disco Service โดยการขยายโฟลเดอร์ Web Service References ซึ่งจะพบ CalendarService จากนั้นให้คลิกขวาท่ี CalendarService แล้วเลือก Edit Web Service Attributes

9. จากนั้นให้คลิก Enable Message Level Security เลือก LibertyDiscoverySecurity จากนั้นคลิก OK

Page 8: กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่นkrunapon/courses/178375/... ·

Securing Web Services Using the Liberty Token Profile

ผศ. ดร. กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่น Page 8

10. จากนั้นคลิกขวาท่ีชื่อโปรเจคแล้วเลือก Run Project

Page 9: กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่นkrunapon/courses/178375/... ·

Securing Web Services Using the Liberty Token Profile

ผศ. ดร. กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่น Page 9

11. NetBeans 5.5 เข้าไปที่ URL http://localhost:8080/CalendarClient พร้อมสังเกตผลลัพธ์ ซึ่งจะ redirect ไปท่ี http://localhost:8080/amserver/UI/Login?goto=http://localhost:8080/CalendarClient

Page 10: กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่นkrunapon/courses/178375/... ·

Securing Web Services Using the Liberty Token Profile

ผศ. ดร. กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่น Page 10

12. สร้างผู้ใช้ใหม่เปิด URL http://localhost:8080/amserver โดย Login เข้าเป็น Administrator ซึ่งใช้ Username และ Password เป็น Username:amadmin, Password:admin123 เมื่อ Login เข้าได้ส าเร็จจะปรากฏหน้าต่างดังรูปด้านล่าง

13. จากนั้นให้คลิก sun ในส่วนของ Realm Name

Page 11: กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่นkrunapon/courses/178375/... ·

Securing Web Services Using the Liberty Token Profile

ผศ. ดร. กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่น Page 11

14. คลิกที่ Subjects เพื่อสู่ Tab ส าหรับการสร้างผู้ใช้ใหม่

15. คลิกที่ New … เพื่อสร้างผู้ใช้ใหม่

Page 12: กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่นkrunapon/courses/178375/... ·

Securing Web Services Using the Liberty Token Profile

ผศ. ดร. กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่น Page 12

16. ป้อนข้อมูลผู้ใช้ใหม่ โดยจะมี ID เป็น Username จากนั้นให้คลิก OK

17. ตอนนี้เราจะพบว่ามี User เพิ่มขึ้นใหม่ จากน้ันท าการ LOG OUT ออกจากระบบ

Page 13: กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่นkrunapon/courses/178375/... ·

Securing Web Services Using the Liberty Token Profile

ผศ. ดร. กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่น Page 13

18. ให้เข้าไปที่ URL http://localhost:8080/CalendarClient อีกครั้ง และจะเข้าสู่หน้าต่างเพื่อให้ท าการยืนยันผู้ใช้ โดยให้ป้อน Username และ Password ที่ได้สร้างไว้จากขั้นตอนที่ 8 (สังเกตที่ URL)

Page 14: กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่นkrunapon/courses/178375/... ·

Securing Web Services Using the Liberty Token Profile

ผศ. ดร. กานดา รุณนะพงศา ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่น Page 14

2. เมื่อการยืนยันผ่าน IDP จะอนุญาติให้สามารถเรียกใช้งานโปรแกรมได้ตามปกติ (สังเกตที่ URL)