รูปที่ 1 การออกแบบโครงสร้างการเชื่อมต่อข้อมูลกับระบบ (Architecture Diagram)
ตารางอธิบายการทำงานรูปที่ 1
ลำดับ |
คำอธิบาย |
1 |
การลงชื่อเข้าใช้งานระบบ Oracle Applications Cloud ผ่านระบบ Single Sign-On : SSO |
2 |
การเข้าใช้งานระบบ Payroll ผ่านระบบ Oracle Applications Cloud โดยบัญชีที่มีสิทธิเข้าใช้งานไม่ต้องทำการลงชื่อเข้าใช้งานใหม่อีกครั้ง |
3 |
การลงชื่อเข้าใช้งานระบบ Oracle Applications Cloud ผ่านระบบ Single Sign-On : SSO ด้วยบัญชีผู้ใช้งานที่มีสิทธิเข้าใช้งานระบบ Oracle Applications Cloud เท่านั้น โดยขั้นตอนนี้ บัญชีผู้ใช้งานนี้จะไม่สามารถเข้าสู่ระบบ Payroll ผ่านระบบ Oracle Applications Cloud |
4 |
การลงชื่อเข้าใช้งานระบบเงินเดือนและค่าตอบแทน (Payroll) ผ่านระบบ Single Sign-On : SSO |
HTTP Method |
POST |
Endpoint |
|
Headers |
|
Content-Type |
SAML Metadata |
Request Body |
|
grant_type |
https___login-iaajtj.fa.ocs.oraclecloud.com_443_oam_fed_metadata |
รูปที่ 2 แสดงการดาวน์โหลด SAML Metadata ไฟล์ และ การเปิดใช้งาน Single Sign On บนระบบ Oracle
รูปที่ 3 แสดงการตั้งค่า SAML Metadata ไฟล์ ระบบ Azure AD ของมหาวิทยาลัย
ข้อมูล "the XML file metadata file" สำหรับระบบจริง Production ตามไฟล์แนบ ใช้ตั้งค่าบน Azure SAML - SSO Configuration เชื่อมกับระบบ Oracle Fusion cloud
สิ่งที่ผู้พัฒนาหรือผู้ขอใช้บริการต้องเตรียม
· Redirect URL เป็นลิ้งค์ที่ใช้ redirect กลับ เมื่อ user ทำการล็อคอินเรียบร้อยแล้ว เช่น https://digital.kku.ac.th/callback/sso
· Redirect Logout URL เป็นลิ้งก์ที่ใช้ redirect กลับ เมื่อ user ทำการล็อคเอ้าท์ออกจากระบบแล้ว
· สิ่งที่ผู้ให้บริการจะส่งข้อมูล หลังจากขอใช้บริการ มีข้อมูลดังนี้
o App ID
o Client ID
o Client Secret
o ขั้นตอนการใช้ KKU Single Sign On (SSONext)
o Login endpoint: https://ssonext.kku.ac.th/login?app=<AppID>
ตัวอย่างการใช้งาน
<a href="https://ssonext.kku.ac.th/login?app=<AppID>">Login</a>
Redirect URL:
เมื่อ user ล็อกอินสำเร็จแล้วจะ redirect กลับมาที่เว็บไซต์ของผู้ขอใช้บริการ เช่น
https://digital.kku.ac.th/callback/sso?code=0190e7fe-fd00-7d8c-b823-5cdd79f04769
ให้ทำการรับค่าจากพารามิเตอร์ code เพื่อนำไปขอ Access token เพื่อเข้าถึง Resources อื่นต่อไป
REST Service:
ระบบที่เชื่อมต่อร้องขอ Access Token ด้วยการใช้ REST service ตามตัวอย่างนี้
curl --location --request POST 'https://ssonext-api.kku.ac.th/auth.token' \ --header 'Content-Type: application/json' \ --data '{ "code": "<code from Query Params>", "redirectUrl": "<Redirect Url>", "clientId": "<Client ID>", "clientSecret":"<Client Secret>" }' |
กรณีที่สำเร็จระบบจะตอบ HTTP Status 200 และมีโครงสร้างดังนี้
{ "ok": true, "accessToken": "", "email": "", "immutableId": "", "citizenId": "", "firstName": "", "lastName": "", "employeeId": "" } |
กรณีที่ไม่สำเร็จระบบจะตอบ HTTP Status 200 และมีโครงสร้างดังนี้
{ "ok": false, "error": "AUTH0001" } |
ระบบที่เชื่อมต่อร้องขอ User Resource ด้วยการใช้ REST service ตามตัวอย่างนี้
curl --location --request POST 'https://ssonext-api.kku.ac.th/user.profile' \ --header 'Authorization: Bearer <Access Token>' \ --data '' |
กรณีที่สำเร็จระบบจะตอบ HTTP Status 200 และมีโครงสร้างดังนี้
{ "ok": true, "profile": { "email": "", "userId": "", "type": "", "citizenId": "", "title": "", "firstname": "", "lastname": "", "titleEng": "", "firstnameEng": "", "lastnameEng": "", "facultyName": "", "positionName": "", "positionTypeName": "", "levelId": "", "levelName": "", "gender": "", "workline": "", "phoneNumber": "", "personStatus": "" "lastVerify": "" } } |
กรณีที่ไม่สำเร็จระบบจะตอบ HTTP Status 401 Unauthorized
ระบบที่เชื่อมต่อเพื่อร้องขอ Authen Status ด้วยการใช้ REST service ตามตัวอย่างนี้
curl --location --request POST 'https://ssonext-api.kku.ac.th/auth.status \ --header 'Authorization: Bearer <Access Token>' \ --data '' |
กรณีที่สำเร็จระบบจะตอบ HTTP Status 200 และมีโครงสร้างดังนี้
{ "ok": true, "user": { "sessionId": "xxxxxxxxx-f674-73ed-b12b-xxxxxxxxxxxxx", "email": "xxxx@kku.ac.th", "role": "STAFF" } } |
กรณีที่ไม่สำเร็จระบบจะตอบ HTTP Status 401 Unauthorized
ดาวน์โหลดไฟล์ : Postman Collection
Logout endpoint:
https://ssonext.kku.ac.th/logout?app=<AppID>
ตัวอย่างการใช้งาน
<a href="https://ssonext.kku.ac.th/logout?app=<AppID>">Logout</a>
Redirect Logout URL:
เมื่อ user ล็อกเอ้าท์สำเร็จแล้วจะ redirect กลับมาที่เว็บไซต์ของผู้ขอใช้บริการ ตามข้อขูลที่ระบบไว้ในแบบฟอร์มขอใช้งาน เช่น https://digital.kku.ac.t